多个正则表达式语句

时间:2013-02-10 13:27:07

标签: php regex preg-replace

我正在使用preg_replace的多个正则表达式语句,并发现它们可以单独工作。一旦我包含多​​个preg_replace,另一个将停止工作。

有没有办法以有序的方式使用preg_replace,而不是在加载后立即使用{<1}}?

这是我到目前为止所拥有的:

file_put_contents("$uploadedfile", preg_replace("/<[^>]*>/", "", "$filecontents"));         

file_put_contents("$uploadedfile", preg_replace('/\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})/', '<em>(\1) \2-\3</em>', $filecontents));

1 个答案:

答案 0 :(得分:1)

因为你在第二个使用的文件内容是旧的。当你没有从文件中获取新内容时,你不会看到第一个语句的效果。

试试这个

file_put_contents("$uploadedfile", preg_replace("/<[^>]*>/", "", "$filecontents"));  

$filecontents = file_get_contents($uploadedfile);       

file_put_contents("$uploadedfile", preg_replace('/\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})/', '<em>(\1) \2-\3</em>', $filecontents));

将所有内容保存到一个临时变量并在末尾写入文件