以下のforeachループでは、キーワードの最初のインスタンスのみを返し、太字のタグでラップし、ループと関数を終了するための正しい構文は何ですか?DOMDocument foreach replacement
たとえば、キーワードは「blue widgets」です。だから私は
function sx_decorate_keyword($content){
$keyword = "blue widgets";
$d = new DOMDocument();
$d->loadHTML($content);
$x = new DOMXpath($d);
foreach($x->query("//text()[
contains(.,$keyword')
and not(ancestor::h1)
and not(ancestor::h2)
and not(ancestor::h3)
and not(ancestor::h4)
and not(ancestor::h5)
and not(ancestor::h6)]") as $node){
//need to wrap bold tags around the first instance of the keyword, then exit the routine
}
return $content;
}
を置き換え骨董品、なぜ単にpreg_replaceを使用しないのですか? – Dmitri
@Dmitri - いずれかに部分的ではありません。 –
@Dmitri:おそらく、 "not in a heading tag"例外を伴うpreg_replaceの使用例を挙げることができますか? –