1

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

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

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

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));
4

1 回答 1

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));

或者

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

于 2013-02-10T13:30:06.503 回答