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 相关文章推荐
连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
Jul 01 PHP
php 验证码制作(网树注释思想)
Jul 20 PHP
php下连接mssql2005的代码
Jan 17 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
Apr 12 PHP
php的大小写敏感问题整理
Dec 29 PHP
PHP实现数字补零功能的2个函数介绍
May 12 PHP
百度实时推送api接口应用示例
Oct 21 PHP
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
Apr 20 PHP
PHP如何实现订单的延时处理详解
Dec 30 PHP
PHP实现从上往下打印二叉树的方法
Jan 18 PHP
PHP后台实现微信小程序登录
Aug 03 PHP
利用PHP扩展Xhprof分析项目性能实践教程
Sep 05 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
77A一级收信机修理记
2021/03/02 无线电
PHP用SAX解析XML的实现代码与问题分析
2011/08/22 PHP
PHP转换IP地址到真实地址的方法详解
2013/06/09 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
2013/06/27 PHP
PHP常用函数和常见疑难问题解答
2014/03/05 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
2014/07/08 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
不能再简单的无闪刷新验证码原理很简单
2007/11/05 Javascript
jsvascript图像处理—(计算机视觉应用)图像金字塔
2013/01/15 Javascript
javascript检查浏览器是否已经启用XX功能
2015/07/10 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
2016/05/30 Javascript
AngularJs bootstrap搭载前台框架——js控制部分
2016/09/01 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
2016/09/23 Javascript
js返回顶部实例分享
2016/12/21 Javascript
javascript简单写的判断电话号码实例
2017/05/24 Javascript
微信小程序实现打开内置地图功能【附源码下载】
2017/12/07 Javascript
Vue2.0中集成UEditor富文本编辑器的方法
2018/03/03 Javascript
微信小程序中使用ECharts 异步加载数据实现图表功能
2018/07/13 Javascript
nodejs 递归拷贝、读取目录下所有文件和目录
2019/07/18 NodeJs
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
python编程实现希尔排序
2017/04/13 Python
Python中异常重试的解决方案详解
2017/05/05 Python
python得到电脑的开机时间方法
2018/10/15 Python
在Pycharm中将pyinstaller加入External Tools的方法
2019/01/16 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
Jdbc数据访问技术面试题
2012/03/30 面试题
竞聘演讲稿
2014/04/24 职场文书
三方股东合作协议书
2014/10/28 职场文书
八达岭长城导游词
2015/01/30 职场文书
市场总监岗位职责
2015/02/11 职场文书
反邪教警示教育活动总结
2015/05/09 职场文书
土木工程毕业答辩开场白
2015/05/29 职场文书
少先队中队工作总结2015
2015/07/23 职场文书
十一月早安语录:把心放轻,人生就是一朵自在的云
2019/11/04 职场文书
mysql知识点整理
2021/04/05 MySQL
简述python四种分词工具,盘点哪个更好用?
2021/04/13 Python