2011-06-22 164 views
-3

我使用的是PHP;和我讀,如果我要求用戶通過表單輸入關於自己的一些信息,然後當我訪問這些信息,我應該更好地利用修剪功能沒有真正修剪

$var=mysqli_real_escape_string($dbc,trim($_POST['name'])); 

,因爲它會從文本字段等全部刪除空格不需要的符號,但它確實不會刪除空格? 幫助!

+1

你能給我們一個輸入例子,你得到的輸出和你期望的輸出嗎?這可能會幫助我們告訴發生了什麼事情。但是你意識到[trim()](http://php.net/manual/en/function.trim.php)只能修整字符串的開頭和結尾的東西,沒錯,而不是中間的東西? (即trim('this is a test')'=>''這是一個test'')。 –

+0

它只會刪除前後的空格。你想刪除_all_空格嗎? – Dogbert

+0

'trim'只刪除**前導**和**尾隨**空格,而不是字符串中的所有空格。 – deceze

回答

6

trim()不會刪除所有空格,只有前導和尾隨空格。

+0

用於修整非分隔空間使用: 'trim($ matching_image,chr(160)); // 160是非破壞性空間的ASCII代碼' – Heitor

0

嘗試:

$var=mysqli_real_escape_string($dbc,str_replace(" ", "", $_POST['name'])); 
1

trim()將從開始和結束字符串,the following除去:

  1. 「」(ASCII 32(0×20)),一個普通的空間。
  2. 「\ t」(ASCII 9(0x09)),一個選項卡。
  3. 「\ n」(ASCII 10(0x0A)),換行(換行)。
  4. 「\ r」(ASCII 13(0x0D)),回車。
  5. 「\ 0」(ASCII 0(0x00)),NUL字節。
  6. 「\ x0B」(ASCII 11(0x0B)),一個垂直標籤。

此外,還通過@Wesley默奇指出,在評論中,修剪將刪除你傳遞給函數的第二個參數的任何字符,太。例如。

$str = 'appHello Worldapp'; 
$clean_str = trim($str, 'ap'); // as noted by @venimus, use just a single char, 
           // which you want removed 
echo $clean_str; // output: Hello World 
+2

完成注意事項:'trim()'還接受包含要修剪的其他任何字符的第二個參數。 –

+2

你實際上應該使用'$ clean_str = trim($ str,'ap');'因爲它不會刪除一個字符串,但列出的所有字符'trim($ str,'pa');'也是一樣 – venimus

+0

@venimus:你是對的!對不起這是我的錯。 :) – Shef

3

只是空間,使用$字符串= str_replace函數(」」, '',$字符串);刪除字符串的所有空格

對於空格使用$ string = preg_replace('/ \ s + /','',$ string);