preg_replace不起作用$ ragid =“/ s *(。*?)/ i”;

时间:2012-01-23 07:29:51

标签: php

html代码是

<html>
<head>
 123
</head>
<body>
 some text
</body>
</html>

和php代码是

 $body='<html>
    <head>
       123
    </head>
    <body>
     some text
    </body>
    </html>';

    $ragid  = "/<head> s*(.*?) </head>/i";
    preg_replace($ragid, $head, $body);

,错误是

Warning: preg_replace() [function.preg-replace]: Unknown modifier 'h'

我想用123 {my code}

替换123

怎么可能?

4 个答案:

答案 0 :(得分:2)

使用其他分隔符,例如

$ragid  = "|<head> s*(.*?) </head>|i";

答案 1 :(得分:1)

您可能需要在正则表达式的/中转义</head>

答案 2 :(得分:0)

而不是

$ragid  = "/<head> s*(.*?) </head>/i";  

使用

$ragid  = "/<head> s*(.*?) <\/head>/i";

否则正则表达式仅/<head> s*(.*?) </head>/i被解释为修饰符

答案 3 :(得分:0)

删除不必要的空格并转义/

$ragid  = "/<head>s*(.*?)<\/head>/i";
preg_replace($ragid, $head, $body);