例子:
$mode="/&lt;title&gt;.*&lt;/title&gt;/";     //相当于 "/<title>.*</title>/";
$string="ladjfladfja&lt;title&gt;.*&lt;/title&gt;fadfadfadf"; //相当 "ladjfladfja<title></title>fadfadfadf";
$strR="&lt;title&gt;替换内容&lt;/title&gt;";  //相当于 "<title>替换内容</title>"
$str=preg_replace($mode,$strR,$string);我想要$string里的<title></title>替换成<title>替换内容</title>,但是上面的方法却不行,请问大家这要怎么做???

解决方案 »

  1.   

    $string = "ladjfladfja<title></title>fadfadfadf";
    $pattern = "/(\w+)<title>(.*)<\/title>(\w+)/";
    $replacement = "\${1}" . "<title>替换内容</title>" . "\${3}";
    echo preg_replace($pattern, $replacement, $string); //=>ladjfladfja<title>替换内容</title>fadfadfadf
    //没有htmlspecialchars需要看源码
      

  2.   


    不行啊,结果是ladjfladfjafadfadfadf
      

  3.   

    或者你打印,用这个替换print htmlspecialchars(preg_replace($pattern, $replacement, $string));
      

  4.   

    我的目的只是想把一个html页面的内容写到另一个页面中去,但要改变页面的标题,不知道要怎么做
      

  5.   


    $string = "
    <html>
    <head>
    <title></title>
    <script></script>
    </head>
    <body>
    ladjfladfjafadfadfadf
    </body>
    </html>";
    $pattern = "/(.*?)<title>(.*)<\/title>(.*?)/is";
    $replacement = "\${1}" . "<title>替换内容</title>" . "\${3}";//替换内容修改想要的就好了
    print preg_replace($pattern, $replacement, $string);
      

  6.   


    不行啊,我不知道你有没有理解我的意思,我的目的只是想把<title></title>标签里的内容替换成其他的东西,比如原本是<title>一个标题</title>,我想替换成<title>另一个标题</title>