php preg_replace函数基础与实例代码

本文实例总结了php字符串过滤与替换的方法。分享给大家供大家参考。具体实现方法如下:
复制代码 代码如下:

//preg_replace ( mixed $pattern , mixed $replacement , mixed $subject
[, int $limit = -1 [, int &$count ]] )
主题为匹配搜索模式,替换替换
/*
要搜索的模式。它可以是一个字符串或一个字符串数组。

class cls_string_filter{
 //将n转化为
–囧,这有意思么?
 static public function nl2br($string){
  return nl2br($string);
 }
 //将
转化为n
 static public function br2nl($string){
  $array = array(‘
‘,’
‘);
  return str_replace($array,”n”,$string);//字符串替换
 }
 //多个空格只保留一个
 static public function merge_spaces($string){
  return
preg_replace(“/s(?=s)/”,”\1″,$string);//(?=pattern)举例:abc(?=kk)能匹配abckk,但不能匹配abcdd
 }
 //多个
只保留一个
 static public function merge_brs($string){
  return preg_replace(“/((
)+)/i”,”
“,$string);//—“/”为什么也转义了
 }
 //过滤字符串中的html标签
 static public function strip_tags($string){
  return strip_tags($string);
 }
 //将字符串转换为小写–/–大写
 static public function strtolower($string){
  return strtolower($string);
 }
 static public function strtoupper($string){
  return strtoupper($string);
 }
 //过滤字符串开头与结尾的特定字符
 static public function trim($string,$char_list=’\\s’){
  $find = array(‘/[^-]\]/S’,’/\{4}/S’,’///’);
  $replace = array(‘\\\0′,’\’,’/’);
  $char = preg_replace($fine,$replace,$char_list);
  $pattern = ‘^[‘.$chars.’]*|[‘.$chars.’]’;
  return preg_replace(“/$pattern/sSD”,”,$string);
 }
 //过滤字符串中

电子修饰符使preg_replace函数()替代治疗后,适当引用作为参数是php教程代码进行替换。提示:请确保置换构成一个有效的php代码字符串,否则php将抱怨在包含preg_replace函数线()解析错误。

返回值

preg_replace函数()返回一个数组,如果这个问题的参数是一个数组或一个字符串,否则。

如果找到匹配,新问题会产生,否则将返回主题不变或null如果发生错误。
*/

//实例一

 代码如下

$string = ‘april 15, 2003’;
$pattern = ‘/(w+) (d+), (d+)/i’;
$replacement = ‘${1}1,$3’;
echo preg_replace($pattern, $replacement, $string);

//实例二

 代码如下

$string = ‘the quick brown fox jumped over the lazy dog.’;
$patterns = array();
$patterns[0] = ‘/quick/’;
$patterns[1] = ‘/brown/’;
$patterns[2] = ‘/fox/’;
$replacements = array();
$replacements[2] = ‘bear’;
$replacements[1] = ‘black’;
$replacements[0] = ‘slow’;
echo preg_replace($patterns, $replacements, $string);

//通过ksorting模式和替代,我们应该得到我们想要的。

 代码如下

ksort($patterns);
ksort($replacements);
echo preg_replace($patterns, $replacements, $string);

//更换几个值

 代码如下

$patterns = array (‘/(19|20)(d{2})-(d{1,2})-(d{1,2})/’,
                   ‘/^s*{(w+)}s*=/’);
$replace = array (‘ / / ‘, ‘$ =’);
echo preg_replace($patterns, $replace, ‘{startdate} = 1999-5-27’);

//过滤所有html 标签

 代码如下

preg_replace(“/(</?)(w+)([^>]*>)/e”,
             “‘1’.strtoupper(‘2’).’3′”,
             $html_body);

//过滤所有script代码

 代码如下

$user_agent = “mozilla/4.0 (compatible; msie 5.01; windows nt 5.0)”;

$ch = curl_init();    // initialize curl handle
curl_setopt($ch, curlopt_url, $url); // set url to post to
curl_setopt($ch, curlopt_failonerror, 1);              // fail on
errors
curl_setopt($ch, curlopt_followlocation, 1);    // allow redirects
curl_setopt($ch, curlopt_returntransfer,1); // return into a
variable
curl_setopt($ch, curlopt_port, 80);            //set the port number
curl_setopt($ch, curlopt_timeout, 15); // times out after 15s

curl_setopt($ch, curlopt_useragent, $user_agent);

$document = curl_exec($ch);

$search = array(‘@<script[^>]*?>.*?</script>@si’,  //
strip out javascript教程
www.111cn.net
‘@<style[^>]*?>.*?</style>@siu’,    // strip style
tags properly
‘@<[/!]*?[^<>]*?>@si’,            // strip out html
tags
‘@<![ss]*?–[ ]*>@’,         // strip multi-line comments
including cdata
‘/s{2,}/’,

);

$text = preg_replace($search, ” “, html_entity_decode($document));

$pat[0] = “/^s+/”;
$pat[2] = “/s+$/”;
$rep[0] = “”;
$rep[2] = ” “;

$text = preg_replace($pat, $rep, trim($text));

return $text;
}

/*
此函数接受一个url并返回页面的纯文本版本。它使用curl来检索网页,一个正则表达式的组合,以去除所有不必要的空白。这个功能甚至剥夺了从形式和script标记,这是由php函数忽略,如用strip_tags(他们地带唯一的标记文本,留下完整的文字在中间)。

正则表达式被分为两个阶段,以避免删除单(也由
s的匹配)回车,但仍然删除所有空白行和多个换行符或空格,修整手术进行了2个阶段进行。
*/
?>

发表评论

电子邮件地址不会被公开。 必填项已用*标注