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调用Oracle存储过程
Oct 09 PHP
使用sockets:从新闻组中获取文章(二)
Oct 09 PHP
消息持续发送的完整例子
Oct 09 PHP
PHP file_get_contents 函数超时的几种解决方法
Jul 30 PHP
关于php fread()使用技巧
Jan 22 PHP
ThinkPHP进程计数类Process用法实例详解
Sep 25 PHP
Zend Framework创建自己的动作助手详解
Mar 05 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
Nov 25 PHP
Yii框架创建cronjob定时任务的方法分析
May 23 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 PHP
PHP文件上传小程序 适合初学者学习!
May 23 PHP
php解析非标准json、非规范json的方式实例
May 10 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
德生PL450的电路分析和低放电路的改进办法
2021/03/02 无线电
PHP内核探索:变量存储与类型使用说明
2014/01/30 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
2017/02/15 PHP
php实例化一个类的具体方法
2019/09/19 PHP
JS中处理与当前时间间隔的函数代码
2012/05/23 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
学习javascript的闭包,原型,和匿名函数之旅
2015/10/18 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
2016/05/18 Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
2016/06/14 Javascript
详解Vue如何支持JSX语法
2017/11/10 Javascript
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
JQuery发送ajax请求时中文乱码问题解决
2019/11/14 jQuery
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
python获取文件路径、文件名、后缀名的实例
2018/04/23 Python
python 文件查找及内容匹配方法
2018/10/25 Python
Flask核心机制之上下文源码剖析
2018/12/25 Python
浅析Python 责任链设计模式
2020/09/11 Python
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
意大利宠物用品购物网站:Bauzaar
2018/09/15 全球购物
思想政治教育专业个人求职信范文
2013/12/20 职场文书
在校大学生的职业生涯规划书
2014/03/14 职场文书
青年文明号口号
2014/06/17 职场文书
中学生的1000字检讨书
2014/10/11 职场文书
2014最新预备党员思想汇报范文:中国梦,我的梦
2014/10/25 职场文书
大学生实训报告总结
2014/11/05 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
2014年维稳工作总结
2014/11/18 职场文书
2015年班级工作总结范文
2015/04/03 职场文书
《曹冲称象》教学反思
2016/02/20 职场文书
提升Nginx性能的一些建议
2021/03/31 Servers
Android在Sqlite3中的应用及多线程使用数据库的建议
2022/04/24 Java/Android
解决vue自定义组件@click点击失效问题
2022/04/30 Vue.js