php
  • preg-replace
  • 2012-02-15 172 views 0 likes 
    0

    在下面的字符串,我想刪除span標籤的類屬性「類2」和「CLASS3」如何使用的preg_replace刪除內容的HTML標籤內

    現在,我正在做這樣的:

    $string = '<span class="class1 class2 class3">class1 class2 class3</span>'; 
    
    $patterns = array(); 
    $patterns[0] = '/class2/'; 
    $patterns[1] = '/class3/'; 
    
    $replacements = array(); 
    $replacements[0] = ''; 
    $replacements[1] = ''; 
    
    $string = preg_replace($patterns, $replacements, $string); 
    
    echo htmlspecialchars($string); 
    

    這將返回:<span class="class1 ">class1 </span>

    這不正是我想要的。

    我想它返回:<span class="class1">class1 class2 class3</span>

    我不知道我必須使用,使僅更換裏面的類屬性

    感謝您的幫助是什麼樣的格局!

    +0

    參見[爲什麼這是一個壞主意,試圖做到這一點使用正則表達式(http://stackoverflow.com/questions/1732348/regex-match-open-tags-除了-XHTML-自足標籤)。 – Charles 2012-02-15 19:30:09

    回答

    0

    您可以使用

    preg_replace('/class="class1[^"]*/', 'class="class1', $string); 
    
    +0

    我看到你的模式背後的邏輯,但不幸的是,類屬性可以有很多值。我事先知道要在其中刪除的一組數據,但事先並不知道其中會有哪些值。我想定位並只刪除特定的值。 – Vincent 2012-02-15 01:44:56

    相關問題