加入收藏 | 设为首页 | 会员中心 | 我要投稿 宁德站长网 (https://www.0593zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

15 个实用的 PHP 正则表达式

发布时间:2016-10-01 11:46:57 所属栏目:PHP教程 来源:站长网
导读:副标题#e# 对于开发人员来说,正则表达式是一个非常有用的功能,它提供了 查找,匹配,替换 句子,单词,或者其他格式的字符串。这篇文章主要介绍了15个超实用的php正则表达式,需要的朋友可以参考下。在这篇文章里,我已经编写了15个超有用 的正则表达式,

这个功能和上面的非常相似,但是它允许你匹配的标签内部有属性值,例如你可以轻松匹配 <div id=”header”>

  1. function get_tag( $attr, $value, $xml, $tag=null ) { 
  2. if( is_null($tag) ) 
  3.   $tag = 'w+'; 
  4. else 
  5.   $tag = preg_quote($tag); 
  6.  
  7. $attr = preg_quote($attr); 
  8. $value = preg_quote($value); 
  9.  
  10. $tag_regex = "/<(".$tag.")[^>]*$attrs*=s*". 
  11.         "(['"])$value2[^>]*>(.*?)</1>/" 
  12.  
  13. preg_match_all($tag_regex, 
  14.          $xml, 
  15.          $matches, 
  16.          PREG_PATTERN_ORDER); 
  17.  
  18. return $matches[3]; 

匹配十六进制颜色值

web开发者的另一个有趣的工具,它允许你匹配和验证十六进制颜色值.

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

查找页面 title

这段代码方便查找和打印 网页 <title> 和</title> 之间的内容

  1. $fp = fopen("http://www.catswhocode.com/blog","r"); 
  2. while (!feof($fp) ){ 
  3.   $page .= fgets($fp, 4096); 
  4.  
  5. $titre = eregi("<title>(.*)</title>",$page,$regs); 
  6. echo $regs[1]; 
  7. fclose($fp); 

解释 Apache 日志

大多数网站使用的都是著名的Apache服务器,如果你的网站也是,那么使用PHP正则表达式解析 apache 服务器日志 怎么样?

  1. //Logs: Apache web server 
  2. //Successful hits to HTML files only. Useful for counting the number of page views. 
  3. '^((?#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)[^"]*)"$' 
  4.  
  5. //Logs: Apache web server 
  6. //404 errors only 
  7. '^((?#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)[^"]*)"$' 

使用智能引号代替双引号

如果你是一个印刷爱好者,你将喜欢这个允许用智能引号代替双引号的正则表达式,这个正则被WORDPRESS在其内容上使用

  1. 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: 使用正则获得帖子上的图片

我知道很多人是WORDPRESS的使用者,你可能会喜欢并且愿意使用 那些从帖子的内容检索下来的图像代码。使用这个代码在你的BLOG只需要复制下面代码到你的某个文件里

  1. <php if (have_posts()) : ?> 
  2. <php while (have_posts()) : the_post(); ?> 
  3.  
  4. <php 
  5. $szPostContent = $post->post_content; 
  6. $szSearchPattern = '~<img [^>]* />~'; 
  7.  
  8. // Run preg_match_all to grab all the images and save the results in $aPics 
  9. preg_match_all( $szSearchPattern, $szPostContent, $aPics ); 
  10.  
  11. // Check to see if we have at least 1 image 
  12. $iNumberOfPics = count($aPics[0]); 
  13.  
  14. if ( $iNumberOfPics > 0 ) { 
  15.    // Now here you would do whatever you need to do with the images 
  16.    // For this example the images are just displayed 
  17.    for ( $i=0; $i < $iNumberOfPics ; $i++ ) { 
  18.      echo $aPics[0][$i]; 
  19.    }; 
  20. }; 
  21.  
  22. endwhile; 
  23. endif; 

自动生成笑脸图案

(编辑:宁德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读