1. php str_replace替換函數如何替換多個內容
(一)
$new_str
=
str_replace("xxx",
"bbb",
"aaaxxxaaa");
echo
$new_str;
//aaabbbaaa
(二)
$new_str
=
str_replace(array("xxx",
"yyy"),
"bbb",
"aaaxxxaaayyyaaa");
echo
$new_str;
//aaabbbaaabbbaaa
(三)
$new_str
=
str_replace(array("xxx",
"yyy"),
array("bbb",
"ccc"),
"aaaxxxaaayyyaaa");
echo
$new_str;
//aaabbbaaacccaaa
當然,str_replace的第三個參數也可以是數組
2. php中數據過濾的問題
我來解釋一下吧
preg_replace('/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F]/','',$string);
去掉控制字元,你google一下ascii table就知道了,php裡面 - 代表范圍,比如\x00-\x08指的是ASCII代碼在\x00到\x08范圍的字元,\x0A和\x0D代表回車換行,所以沒包含在這個裡面,否則直接\x00-\x1F了,
$string = str_replace(array("\0","%00","\r"),'',$string);
\0表示ASCII 0x00的字元,通常作為字元串結束標志
$string = preg_replace("/&(?!(#[0-9]+|[a-z]+);)/si",'&',$string);
我們知道HTML裡面可以用xx;來對一些字元進行編碼,比如 (空格), ߷ Unicode字元等,A(?!B) 表示的是A後面不是B,所以作者想保留 ߷類似的 HTML編碼字元,去掉其他的問題字元,比如 &123; nbsp;
str_replace(array("%3C",'<'),'<',$string);
第一個'<'多餘吧,%3C是編碼以後的 <, 一般用在URL編碼里
str_replace(array("%3E",'>'),'>',$string);
str_replace(array('"',"'","\t",' '),array('"',"'",'',''),$string);
略過
有問題再追問
3. php的str_replace函數怎麼把<p><br/></p>替換掉呢
php的str_replace函數怎麼把<p><br/></p>替換掉方法如下
$html="<p>fdasf</p>";
echo $string = str_replace(array("<p>","","</p>"),"",$html);
br<http://bbs.hounwang.com/>
若是<p> 內容</p>替換成<p>內容</p>
<p> content</p>替換成<p>contend</p>
(空格是tab鍵和空格鍵 混合的 都有可能)方法如下
$html=preg_replace('/[ ]/','',$html);//去空格
若是<p>後面跟了若干個,再是內容
<p> 內容</p>
替換成<p>內容</p>
<p> content</p>
替換成<p>contend</p>
<?php
$html="<p>
內容</p>替換成<p>內容</p>
<p>content</p>替換成<p>contend</p>";方法如下
$html=trim($html);
$html=str_replace(PHP_EOL,"",$html);
$html=str_replace(" ","",$html);
$html=preg_replace('/s+/','',$html);
$html=preg_replace('/[ ]/','',$html);
echo "{$html}";
?>