2014-10-04 64 views
0

「A」 html元素屬性我想刪除從在PHP「A」 html元素一個「class」屬性。刪除(如果它存在)一個「類」在PHP

實施例1:

<p class="red">Link: <a href="http://www.google.com" style ="margin: 0px">google</a>.</p> 

結果:

<p class="red">Link: <a href="http://www.google.com" style ="margin: 0px">google</a>.</p> 

實施例2:

<p class="red">Link: <a href="http://www.google.com" class = "link" style="margin: 0px" >google</a>.</p> 

結果:

<p class="red">Link: <a href="http://www.google.com" style="margin: 0px" >google</a>.</p> 
+0

你不需要PHP或正則表達式。你需要JavaScript。 – 2014-10-04 18:31:15

+0

可能的複製 - http://stackoverflow.com/questions/195951/change-an-elements-css-class-with-javascript – 2014-10-04 18:35:42

+0

@aj_r,我需要做的是在服務器端,例子是PHP的字符串。我需要用正則表達式來做。 – Amparo 2014-10-04 18:42:16

回答

1

正則表達式很不錯。我愛他們,雖然他們會在被濫用的情況下扮演頑皮的女孩。所以我打算用漂亮的的DomDocument做到這一點:

<?php 
    $html = <<< EOT 
    <p class="red">Link: <a href="http://www.google.com" class = "link" style="margin: 0px" >google</a>.</p> 
EOT; 
    $dom = new DOMDocument(); 
    $dom->loadHTML($html); 
    $a = $dom->getElementsByTagName('a'); 
    foreach($a as $tag) 
     $tag->removeAttribute('class'); 
    $html = $dom->saveHTML(); 
    echo $html; 
0

試試這個

(<a(?:\s+\w+\s*=\s*(?P<quote>["']).*?(?P=quote))*)\s+class\s*=\s*(?P<q>["']).*?(?P=q) 

\1取代。

See demo.

相關問題