簡體   English   中英

如何使用php或js復制元描述的頁面內容並限制為150個字符?

[英]How can I copy page content for meta description and limit to 150 characters with php or js?

以前,我的網站只有幾頁,每個頁面都有幾個標簽,其中包含各個文章。 因此,我的元描述對於每個頁面來說都很簡單和寬泛,以涵蓋所有內容。

但是,我最近將這些文章分開,以幫助我的SEO。 結果,我現在有174頁,描述基本相同。 顯然,這對SEO和點擊率有害。

每篇文章都在一個單獨的文本文檔中,存儲在根目錄中模板文件夾深處的幾個目錄中。

我已經嘗試了幾個文件函數來讀取和回顯文件的內容,但我只是在調用的文本文件與腳本位於同一目錄時才能使用它。

所以我想從當前頁面抓取文章並使用它而不是使用外部文件。 我使用當前頁面嘗試了相同的文件功能,但它沒有用,我只是顯示頭部內容而沒有正文內容。

我的問題實際上是2個問題:

1.)如何在不同目錄中回顯文件的內容並將其限制為150個字符,最好使用php?

2.)如果以上不起作用或不可行,我如何使用php或js代碼所在的腳本內容來做同樣的事情? 我可以將包含文章的div更改為id。

我正在尋找一個完全相同的代碼,無論它是什么頁面,所以我可以批量搜索/替換而不是編輯174頁。

注意:我也嘗試在我的實驗中使用superglobals專門使代碼與我想要的相同。 此外,我不知道js所以請提供解釋或js的任何答案的完整代碼片段。

文件結構:

root
!
!-tpl
! !
! !-articles
!   !
!   !-topic1
!     !
!     !-article1.txt
!-topic
! !
! !-topic1
!   !
!   !-page1.php

Article1.txt =帶有p標簽的幾段內容
Page1.php期望的效果=

<!DOCTYPE html>
<head>
<meta id="desc" name="Description" content="Copy of first 150 chars of article1.txt">
</head>
<body>
<div class="container-fluid article" id="article">
<?include "article1.txt"?>
</div>
</body>
</html>

假設您提供給我的當前變量,我為您編寫了一個程序。 將其存儲在根級別並運行它

for file in `find . -type f -name article*.txt`
do
  filename=`echo $file | cut -d"/" -f 5`
  filename_no_ext=${filename%".txt"}
  number_of_file=${filename_no_ext#"article"}
  output_file_name=./topic/topic$number_of_file/page$number_of_file.php
  awk '{
    printf "\<\!DOCTYPE html\>\n\<head\>\n"
    printf "\<meta id=\"desc\" name=\"Description\" content=\"" substr($0,0,50)
    printf "\"\>\n\</head\>\n\<body\>\n"
    printf "\<div class=\"container-fluid article\" id=\"article\"\>\n"
    printf "\<\?include \"" FILENAME "\"\?\>\n"
    printf "\<\/div\>\n\</body\>\n\</html\>"
  }' $file > $output_file_name
done

希望它有所幫助,希望您可以根據自己的需要進行微小的修改

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM