php正則表達式過濾空格 換行符 回車


我整理了幾個比較適合的實例了,對於它們我們是有很多站長都測試過並用過了,不過文章最后我的總結也是生重要的哦,至於原因我也說不上了,因為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)這樣才可以替換的哦。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM