ヘッダーにメタオープングラフタグを追加するために使用するプラグインを編集しようとしています。問題は、サイト全体で1枚の写真しか選択できないことです。これが私が行ったことです。
preg_match_all('/<img .*?(?=src)src=\"([^\"]+)\"/si', $hdog_base, $image);
if (strlen($hdog_base) <= 25)
{
if (substr($image[0], 0, 4) != 'http')
{
$image[0] = JURI::base().$image[0];
}
$hdog_image_tmp = $image[0];
}
else
{
if (substr($image[1], 0, 4) != 'http')
{
$image[1] = JURI::base().$image[1];
}
$hdog_image_tmp = $image[1];
}
$hdog_image = '<meta property="og:image" content="'.$hdog_image_tmp.'" />
';
$ hdog_baseは、現在表示しているWebページです。最初のifステートメントはロゴ(例のホームページに使用)である最初の画像を表示し、elseは2番目の画像(各ページで異なる)を表示しますが、結果は次のようになります。 、私がホームページにいるのか、サイトの他の場所にいるのかに関係なく:
<meta property="og:image" content="http://mysite.com/Array" />
助言がありますか?
前もって感謝します、
更新:私が犯している最大の欠点は、実際のWebページではなく、URLで画像を見つけようとしていることです。しかし、リンクだけです。では、現在のページのコンテンツを文字列で取得するにはどうすればよいでしょうか。リンクに過ぎない$hdog_baseの代わりに。
更新、解決済み:
使用しました
$buffer = JResponse::getBody();
HTMLでWebページを取得するには
その後、残りのDOM
$doc = new DOMDocument();
@$doc->loadHTML($buffer);
$images = $doc->getElementsByTagName('img');
if (strlen($hdog_base) <= 26)
{
$image = $images->item(0)->getAttribute('src');
}
else
{
$image = $images->item(1)->getAttribute('src');
}
if (substr($image, 0, 4) != 'http') $image = JURI::base().$image;
$hdog_image = '<meta property="og:image" content="'.$image.'" />
';
あなたの助けをたくさんのcpilkoに感謝します!:)