2010-01-12 47 views
0

完全按標題問:我如何會刪除單引號之間的所有空間跳繩轉義引號在PHP

我如何會刪除單引號跳繩逃過PHP引號之間的所有不必要的空格?

我正在尋找快速實施來預先準備解析。我寧願不使用正則表達式,如果它比使用簡單的循環要慢。

(下面的雙引號僅用於顯示的目的)

的例子是:

輸入:

" testing ' this is a  \'test\' '  zzz  " 

輸出:

"testing ' this is a  \'test\' ' zzz" 
+0

您的例子似乎並不十分清楚。它看起來像你想剝奪雙引號之間的多餘空間,但不是單引號? – 2010-01-12 03:45:29

+0

你是對的,我會編輯我的帖子。 TY。 – MichaelICE 2010-01-12 03:48:13

回答

-1

試試:

<?php 
$str = " testing ' this is a  \'test\' '  zzz  "; 

echo trim($str," "); 

?> 
+1

這將刪除單引號內的空格。不是我在找什麼。 – MichaelICE 2010-01-12 03:50:17

0

好吧,僞碼時間:

var shouldtrim = true; 
var escaped = false; 
foreach char in string 
    if char is whitespace and lastchar is whitespace and shouldtrim 
     remove char from string 

    if char is ' and not escaped 
     toggle shouldtrim 

    if char is \ 
     toggle escaped 
    else 
     escaped = false 
1
<?php 

$parts = preg_split('/((?<!\\\\)|(?<=\\\\\\\\))\'/', trim($data)); 

foreach ($parts as $index => &$part) { 
    if ($index % 2 == 0) { 
     $part = preg_replace('/\s{2,}/', ' ', $part); 
    } 
} 

echo join('\'', $parts); 

我們等待更簡單的解決方案,我已經錯過了:P

+1

這是如何處理一個包含'\\''的字符串?鑑於撇號沒有逃脫。 – 2010-01-12 03:57:43

+0

謝謝匿名,編輯回答支持逃脫反斜槓。 – tanerkuc 2010-01-12 04:07:50

相關問題