PHP经典实用正则表达式小结


Posted in PHP onMay 04, 2017

本文实例讲述了PHP经典实用正则表达式。分享给大家供大家参考,具体如下:

对于开发人员来说,正则表达式是一个非常有用的功能,它提供了 查找,匹配,替换 句子,单词,或者其他格式的字符串。这里介绍了几个超实用的php正则表达式,需要的朋友可以参考下。

1. 验证域名检验一个字符串是否是个有效域名

<?php
$url = "https://www.baidu.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.";
}

2. 从一个字符串中 突出某个单词

这是一个非常有用的在一个字符串中匹配出某个单词 并且突出它,非常有效的搜索结果

<?php
$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("/(regex)/i", '<span style="background:#5fc9f6">1</span>', $text);
echo $text;
function get_the_title(){
  return 'Save the search.php file and open style.css. Append the following line to it: ';
}
$s = 'and php';
$title  = get_the_title();
$keys= explode(" ",$s);
$title  = preg_replace('/('.implode('|', $keys) .')/iu',
'<strong>\0</strong>',
$title);
echo $title;

3. 从HTML文档中获得全部图片

如果你曾经希望去获得某个网页上的全部图片,这段代码就是你需要的,你可以轻松的建立一个图片下载机器人

<?php
$images = array();
$data = file_get_contents('https://www.baidu.com');
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);
 }
}
var_dump($images);

4. 匹配一个XML或者HTML标签

这个简单的函数有两个参数:第一个是你要匹配的标签,第二个是包含XML或HTML的变量,再强调下,这个真的很强大

<?php
function get_tag( $tag, $xml ) {
  $tag = preg_quote($tag);
  output($tag);
  preg_match_all('/<'.$tag.'[^>]*>(.*?)<\/'.$tag.'>./',
    $xml,
    $matches,
    PREG_PATTERN_ORDER
  );
  return $matches[1];
}
$xml = '<span>bb<a>bbb</a><a>ccc</a></span><span>bb<a>aa</a><p><a>ddd</a></p></span>';
$tag = 'a';
$return = get_tag($tag, $xml);
var_dump($return);
/*
array(2) {
 [0]=>
 array(3) {
  [0]=>
  string(11) "bbb<"
  [1]=>
  string(10) "aa<"
  [2]=>
  string(11) "ddd<"
 }
 [1]=>
 array(3) {
  [0]=>
  string(3) "bbb"
  [1]=>
  string(2) "aa"
  [2]=>
  string(3) "ddd"
 }
}
array(3) {
 [0]=>
 string(3) "bbb"
 [1]=>
 string(2) "aa"
 [2]=>
 string(3) "ddd"
}
*/
PHP 相关文章推荐
php实现网站插件机制的方法
Nov 10 PHP
PHP用SAX解析XML的实现代码与问题分析
Aug 22 PHP
简单实现限定phpmyadmin访问ip的方法
Mar 05 PHP
php中替换字符串中的空格为逗号','的方法
Jun 09 PHP
php表单提交与$_POST实例分析
Jan 26 PHP
php+mysqli使用面向对象方式更新数据库实例
Jan 29 PHP
PHP性能优化大全(php.ini)
May 20 PHP
降低PHP Redis内存占用
Mar 23 PHP
php简单实现单态设计模式的方法分析
Jul 28 PHP
php中pcntl_fork创建子进程的方法实例
Mar 14 PHP
PHP简单验证码功能机制实例详解
Mar 27 PHP
如何运行/调试你的PHP代码
Oct 23 PHP
PHP实现的简单异常处理类示例
May 04 #PHP
PHP基于新浪IP库获取IP详细地址的方法
May 04 #PHP
PHP 无限级分类
May 04 #PHP
PHP实现中国公民身份证号码有效性验证示例代码
May 03 #PHP
PHP基于Redis消息队列实现发布微博的方法
May 03 #PHP
Laravel5中Cookie的使用详解
May 03 #PHP
[原创]php实现数组按拼音顺序排序的方法
May 03 #PHP
You might like
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
2014/06/21 Servers
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
php面向对象值单例模式
2016/05/03 PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
2016/05/19 PHP
jquery ready()的几种实现方法小结
2010/06/18 Javascript
js切换div css注意的细节
2012/12/10 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
javascript 用函数语句和表达式定义函数的区别详解
2014/01/06 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
JS简单实现数组去重的方法示例
2017/03/27 Javascript
backbone简介_动力节点Java学院整理
2017/07/14 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
2018/05/16 jQuery
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
[03:04]2018年国际邀请赛典藏宝瓶&莱恩声望物品展示 片尾有彩蛋
2018/06/04 DOTA
[01:17]炒鸡美酒第四天TA暴走
2018/06/05 DOTA
python文件写入实例分析
2015/04/08 Python
详解Python编程中time模块的使用
2015/11/20 Python
python处理document文档保留原样式
2019/09/23 Python
澳大利亚在线百货商店:Real Smart
2017/08/13 全球购物
洲际酒店集团美国官网:IHG美国
2017/11/16 全球购物
美国领先的医疗警报服务:Philips Lifeline
2018/03/12 全球购物
门卫班长岗位职责
2013/12/15 职场文书
思想汇报格式
2014/01/05 职场文书
《雨点儿》教学反思
2014/04/14 职场文书
出售房屋委托书范本
2014/09/24 职场文书
个人职业及收入证明
2014/10/13 职场文书
排球赛新闻稿
2015/07/17 职场文书
高中军训感想
2015/08/07 职场文书
JavaScript 防篡改对象的用法示例
2021/04/24 Javascript
详解Redis主从复制实践
2021/05/19 Redis
Win10 最新稳定版本 21H2开始推送
2022/04/19 数码科技