2013-08-21 165 views
0

你好我正在做一個PHP腳本,我需要爲我的preg_replace函數轉義一個字符串,我的PHP服務器不會顯示錯誤,所以我無法檢測到我犯的錯誤!轉義此字符串? (PHP)

的STRIG是/*1*\

我想:'@\/\*1\*\@' => 'HERE!'

它不會出於某種原因!幫幫我?

+0

使用[preg_quote()](http://www.php.net/manual/en/function.preg-quote.php)爲你做這個......最後的「\」應該是「 \\「;和「/」不需要轉義,因爲你不使用它作爲分隔符 –

+0

它會更酷如果我學會了如何逃避那個字符串。 – Monami

+0

@MarkBaker不工作btw .. – Monami

回答

1

如果您使用@作爲分隔符,則不必轉義正斜槓。然而反斜槓需要更多一點的PCRE逃逸,一旦PHP字符串背景下,一旦:

~/\*1\*\\\\~ 

爲了清楚起見~作爲分隔符這裏。

(更準確地說,你會逃避反斜槓\\在PHP中的字符串。雖然PHP保持它,如果單一般。)

東西我偶爾使用,以減少逃逸的字符類(這是對普遍建議)和可讀性x修飾符(也就是通常建議的):

~ [/] [*] 1 [*] [\\\\] ~x 

注意反斜線必須仍然multipled。

+0

謝謝,這對我很有用。 – Monami