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与SQL注入攻击防范小技巧
Sep 16 PHP
ajax在joomla中的原生态应用代码
Jul 19 PHP
ThinkPHP关联模型操作实例分析
Sep 23 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
Jun 13 PHP
深入解析PHP中的(伪)多线程与多进程
Jul 01 PHP
php 强制下载文件实现代码
Oct 28 PHP
php实现快速排序的三种方法分享
Mar 12 PHP
PHP编译安装时常见错误解决办法
May 28 PHP
php类常量用法实例分析
Jul 09 PHP
php实现贪吃蛇小游戏
Jul 26 PHP
深入讲解PHP的对象注入(Object Injection)
Mar 01 PHP
PHP7新增函数
Mar 09 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
PHP 表单提交给自己
2008/07/24 PHP
MySql数据库查询结果用表格输出PHP代码示例
2015/03/20 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
php中使用GD库做验证码
2016/03/31 PHP
php中上传文件的的解决方案
2018/09/25 PHP
网页禁用右键实现代码(JavaScript代码)
2009/10/29 Javascript
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
2014/02/19 Javascript
基于AngularJS前端云组件最佳实践
2016/10/20 Javascript
Angularjs中ng-repeat-start与ng-repeat-end的用法实例介绍
2016/12/31 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
JavaScript中构造函数与原型链之间的关系详解
2019/02/25 Javascript
vue路由跳转传参数的方法
2019/05/06 Javascript
vue 中 命名视图的用法实例详解
2019/08/14 Javascript
VUE路由动态加载实例代码讲解
2019/08/26 Javascript
vue 解决数组赋值无法渲染在页面的问题
2019/10/28 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
原生js实现简单轮播图
2020/10/26 Javascript
JavaScript实现页面高亮操作提示和蒙板
2021/01/04 Javascript
黑科技 Python脚本帮你找出微信上删除你好友的人
2016/01/07 Python
Python实现爬取需要登录的网站完整示例
2017/08/19 Python
python如何使用unittest测试接口
2018/04/04 Python
python+pyqt5实现KFC点餐收银系统
2019/01/24 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
2019/01/29 Python
Python基础之字符串常见操作经典实例详解
2020/02/26 Python
python cv2.resize函数high和width注意事项说明
2020/07/05 Python
电子商务专业个人的自我评价
2013/11/19 职场文书
播音主持专业个人自我评价
2014/01/09 职场文书
运动会广播稿30字
2014/01/21 职场文书
企业职业病防治方案
2014/05/29 职场文书
2015年节能降耗工作总结
2015/05/22 职场文书
党员证明模板
2015/06/19 职场文书
消费者投诉书范文
2015/07/02 职场文书
祝福语集锦:给百岁老人祝寿贺词
2019/11/19 职场文书