簡體   English   中英

PHP - 刪除多余的空格但不刪除新行

[英]PHP - Remove excess Whitespace but not new lines

我正在尋找一種方法來從字符串中刪除多余的空格(也就是說,如果 2 個或更多的空格彼此相鄰,則只留下 1 個並刪除其他空格),我發現這個從字符串中刪除多余的空格,我想要使用此解決方案:

$foo = preg_replace( '/\s+/', ' ', $foo );

但這也會刪除新行,而我想保留它們。 有沒有辦法在刪除多余空格的同時保留換行符?

http://www.php.net/manual/en/regexp.reference.escape.php定義了\\h any horizontal whitespace character (since PHP 5.2.4)所以您可能正在尋找

$foo = preg_replace( '/\\h+/', ' ', $foo );

示例: http : //ideone.com/NcOiKW

如果你想刪除多余的空格(不是制表符、換行符等),你可以使用十六進制代碼來更具體:

    $text = preg_replace('/\x20+/', ' ', $text);

如果您的某些符號在preg_replace之后被轉換為 (例如,西里爾大寫字母R / Р),請使用mb_ereg_replace而不是preg_replace

$value = mb_ereg_replace('/\h+/', ' ', $value);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM