php preg_替换需要帮助吗
我创建了一个函数来搜索字符串,并用链接替换这些字符串中的关键字。我正在使用php preg_替换需要帮助吗,php,regex,preg-replace,Php,Regex,Preg Replace,我创建了一个函数来搜索字符串,并用链接替换这些字符串中的关键字。我正在使用 preg_replace('/\b(?<!=")(?<!=\')(?<!=)(?<!=")(?<!>)(?<!>)' . $keyword . '(?!</a)(?!</a)\b', $newString, $row); 你可以理解我的沮丧。 由于对regex没有信心,我想我会问这里是否有人知道一个解决方案 谢谢 像这样合适的
preg_replace('/\b(?<!=")(?<!=\')(?<!=)(?<!=")(?<!>)(?<!>)' . $keyword . '(?!</a)(?!</a)\b', $newString, $row);
你可以理解我的沮丧。
由于对regex没有信心,我想我会问这里是否有人知道一个解决方案
谢谢 像这样合适的HTML解析器怎么样
像这样合适的HTML解析器怎么样
通过查看我收集的信息,它会查看每个链接,并替换其中的某些文本。这不是我想要达到的。我试图用链接包装关键字的任何实例。问题是,如果关键字是用其他单词包装的,而这些单词是用链接包装的(如原始示例),它仍然会用链接包装关键字,因此我将以双链接结束。@Jack-你的意思是
?基本上,我使用preg\u replace
将汽车转换为
。这很好,但是如果已经有一个链接,比如
我的preg_replace
会将它从我收集的内容变成销售
,它会查看每个链接并替换其中的某些文本。这不是我想要达到的。我试图用链接包装关键字的任何实例。问题是,如果关键字是用其他单词包装的,而这些单词是用链接包装的(如原始示例),它仍然会用链接包装关键字,因此我将以双链接结束。@Jack-你的意思是
?基本上,我使用preg\u replace
将汽车转换为
。这很好,但是如果已经有一个链接,比如
mypreg\u replace
将把它变成sales
不要对html使用正则表达式…不要对html使用正则表达式…
<a href="www.domain.tdl/keyword.html">Luxury Automobile sales</a>
<a href="www.domain.tdl/keyword.html">Luxury <a href="www.domain.tdl/keywords.html">Automobile</a> Sales</a>
$html = '<a href="www.domain.tdl/keyword.html">Luxury Automobile sales</a>';
$dom = new DomDocument;
$dom->loadHTML($html);
$nodes = $dom->getElementsByTagName('a');
foreach ($nodes as $node)
{
$node->nodeValue = str_replace('Automobile', 'Cars', $node->nodeValue);
echo simplexml_import_dom($node)->asXML();
}
foreach ($nodes as $node)
{
$attr = $node->getAttributeNode('href');
$attr->value = str_replace('Automobile', 'keyword', $attr->value);
echo simplexml_import_dom($node)->asXML();
}