2016-02-19 45 views
-1

我遇到了一個情況,那就是我的結果是反斜槓太多的字符串。我的搜索發現其他人說使用PHP stripslashes(),但沒有做這項工作,因爲有更多比它會刪除。那麼什麼是一個好的工作解決方案?如何用一個PHP代替多個反斜槓

編輯:

我是用代碼,正在尋找工作,在幾個迭代中.sql文件替換值。 mysql_real_escape_str()被添加每次反斜線值,所以我結束了在SQL文件內容是這樣的字符串:

s:10:\\\\\\\\\\\\\\\\"value_here\\\\\\\\\\\\\\\\"; 

查找和替換的所有迭代後,所以,SQL文件內容不能使用,由於其他反斜槓。

+1

你想要做什麼樣的字符串插值?單引號還是雙引號? – sln

+0

我在最後一行修復了你的英語。請編輯您的帖子並向我們展示 (1)樣本行,(2)您使用的帶有striplashes的代碼和(3)其輸出。 –

回答

0

對我來說,最好的解決辦法是這樣的:

$str = preg_replace('/\\\\{2,}/', '\\',$strwithtoomanybackslashes); 

,取代2個或更多的反斜槓只有一個。如果上面的反斜槓的數量看起來很混亂......這是因爲你必須用反斜槓來反轉每個反斜槓。

以上修復了sql文件內容中的所有字符串,它們的反斜槓太多。

字符串轉換是這樣的:

s:10:\\\\\\\\\\\\\\\\"value_here\\\\\\\\\\\\\\\\"; 

要:

s:10:\"value_here\"; 
+0

取代3個或更多。 – sln

+0

這是正確的,但'preg_replace(「/ \\\\ {2,} /」,「\\\\」,$ input_lines);'也是正確的。請參閱[本演示](http://ideone.com/yrCq5Y)。 –

0

的preg_replace()可以很好地用於本

preg_replace("/\\{2,}/", "\\", $input_lines); 

你只需要找到的2個或更多的所有事件反斜槓並將其替換爲單個。

相關問題