2013-02-10 90 views
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)); 
+0

到文件在上面的代碼,第二個會正常運行,但不是第一次,但是如果我刪除第二條語句,第一條語句運行正常。 – Johnk 2013-02-10 13:28:28

回答

1

因爲它使用的是在第二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)); 

保存一切給一個臨時變量,並寫在最後

+0

完美運作!非常感謝! – Johnk 2013-02-10 14:15:44