0

タグがタグ内にある場合に実行されないように次の正規表現を変更するにはどうすればよいですか(それぞれ、意味)<img><script><script language="..."><script*>

コード:

function seo_friendly_images($content) {

return preg_replace_callback('/<img[^>]+/', 'seo_friendly_images_process', $content);

}

add_filter('the_content', 'seo_friendly_images', 100);
4

2 に答える 2

1

これは、使用している言語によって少し異なります。一部の言語では、先読みまたは後読みがサポートされています (たとえば、foo の後に bar が続く場合にのみ一致するか、または foo が先行する場合にのみ bar に一致します)。

これは私には php のように見え、先読みサポートがあると報告されています (http://php.net/manual/en/regexp.reference.assertions.php)。

次のような正規表現を使用してみてください

    /<script[^>]+>(?=<img)/ or /<script[^>]+>(?!<img)/

?= は前向きな先読みを示し、?! 否定的な先読みを示します。正の先読みは「Foo の後に Bar が続く」ことを意味し、負の先読みは「Foo の後に Bar が続かない」ことを意味します。

于 2012-09-25T05:51:54.347 に答える
-1

これを試してみてください:

return preg_replace_callback('<img[^<]+?>', 'seo_friendly_images_process', $content);

テストされていません。

于 2012-09-25T05:57:23.007 に答える