我整理了幾個比較適合的實例了,對於它們我們是有很多站長都測試過並用過了,不過文章最后我的總結也是生重要的哦,至於原因我也說不上了,因為chr是ascii編碼了所以有時瀏覽器會自動轉成ascii,特別像ff瀏覽器就是這樣的。
一,下例可以去除額外空白
代碼如下 |
復制代碼 |
<?php $str = " This line containstliberal rn use of whitespace.nn"; // First remove the leading/trailing whitespace //去掉開始和結束的空白 www.111cn.net $str = trim($str); // Now remove any doubled-up whitespace //去掉跟隨別的擠在一塊的空白 $str = preg_replace('/s(?=s)/', '', $str); // Finally, replace any non-space whitespace, with a space //最后,去掉非space 的空白,用一個空格代替 $str = preg_replace('/[nrt]/', ' ', $str); // Echo out: 'This line contains liberal use of whitespace.' echo "<pre>{$str}</pre>"; ?> |
二,替換換行符
//php 有三種方法來解決
代碼如下 |
復制代碼 |
//1、使用str_replace 來替換換行 $str = str_replace(array("rn", "r", "n"), "", $str); //2、使用正則替換 $str = preg_replace('//s*/', '', $str); //3、使用php定義好的變量 (建議使用) $str = str_replace(PHP_EOL, '', $str); |
代碼如下:
代碼如下 |
復制代碼 |
/* * 獲得用戶操作系統的換行符,n * @access public * @return string */ function get_crlf() { if (stristr($_SERVER['HTTP_USER_AGENT'], 'Win')) { $the_crlf = 'rn'; } elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'Mac')) { $the_crlf = 'r'; // for old MAC OS } else { $the_crlf = 'n';//權重大一點 www.111cn.net } return $the_crlf; } |
注意:在前台頁面顯示的時候,用nl2br使換行變成<br>
三,替換回車
代碼如下 |
復制代碼 |
<?php //php 不同系統的換行 //不同系統之間換行的實現是不一樣的 //linux 與unix中用 /n //MAC 用 /r //window 為了體現與linux不同 則是 /r/n //所以在不同平台上 實現方法就不一樣 //php 有三種方法來解決 //1、使用str_replace 來替換換行 $str = str_replace(array("/r/n", "/r", "/n"), "", $str); //2、使用正則替換 $str = preg_replace('//s*/', '', $str); //3、使用php定義好的變量 (建議使用) $str = str_replace(PHP_EOL, '', $str); ?> |
有時我們還需要注意像textarea中的回車換行並不是/r/n之類的而是需要chr(32),chr(13)這樣才可以替換的哦。