Php 如何将数据从DOMDocument传递到regexp?
使用下面的代码,我从一些html中获取“img”标记,并检查它们是否被“a”标记覆盖。稍后,若当前的“img”标记不是“a”(超链接)的一部分,我想将此img标记覆盖到“a”标记中添加超链接开始结束标记加上目标设置。为此,我希望整个“img”标记html都能使用 问题是如何将“img”标记html转换为regexp。我需要一些php变量在regexp工作的地方是用???标志Php 如何将数据从DOMDocument传递到regexp?,php,Php,使用下面的代码,我从一些html中获取“img”标记,并检查它们是否被“a”标记覆盖。稍后,若当前的“img”标记不是“a”(超链接)的一部分,我想将此img标记覆盖到“a”标记中添加超链接开始结束标记加上目标设置。为此,我希望整个“img”标记html都能使用 问题是如何将“img”标记html转换为regexp。我需要一些php变量在regexp工作的地方是用???标志 $doc = new DOMDocument(); $doc->loadHTML($article_header);
$doc = new DOMDocument();
$doc->loadHTML($article_header);
$imgs = $doc->getElementsByTagName('img');
foreach ($imgs as $img) {
if ($img->parentNode->tagName != "a") {
preg_match_all("|<img(.*)\/>|U", ??? , $matches, PREG_PATTERN_ORDER);
}
}
$doc=newDOMDocument();
$doc->loadHTML($article\u header);
$imgs=$doc->getElementsByTagName('img');
foreach($imgs作为$img){
如果($img->parentNode->tagName!=“a”){
preg|U match_all(“|U”、?、$matches、preg|U模式_顺序);
}
}
您不想为此使用正则表达式。您已经有了DOM,请使用它:
foreach ($imgs as $img) {
$container = $img->parentNode;
if ($container->tagName != "a") {
$a = $doc->createElement("a");
$a->appendChild( $img->cloneNode(true) );
$container->replaceChild($a, $img);
}
}
请参阅有关的文档
更改为此>a href=“sources/public/users/qqq/articles/2011-06-11/7/img/500.JPG”target=“\u blank”>
请参阅和。我相信你会明白的。