15 个实用的 PHP 正则表明式

15 个实用的 PHP 正则表明式

对此开荒人员来讲,正则表达式是三个格外有效的效劳,它提供了
查找,相称,替换
句子,单词,可能此外格式的字符串。那篇小说主要介绍了14个超实用的php正则表达式,须求的相爱的人能够参照下。在此篇小说里,小编曾经编写制定了十五个超有用的正则表明式,WEB开辟职员都应该将它收藏到温馨的工具包。

14个超实用的php正则表明式,15php正则表达式

在这里篇小说里,笔者曾经编写制定了14个超有用的正则表明式,WEB开垦人士都应当将它收藏到温馨的工具包。

验证域名
稽查一个字符串是还是不是是个有效域名.

$url = "http://komunitasweb.com/"; 
if (preg_match('/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i', $url)) { 
  echo "Your url is ok."; 
} else { 
  echo "Wrong url."; 
} 

从多个字符串中 特出某些单词 那是三个非常实用的在一个字符串中相配出某些单词
何况卓越它,特别常有效的探索结果

$text = "Sample sentence from KomunitasWeb, regex has become popular in web programming. Now we learn regex. According to wikipedia, Regular expressions (abbreviated as regex or 

regexp, with plural forms regexes, regexps, or regexen) are written in a formal language that can be interpreted by a regular expression processor"; 
$text = preg_replace("/b(regex)b/i", '1', $text); 
echo $text; 

