- ?$str="this is a test \n";
- $patten = array("\r\n", "\n", "\r");
- ?//先替換掉\r\n,然後是否存在\n,最後替換\r
- $str=str_replace($order, "", $str);
- ?>
複製代碼
//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);
-
複製代碼
- /*
- * 獲得使用者作業系統的分行符號,\n
- * @access public
- * @return string
- */
- function get_crlf()
- {
- if (stristr($_SERVER['HTTP_USER_AGENT'], 'Win'))
- {
- $the_crlf = '\r\n';
- }
- elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'Mac'))
- {
- $the_crlf = '\r'; // for old MAC OS
- }
- else
- {
- $the_crlf = '\n';//權重大一點
- }
- return $the_crlf;
- }
複製代碼注意:在前台頁面顯示的時候,用nl2br使換行變成
第二種執行個體說明: 發現一個有趣的事情:
$text="aaaa
- ccc";
$text=str_replace('\n‘,"",$text);
- $text=str_replace('\r‘,"",$text);
- $text=str_replace('\r\n‘,"",$text);
複製代碼正常來說,上面的代碼應該可以替換分行符號了,但是事實上並非如此。很鬱悶,試了很多次,就是不起作用。最後改成這樣:
- $text=str_replace("\n","",$text);
- $text=str_replace("\r","",$text);
- $text=str_replace("\r\n","",$text);
-
複製代碼居然就可以了,原來是雙引號,單引號的問題! 雙引號比單引號效率差點,因為雙引號在被php解析的過程中 ,還會判斷裡面會不會有變數,單引號就不會有這個判斷,故而一般來講,沒涉及到變數的情況下,我都會用單引號,沒想到這次替換分行符號,用單引號居然不行····· 最後寫成:
- $order = array("\r\n", "\n", "\r");
- $replace = '';
- $text=str_replace($order, $replace, $text);
複製代碼這樣便可以替換分行符號了。是不是很方便呢。 >>> 您可能感興趣的文章:php去除字串分行符號執行個體解析php壓縮html(清除分行符號,清除定位字元,去掉注釋標記)php表單中轉換textarea分行符號的方法php正則過濾html標籤、空格、分行符號等的程式碼範例php去除分行符號的方法小結php壓縮html網頁代碼(清除空格、分行符號、定位字元、注釋標記等)的方法php產生excel與控制Excel儲存格中的分行符號 |