多个正则表达式语句


Multiple regex statements

我在preg_replace中使用了多个regex语句,发现它们可以单独工作。一旦我包含多个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));

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

试试这个

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

将所有内容保存到一个临时变量中,并在结束时写入文件