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文件读写操作之文件读取方法详解
Jan 13 PHP
PHP 图片上传代码
Sep 13 PHP
php class中public,private,protected的区别以及实例分析
Jun 18 PHP
php使用mb_check_encoding检查字符串在指定的编码里是否有效
Nov 07 PHP
PHP 字符串长度判断效率更高的方法
Mar 02 PHP
php实现window平台的checkdnsrr函数
May 27 PHP
php实现在多维数组中查找特定value的方法
Jul 29 PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
Jan 27 PHP
Smarty模板语法详解
Jul 20 PHP
Windows服务器中PHP如何安装redis扩展
Sep 27 PHP
基于thinkphp6.0的success、error实现方法
Nov 05 PHP
Laravel框架控制器,视图及模型操作图文详解
Dec 04 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
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
Gambit vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
JS重要知识点小结
2011/11/06 Javascript
jquery获得页面元素的坐标值实现思路及代码
2013/04/15 Javascript
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
关于JS中的闭包浅谈
2013/08/23 Javascript
Js冒泡事件详解及阻止示例
2014/03/21 Javascript
iframe子页面与父页面在同域或不同域下的js通信
2014/05/07 Javascript
如何让你的Lightbox支持滚轮缩放及Base64图片
2014/12/04 Javascript
jquery隔行换色效果实现方法
2015/01/15 Javascript
JS+CSS相对定位实现的下拉菜单
2015/10/06 Javascript
JavaScript必知必会(三) String .的方法来自何方
2016/06/08 Javascript
Angular.js自定义指令学习笔记实例
2017/02/24 Javascript
React组件生命周期详解
2017/07/03 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
原生JS+HTML5实现的可调节写字板功能示例
2018/08/30 Javascript
python简单实现旋转图片的方法
2015/05/30 Python
Python实现栈和队列的简单操作方法示例
2019/11/29 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
string = null 和string = ''的区别
2013/04/28 面试题
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
村捐赠仪式答谢词
2014/01/21 职场文书
品牌宣传方案
2014/03/21 职场文书
元宵节主持词
2014/03/25 职场文书
大学毕业生推荐信
2014/07/09 职场文书
就业协议书样本
2014/08/20 职场文书
处级干部反四风个人对照检查材料思想汇报
2014/09/27 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
中学生检讨书1000字
2014/10/28 职场文书
2015年实习班主任工作总结
2015/04/23 职场文书
2015年公司行政后勤工作总结
2015/05/20 职场文书
民政局2016年“六一”儿童节慰问活动总结
2016/04/06 职场文书