2011-12-14 13 views
0
<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. 

php reg式またはDOMDocument()を使用して、$ symbolを追加するすべてのコンテンツを置き換える必要があります。 EXのためにhtmlタグの値をシンボルや表記に置き換える

:(?)

<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> 

答えて

0

それはあなたのコードサンプルから理解することは難しいですが、私はあなたが<span>タグのそれぞれの最後に$記号を追加するために探していると信じています。これを行うにはDomDocumentを使用した:

$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"; 
} 

あなたは可能性があり、あなたもそうのようなpreg_replace()を使用し、言ったように:

$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); 

この正規表現の例では、対象のHTMLテキスト内の各スパンノードの最後に$を追加します。

+0

Regexは指定されたとおりに動作し、その問題を解決します。 DOMDocumentはエラーを示していますDOMDocument :: saveHTML()は、0行目の/var/www/fbcrawl/testing.phpの1行目にある0個のパラメータを必要としています。abt reg式を学ぶための最良のリンクを与えてください –

+0

私は[this source] //www.noupe.com/php/php-regular-expressions.html)を参照してください。ドミノのエラーは、saveHTML()がオプションのノードパラメータをとり、回答を投稿する前にコードをテストしたために奇妙です。 – rdlowrey

関連する問題