0

私のウェブサイトには何百万ものページがあり、それらはすべて静的な html です (実際には .shtml ですが、.html として表示しながら .shtml として解析するようにサーバーに設定しました)。html ファイル内でインクルードと php スクリプトを使用できます。現在のページ内で次のような include ステートメントを使用します。

<!--#include virtual="somefilename.html"-->
<!--#include virtual="somefilename.php"-->

すべての .html ページに Facebook ソーシャル タグを追加しようとしています。

<meta property="og:title" content="My Page Title" />

<title></title>このタグには、同じページのタグ間に存在するのと同じ値が必要です。

<title>My Page Title</title>そのため、タグ間のデータを抽出し、<meta property="og:title" content="My Page Title" />ページごとに印刷する必要があります。

誰かがこれに対する解決策を持っていますか?

4

1 に答える 1

1

などの HTML パーサーを使用してタグDOMDocumentを検索し、次のように必要なものを出力する必要があります。<title>getElementsByTagName

$doc = new DOMDocument;
$doc->loadHTML( '<title>My Page Title</title>'); 
// However you read in your HTML file, could even do:
// $doc->loadHTMLFile( '/my/server/root/index.html');

foreach( $doc->getElementsByTagName( 'title') as $title) {
    echo '<meta property="og:title" content="' . $title->textContents . '" />';
}

これをスクリプトとして使用して、すべての HTML ページをロードします。したがって、これをサーバー上の PHP ファイルに入れて、一度実行します。すべての HTML ファイルの場所を認識できるように、ラッパーを追加する必要があります。次のようなものを使用できます。

foreach( glob( '*.html') as $filename) {
    // The above code, which you can now use $doc->loadHTMLFile( $filename);
}
于 2013-01-10T14:42:27.677 に答える