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数字格式化
Dec 06 PHP
php实现jQuery扩展函数
Oct 30 PHP
PHP使用json_encode函数时不转义中文的解决方法
Nov 12 PHP
php实现微信公众号主动推送消息
Dec 31 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
Feb 14 PHP
PHP常用算法和数据结构示例(必看篇)
Mar 15 PHP
老生常谈PHP面向对象之注册表模式
May 26 PHP
php魔法函数与魔法常量使用介绍
Jul 23 PHP
详解PHP中的 input属性(隐藏 只读 限制)
Aug 14 PHP
Laravel 实现添加多语言提示信息
Oct 25 PHP
PHP CURL实现模拟登陆并上传文件操作示例
Jan 02 PHP
PHP读取文件,解决中文乱码UTF-8的方法分析
Jan 22 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
用DBSQL类加快开发MySQL数据库程序的速度
2006/10/09 PHP
浅析php变量修饰符static的使用
2013/06/28 PHP
thinkphp学习笔记之多表查询
2014/07/28 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
2016/11/05 PHP
如何实现iframe(嵌入式帧)的自适应高度
2006/07/26 Javascript
精通Javascript系列之数值计算
2011/06/07 Javascript
jQuery+css实现图片滚动效果(附源码)
2013/03/18 Javascript
js 本地预览的简单实现方法
2014/02/18 Javascript
深入理解JavaScript系列(22):S.O.L.I.D五大原则之依赖倒置原则DIP详解
2015/03/05 Javascript
12306验证码破解思路分享
2015/03/25 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
2016/11/05 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
2017/04/04 Javascript
HTML中使背景图片自适应浏览器大小实例详解
2017/04/06 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
Javascript中绑定click事件的四种方式介绍
2018/10/26 Javascript
JavaScript中工厂函数与构造函数示例详解
2019/05/06 Javascript
Javascript数组方法reduce的妙用之处分享
2019/06/10 Javascript
JavaScript实现省市区三级联动
2020/02/13 Javascript
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
django rest framework 数据的查找、过滤、排序的示例
2018/06/25 Python
详解python中的装饰器
2018/07/10 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
2019/07/28 Python
Python绘制动态水球图过程详解
2020/06/03 Python
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
经典优秀个人求职信分享
2013/12/12 职场文书
一年级班主任寄语
2014/01/19 职场文书
学习党的群众路线教育实践活动心得体会
2014/03/01 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
大学感恩节活动总结
2015/05/05 职场文书
2016春季幼儿园小班开学寄语
2015/12/03 职场文书
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
2021/03/29 Python
详解java如何集成swagger组件
2021/06/21 Java/Android
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python