私はこれが遅いことを知っていますが、コードを編集して再編集した後、正規表現を使って解決策を見つけました。
function GetMetaTagsContentIntact($html, $meta_name)
{
$get_attribute_value = function($attrib, $tag)
{
//get attribute from html tag
$re = '/' . preg_quote($attrib) . '=([\'"])?((?(1).+?|[^\s>]+))(?(1)\1)/is';
if (preg_match($re, $tag, $match))
{
return urldecode($match[2]);
}
return false;
};
$output; // Get all meta tags.
preg_match_all("|<meta[^>]+name=\"([^\"]*)\"[^>]" . "+content=\"([^\"]*)\"?[^>]+>|i", $html, $output, PREG_PATTERN_ORDER);
$output = $output[0];
// Get specified mata tag's content value.
foreach($output as $tag)
{
if($meta_name == trim($get_attribute_value("name", $tag)))
{
return $get_attribute_value("content", $tag);
}
}
return false;
}
これは、生のHTML(好ましくは解析された)を取り、そしてメタタグ自体を取得するために正規表現を使用して、そのから、あなたが望むメタタグからコンテンツ値を抽出します。
しかし、私のようにXML文書を正常に追加するには、具体的に "textContent"を使用する必要があります。ここでそれ以上のこと:PHP: DOMNode - Manual
「keyword2 , keyword2」は、「Johnson&Johnson」などの繰り返しであるか、実際には2つのキーワードであると考えられる1つのキーワードであると考えられています繰り返し値を落とす。また、ほとんどの主要な検索エンジンは、キーワードメタタグをもう使用しません。だから、あなたがしようとしていることをすることの重要性に影響があるかどうかは分かりません。 – Nosajimiki
はい。 "keyword2 , keyword2"は単一のキーワードです。 –
explode( "、"、$ string)を使ってみましたか? – Nosajimiki