我正在使用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));
答案 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));
或
将所有内容保存到一个临时变量并在末尾写入文件