2012-03-16 89 views
0

我已經做了正則表達式來從導入的頁面刪除腳本標籤(用於捲曲) <script[\s\S]*?/script>這是我expresion正則表達式錯誤PHP錯誤

當我用了preg_replace用它來刪除它給了標籤我這個錯誤

警告:preg_replace函數()[function.preg替換]:用C未知的修飾詞 'C':\ XAMPP \ htdocs中上線\ get_page.php 21

誰能幫助我

謝謝

+0

THX的快速反應 – tgb 2012-03-16 20:11:34

+0

清楚,是不是你已經張貼了整條生產線。請張貼足夠的信息,以便我們可以清楚地看到你實際上在做什麼。 – 2012-03-16 20:11:53

回答

1

你應該爲你的正則表達式選擇一個合適的delimiter(最好不要在你的模式中出現任何地方,這樣你就不需要轉義)。例如:

"#<script[\s\S]*?/script>#" 

而且,不這樣做,如果你想防止惡意的人從注入的JavaScript到您的網頁。它可以很容易地解決。使用已知安全結構的白名單,而不是嘗試去除危險代碼。

0

使用下面的代碼:

$result = preg_replace('%<script[\s\S]*?/script>%', $change_to, $subject); 
0

你換你的正則表達式的斜槓?

$str = preg_replace('/<script[\s\S]*?\/script>/', ...); 
0

PHP需要在正則表達式模式分隔符。此外,你的表情可以簡化。

|<script.+/script>| 
0

你是否用分隔符圍住了你的正則表達式,比如/?如果你沒有,你需要。如果你做到了,你用/(而不是你的其他選擇),你需要躲避//script,所以它會像\/script代替。