Php 用符号或符号替换附加html标记值

Php 用符号或符号替换附加html标记值,php,dom,preg-replace,Php,Dom,Preg Replace,使用php reg表达式或DOMDocument,我需要用$symbol替换要附加的所有内容 例如: <span class="fwb">Harry and David</span> <span class="fcg">Business Intelligence Developer/Analyst</span> <span class="fcg">Oct 1998 to present</span> <span c

使用php reg表达式或DOMDocument,我需要用$symbol替换要附加的所有内容

例如:

<span class="fwb">Harry and David</span>

<span class="fcg">Business Intelligence Developer/Analyst</span> 
<span class="fcg">Oct 1998 to present</span>
<span class="fcg">Medford, Oregon</span>

<span class="fsm fwn fcg">Creative writing</span>

In my html content 
<span class="fwb"> occured more than 4 times, 
<span class="fcg"> occured more than 10 times, 
<span class="fsm fwn fcg">Creative writing</span> occured  more than 5 times. 

从代码示例中很难理解,但我相信您希望在每个标记的末尾附加一个$符号。使用来执行此操作:

<span class="fwb">Harry and David</span> to be replaced by <span class="fwb">Harry and David$</span>

<span class="fcg">Business Intelligence Developer/Analyst</span> to be replaced by       <span class="fcg">Business Intelligence Developer/Analyst$</span>

这个正则表达式示例在主题HTML文本中每个span节点的末尾追加$。

regex按给定方式工作,它解决了我的问题。Domdocument显示错误Domdocument::saveHTML需要0个参数,1在第20行的/var/www/fbcrawl/testing.php中给出。提供学习abt reg表达式的最佳链接我第一次学习使用正则表达式时使用的。至于Dom错误,这很奇怪,因为saveHTML采用了一个可选的节点参数,我在发布答案之前测试了代码。。。
$str = '
<span class="fwb">Harry and David</span>
<span class="fcg">Business Intelligence Developer/Analyst</span>
';

$dom = new DomDocument();
$dom->loadHTML($str);

$spans = $dom->getElementsByTagName('span');
foreach ($spans as $span) {
  $span->nodeValue = $span->nodeValue . '$';
  echo $dom->saveHTML($span) . "\n";
}
$str = '
<span class="fwb">Harry and David</span>
<span class="fcg">Business Intelligence Developer/Analyst</span>
';

$p = '{(<span[^>]*>)([^<]+)(</span>)}';
$r = '$1$2\$$3';
echo preg_replace($p, $r, $str);