我有這樣一個句子。修剪 用PHP
1 $nbsp; 2 3 4
正如你所看到的,在1 2和3之間的文本中,有額外的空格。我希望它們之間只有一個空格的輸出。所以我的輸出將是1 2 3 4
如果我使用修剪,它只能刪除空白,但不是那
我怎樣才能使用PHP修剪得到這樣的輸出?
我有這樣一個句子。修剪 用PHP
1 $nbsp; 2 3 4
正如你所看到的,在1 2和3之間的文本中,有額外的空格。我希望它們之間只有一個空格的輸出。所以我的輸出將是1 2 3 4
如果我使用修剪,它只能刪除空白,但不是那
我怎樣才能使用PHP修剪得到這樣的輸出?
$str = "1 $nbsp; 2 3 4";
$new_str = str_replace(" ", '', $str);
,如果你的字符串實際上有「 」,
$str="1 2 3 4";
$s = str_replace(" ","",$str);
print $s;
echo str_replace (" ", "", "1 2 3 4");
只記得你需要回聲出str_replace函數的結果,你ALO不需要擔心白色空格的瀏覽器只會顯示一個空白區域。
在php.net找到這一點,偉大的工程:
$myHTML = " abc";
$converted = strtr($myHTML, array_flip(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES)));
trim($converted, chr(0xC2).chr(0xA0));
你有沒有注意到遺失的遺物? – Deele 2013-03-04 10:46:07
@Deele我並不總是測試我的代碼,但是當我這樣做時,我會在生產中進行測試。 – 2013-03-04 13:32:19
優秀的托比亞斯,非常感謝... – 2013-08-22 13:32:20
對於那些一個更具包容性的回答誰不想只是做一個微調:
$str = trim($str, " \t\n\r\0\x0B\xC2\xA0");
同修剪處理 html實體:
$str = trim(html_entity_decode($str), " \t\n\r\0\x0B\xC2\xA0");
這html_entity_decode和修剪相互作用在這裏的PHP文件中概述: http://php.net/manual/en/function.html-entity-decode.php#refsect1-function.html-entity-decode-notes
當它只是一個6個字符的字符串時,它不會去掉 。 – 2015-02-09 18:56:30
@ArtemRussakovskii:它不應該去掉 ,因爲這是一個html實體,不適合修剪。如果您希望在字符串中首先使用html_entity_decode修剪掉額外的 ,那麼這是合適的解決方案。 – Chaoix 2015-02-25 17:17:58
$str = " abc ";
echo trim($str, "\xC2\xA0"); //abc
通常情況下,如果答案包含對代碼意圖做什麼的解釋,以及爲什麼解決問題而不介紹其他問題,答案會更有幫助。 – 2015-04-28 06:13:28
晚了一點回答,但希望可以幫助別人。從html中提取內容最重要的是在php中使用utf8_decode()。然後所有其他的字符串操作變得輕而易舉。即使是外來字符也可以直接從瀏覽器中將粘貼字符複製到php代碼中。以下函數用空格替換
。然後使用preg_replace()
將所有額外的空格替換爲單個空格。最後刪除前後白色空格。
function clean($str)
{
$str = utf8_decode($str);
$str = str_replace(" ", " ", $str);
$str = preg_replace('/\s+/', ' ',$str);
$str = trim($str);
return $str;
}
$html = "1 $nbsp; 2 3 4";
$output = clean($html);
echo $output;
PHP代碼被解釋爲服務器,而不是在客戶端。瀏覽器從來沒有看到它。 – 2014-05-28 07:24:24