代码之家  ›  专栏  ›  技术社区  ›  Juanjo Conti

如何使用php preg_replace替换HTML标记

  •  4
  • Juanjo Conti  · 技术社区  · 15 年前

    我想换一下 <pre> 具有 <code> </pre> 具有 </code> .

    我对斜线/和正则表达式有问题。

    3 回复  |  直到 10 年前
        1
  •  13
  •   hussfelt    11 年前

    您只需使用str_replace:

    $str = str_replace(array('<pre>', '</pre>'), array('<code>', '</code>'), $str);
    

    如果您觉得必须使用regexp:

    $str = preg_replace("~<(/)?pre>~", "<\\1code>", $str);
    

    如果要单独更换:

    $str = preg_replace("~<pre>~", '<code>', $str);
    $str = preg_replace("~</pre>~", '</code>', $str);
    

    你只需要逃过那一劫。

        2
  •  3
  •   JAL    15 年前

    您可能需要用\s转义/s,或者对表达式使用其他分隔符。

    但是,相反,如何使用 str_replace ? <pre> </pre> 很容易匹配,因为它们不可能包含任何类名或其他属性。

    $text=str_replace('<pre>','<code>',$text);
    $text=str_replace('</pre>','</code>',$text);
    
        3
  •  1
  •   Amit Verma    10 年前

    我找到了一个非常简单的方法来替换字符串中的多个单词:

    <?php
     $str="<pre>Hello world!</pre>";
    
    
    $pattern=array();
    $pattern[0]="/<pre>/";
    $pattern[1]="/<\/pre>/";
    
    
    $replacement=array();
    $replacement[0]="<code>";
    $replacement[1]="</code>";
    
    echo preg_replace($pattern,$replacement,$str);?> 
    

    输出:

     <code>Hello world!</code>
    

    使用此脚本,可以根据需要替换字符串中的任意多个单词:

    只需将单词(要替换的)放入模式数组中,例如:

         $pattern[0]="/replaceme/"; 
    

    并将字符(将用于代替替换字符)放入替换数组中,例如:

          $replacement[0]="new_word"; 
    

    快乐编码!

    推荐文章