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 25 PHP
PHP5中的时间相差8小时的解决办法
Mar 28 PHP
PHP+XML 制作简单的留言本 图文教程
Nov 02 PHP
yii框架中的Url生产问题小结
Jan 16 PHP
linux系统下php安装mbstring扩展的二种方法
Jan 20 PHP
PHP中strtr字符串替换用法详解
Nov 26 PHP
php传值赋值和传地址赋值用法实例分析
Jun 20 PHP
网页的分页下标生成代码(PHP后端方法)
Feb 03 PHP
thinkPHP线上自动加载异常与修复方法实例分析
Dec 01 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
Jan 30 PHP
YII框架批量插入数据的方法
Mar 18 PHP
kindeditor 加入七牛云上传的实例讲解
Nov 12 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
解析strtr函数的效率问题
2013/06/26 PHP
php中memcache 基本操作实例
2015/05/17 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
2017/03/05 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
2019/10/02 PHP
javascript 带有滚动条的表格,标题固定,带排序功能.
2009/11/13 Javascript
EasyUI中的tree用法介绍
2011/11/01 Javascript
jQuery EasyUI API 中文文档 - DataGrid数据表格
2011/11/17 Javascript
JS去除数组重复值的五种不同方法
2013/09/06 Javascript
javascript内置对象arguments详解
2014/03/16 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
微信小程序request出现400的问题解决办法
2017/05/23 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
2018/01/18 Javascript
使用Vue实现调用接口加载页面初始数据
2019/10/28 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
typescript配置alias的详细步骤
2020/08/12 Javascript
vue路由结构可设一层方便动态添加路由操作
2020/08/31 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
在Django框架中设置语言偏好的教程
2015/07/27 Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
2018/11/29 Python
总结python中pass的作用
2019/02/27 Python
Python3视频转字符动画的实例代码
2019/08/29 Python
python中的线程threading.Thread()使用详解
2019/12/17 Python
CSS3使用transition实现的鼠标悬停淡入淡出
2015/01/09 HTML / CSS
美国最顶级的精品店之一:Hampden Clothing
2016/12/22 全球购物
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
会计专业毕业生自我鉴定
2013/10/29 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
财务审计整改报告
2014/11/06 职场文书
2015年元旦文艺晚会总结(学院)
2014/11/28 职场文书
房地产公司财务总监岗位职责
2015/04/03 职场文书
求职意向书范本
2015/05/11 职场文书
2015社区健康教育工作总结
2015/05/20 职场文书
vue里使用create, mounted调用方法
2022/04/26 Vue.js