我在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));
或
将所有内容保存到一个临时变量中,并在结束时写入文件