2012-10-18 42 views
0

我想從字符串變量中刪除一個出現在空格之間的字符,我使用了一些PHP函數來執行它,如str_replace,但沒有任何反應。如何刪除字符「 」在PHP字符串變量

下面的例子中,我告訴它通過PHP的var_dump功能:

string '�I�N�S�E�R�T� �[�d�b�o�]� 

如果有人能告訴我一個辦法做到這一點,我會很感激。

+4

您需要正確處理的編碼:什麼每個程序員絕對,肯定需要知道編碼和字符集進行工作,文字](http://kunststube.net/encoding/) – deceze

+0

瞭解這^並閱讀使用正則表達式刪除字符。這裏是一個堆棧溢出鏈接:http://stackoverflow.com/questions/5011640/stripping-out-characters-that-arent-a-za-z0-9-and-from-php-strings – WozzeC

回答

1

你可以嘗試:

$str = '�I�N�S�E�R�T� �[�d�b�o�]�'; 
$filtered_str = filter_var($str, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH) 

Demo。請參閱:filter-varfilter.filters.sanitize

+0

非常感謝,有幫助...正是我所需要的 – oletob

+1

@evolquez可能*不*完全符合您的需求。如果您正確地對待編碼(當然,除非明確插入),否則您應該永遠不要在您的文本中開始使用Unicode替換字符 。 – deceze

+0

@xylar問題是我沒有使用任何Unicode字符,我只看到與變量不一致,並決定使用函數var_dump打印它,並看到每個包含空格的字符。 – oletob

2

這是一個簡單的字符串變換操作(Demo):

$string = '�I�N�S�E�R�T� �[�d�b�o�]�'; 
echo strtr($string, array('�' => '')); 

輸出:

INSERT [dbo] 

但是你可能有問題,實際上不知道該字符,然後將需要你先正確獲取字符串。因此,在後來取代它只會是錯誤的地方。

+0

看起來很簡單,但如果你分配句子strtr($ string,array(' '=>''));到一個變量,他們通過var_dump打印變量,你會看到什麼問題。 – oletob

+0

@evolquez:看到這裏,有一個變量和var_dump:http://codepad.org/j8iEVkZ2 – hakre

+0

我用函數filter_var解決了它:$ str =' I N S E R T [ DBO]'; $ filtered_str = filter_var($ str,FILTER_SANITIZE_STRING,FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH)...無論如何感謝 – oletob