卓绝查询结果在您的 WordPress
博客里好似刚刚自家说的,上边的这段代码可以很便利的搜索出结果,而那边是三个越来越好的点子去推行寻找在某些WordPress的博客上展开你的文本
search.php ,然后找到 方法 the_title(卡塔尔国 然后用下边代码替换掉它

echo $title; 

Now, just before the modified line, add this code: 

<?php 
  $title   = get_the_title(); 
  $keys= explode(" ",$s); 
  $title   = preg_replace('/('.implode('|', $keys) .')/iu', 
    '<strong>\0</strong>', 
    $title); 
?> 

Save the search.php file and open style.css. Append the following line to it: 

strong.search-excerpt { background: yellow; } 

从HTML文书档案中得到全套图片 倘让你已经希望去得到有些网页上的全部图纸,这段代码正是你必要的,你可以轻易的确立二个图片下运载飞机器人

$images = array(); 
preg_match_all('/(img|src)=("|')[^"'>]+/i', $data, $media); 
unset($data); 
$data=preg_replace('/(img|src)("|'|="|=')(.*)/i',"$3",$media[0]); 
foreach($data as $url) 
{ 
  $info = pathinfo($url); 
  if (isset($info['extension'])) 
  { 
    if (($info['extension'] == 'jpg') || 
    ($info['extension'] == 'jpeg') || 
    ($info['extension'] == 'gif') || 
    ($info['extension'] == 'png')) 
    array_push($images, $url); 
  } 
} 

剔除重复字母
平日重复输入字母? 这几个表明式正相符.

$text = preg_replace("/s(w+s)1/i", "$1", $text);

剔除重复的标点
职能同上,但只是直面标点,白白重复的逗号

$text = preg_replace("/.+/i", ".", $text); 

匹配一个XML恐怕HTML标签 其一大约的函数有多少个参数:第多少个是你要合作的竹签,第四个是包涵XML或HTML的变量,再重申下,这一个实在很刚劲

function get_tag( $tag, $xml ) { 
 $tag = preg_quote($tag); 
 preg_match_all('{<'.$tag.'[^>]*>(.*?)</'.$tag.'>.'}', 
          $xml, 
          $matches, 
          PREG_PATTERN_ORDER); 

 return $matches[1]; 
} 

同盟具备属性值的XML或然HTML标签 本条功效和地点的足够相仿,不过它同意你同盟的价签内部有属性值,比如你能够轻便匹配<div id=”header”>

function get_tag( $attr, $value, $xml, $tag=null ) { 
 if( is_null($tag) ) 
  $tag = '\w+'; 
 else 
  $tag = preg_quote($tag); 

 $attr = preg_quote($attr); 
 $value = preg_quote($value); 

 $tag_regex = "/<(".$tag.")[^>]*$attr\s*=\s*". 
        "(['\"])$value\\2[^>]*>(.*?)<\/\\1>/" 

 preg_match_all($tag_regex, 
         $xml, 
         $matches, 
         PREG_PATTERN_ORDER); 

 return $matches[3]; 
} 

格外十一进制颜色值 web开荒者的另三个幽默的工具,它同意你合营和验证十三进制颜色值.

$string = "#555555"; 
if (preg_match('/^#(?:(?:[a-fd]{3}){1,2})$/i', $string)) { 
echo "example 6 successful."; 
} 

搜索页面 title
这段代码方便寻觅和打字与印刷 网页 <title> 和</title> 之间的剧情

$fp = fopen("http://www.catswhocode.com/blog","r"); 
while (!feof($fp) ){ 
  $page .= fgets($fp, 4096); 
} 

$titre = eregi("<title>(.*)</title>",$page,$regs); 
echo $regs[1]; 
fclose($fp); 

解释 Apache 日志
大多数网址采纳的都以资深的Apache服务器,纵然你的网址也是,那么使用PHP正则表明式深入分析apache 服务器日志 怎么着?

//Logs: Apache web server 
//Successful hits to HTML files only. Useful for counting the number of page views. 
'^((?#client IP or domain name)S+)s+((?#basic authentication)S+s+S+)s+[((?#date and time)[^]]+)]s+"(?:GET|POST|HEAD) ((?#file)/[^ ?"]+?.html?)??((?#parameters)[^ ?"]+)? HTTP/[0-9.]+"s+(?#status code)200s+((?#bytes transferred)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent)[^"]*)"$' 

//Logs: Apache web server 
//404 errors only 
'^((?#client IP or domain name)S+)s+((?#basic authentication)S+s+S+)s+[((?#date and time)[^]]+)]s+"(?:GET|POST|HEAD) ((?#file)[^ ?"]+)??((?#parameters)[^ ?"]+)? HTTP/[0-9.]+"s+(?#status code)404s+((?#bytes transferred)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent)[^"]*)"$' 

使用智能引号代替双引号 一经您是八个印刷爱好者,你将赏识那些允许用智能引号替代双引号的正则表达式,这几个正则被WO奥德赛DPRESS在其内容上选用

preg_replace('B"b([^"x84x93x94rn]+)b"B', '?1?', $text);

核查密码的复杂度
那几个正则表明式将检查测量检验输入的情节是还是不是带有6个或更加多字母,数字,下划线和连字符.
输入必得包涵起码二个大写字母,多个小写字母和多少个数字
复制代码
代码如下:’A(?=[-_a-zA-Z0-9]*?[A-Z])(?=[-_a-zA-Z0-9]*?[a-z])(?=[-_a-zA-Z0-9]*?[0-9])[-_a-zA-Z0-9]{6,}z’   

WordPress: 使用正则得到 帖子上的图片
自家明白许多个人是WO奥迪Q7DPRESS的使用者,你可能会赏识並且愿意利用
那二个从帖子的剧情寻觅下来的图像代码。使用那个代码在您的BLOG只供给复制上面代码到你的某些文件里

<?php if (have_posts()) : ?> 
<?php while (have_posts()) : the_post(); ?> 

<?php 
$szPostContent = $post->post_content; 
$szSearchPattern = '~<img [^>]* />~'; 

// Run preg_match_all to grab all the images and save the results in $aPics 
preg_match_all( $szSearchPattern, $szPostContent, $aPics ); 

// Check to see if we have at least 1 image 
$iNumberOfPics = count($aPics[0]); 

if ( $iNumberOfPics > 0 ) { 
   // Now here you would do whatever you need to do with the images 
   // For this example the images are just displayed 
   for ( $i=0; $i < $iNumberOfPics ; $i++ ) { 
     echo $aPics[0][$i]; 
   }; 
}; 

endwhile; 
endif; 
?> 

自动生成笑貌图案
被WordPress使用的另二个办法, 这段代码可让你把图像自动转变叁个笑容符号

$texte='A text with a smiley '; 
echo str_replace(':-)','<img src="smileys/souriant.png">',$texte); 

移除图片的链接

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<?php 
  $str = ' 
    <a href="http://www.5idev.com/">5idev</a>其他字符 
    <a href="http://www.sohu.com/">sohu</a> 
    <a href="http://www.sohu.com/"><img src="http://www.fashion-press.net/img/news/3176/mot_06.jpg" /></a> 
    <br>'; 


  //echo preg_replace("/(<a.*?>)(<img.*?>)(<\/a>)/", '$2', $str);  
  echo preg_replace("/(<a.*?>)(<img.*?>)(<\/a>)/", '\2', $str);  
?> 

以上正是十七个超实用的php正则表明式,希望对大家的学习抱有利于。

在此篇随笔里,笔者一度编制了十八个超有用的正则表明式,WEB开垦人士都应当将它收藏到协调的工…

图片 1

验证域名检查二个字符串是不是是个有效域名

$url = "http://komunitasweb.com/"; 
if (preg_match('/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i', $url)) { 
  echo "Your url is ok."; 
} else { 
  echo "Wrong url."; 
}

从叁个字符串中 优异某些单词

那是贰个十一分有效的在一个字符串中相称出有些单词
並且卓绝它,非常管用的搜寻结果

$text = "Sample sentence from KomunitasWeb, regex has become popular in web programming. Now we learn regex. According to wikipedia, Regular expressions (abbreviated as regex or 

regexp, with plural forms regexes, regexps, or regexen) are written in a formal language that can be interpreted by a regular expression processor"; 
$text = preg_replace("/b(regex)b/i", '1', $text); 
echo $text;

崛起查询结果在您的 WordPress
博客里就好像刚刚自身说的,上边的这段代码能够很有益的研究出结果,而这里是多少个更加好的艺术去推行寻找在有些WordPress的博客上开采你的文本
search.php ,然后找到 方法 the_title(卡塔尔(قطر‎ 然后用下边代码替换掉它

echo $title; 

Now, just before the modified line, add this code: 

<?php 
  $title   = get_the_title(); 
  $keys= explode(" ",$s); 
  $title   = preg_replace('/('.implode('|', $keys) .')/iu', 
    '<strong>\0</strong>', 
    $title); 
?> 

Save the search.php file and open style.css. Append the following line to it: 

strong.search-excerpt { background: yellow; }

从HTML文书档案中获取全套图纸

假使你已经希望去得到有个别网页上的全方位图形,这段代码就是你需求的,你能够轻巧的确立二个图片下运载飞机器人

$images = array(); 
preg_match_all('/(img|src)=("|')[^"'>]+/i', $data, $media); 
unset($data); 
$data=preg_replace('/(img|src)("|'|="|=')(.*)/i',"$3",$media[0]); 
foreach($data as $url) 
{ 
  $info = pathinfo($url); 
  if (isset($info['extension'])) 
  { 
    if (($info['extension'] == 'jpg') || 
    ($info['extension'] == 'jpeg') || 
    ($info['extension'] == 'gif') || 
    ($info['extension'] == 'png')) 
    array_push($images, $url); 
  } 
}

去除重复字母

临时重复输入字母? 这么些表明式正切合.

$text = preg_replace("/s(w+s)1/i", "$1", $text);

去除重复的标点

意义同上,但只是直面标点,白白重复的逗号

$text = preg_replace("/.+/i", ".", $text);

相称二个XML或许HTML标签

这些轻易的函数有四个参数:第叁个是您要协作的标签,第2个是含有XML或HTML的变量,再重申下,这一个真的很有力

function get_tag( $tag, $xml ) { 
 $tag = preg_quote($tag); 
 preg_match_all('{<'.$tag.'[^>]*>(.*?)</'.$tag.'>.'}', 
          $xml, 
          $matches, 
          PREG_PATTERN_ORDER); 

 return $matches[1]; 
}

协作具有属性值的XML恐怕HTML标签

以此职能和地点的拾叁分肖似,不过它同意你同盟的价签内部有属性值,举个例子你可以轻便匹配<div id=”header”>

function get_tag( $attr, $value, $xml, $tag=null ) { 
 if( is_null($tag) ) 
  $tag = '\w+'; 
 else 
  $tag = preg_quote($tag); 

 $attr = preg_quote($attr); 
 $value = preg_quote($value); 

 $tag_regex = "/<(".$tag.")[^>]*$attr\s*=\s*". 
        "(['\"])$value\\2[^>]*>(.*?)<\/\\1>/" 

 preg_match_all($tag_regex, 
         $xml, 
         $matches, 
         PREG_PATTERN_ORDER); 

 return $matches[3]; 
}

发表评论

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

网站地图xml地图