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+DBM的同学录程序(4)
Oct 09 PHP
PHP 一个比较完善的简单文件上传
Mar 25 PHP
php压缩多个CSS为一个css的代码并缓存
Apr 21 PHP
深入php函数file_get_contents超时处理的方法详解
Jun 03 PHP
php生成静态页面的简单示例
Apr 17 PHP
PHP利用header跳转失效的解决方法
Oct 24 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
Oct 30 PHP
使用XHGui来测试PHP性能的教程
Jul 03 PHP
php精确的统计在线人数的方法
Oct 21 PHP
功能强大的PHP发邮件类
Aug 29 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
Aug 12 PHP
基于php解决json_encode中文UNICODE转码问题
Nov 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
用PHP中的 == 运算符进行字符串比较
2006/11/26 PHP
php使用mysqli向数据库添加数据的方法
2015/03/20 PHP
深入php内核之php in array
2015/11/10 PHP
php 生成加密公钥加密私钥实例详解
2017/06/16 PHP
元素的内联事件处理函数的特殊作用域在各浏览器中存在差异
2011/01/12 Javascript
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
2013/01/11 Javascript
javascript 三种方法实现获得和设置以及移除元素属性
2013/03/20 Javascript
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
jQuery CSS()方法改变现有的CSS样式
2014/08/20 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
2015/10/19 Javascript
jQuery使用模式窗口实现在主页面和子页面中互相传值的方法
2016/03/01 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
Vue.js 2.0 移动端拍照压缩图片预览及上传实例
2017/04/27 Javascript
详解JS获取HTML DOM元素的8种方法
2017/06/17 Javascript
微信小程序sessionid不一致问题解决
2019/08/30 Javascript
初学Python函数的笔记整理
2015/04/07 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
python3+PyQt5 数据库编程--增删改实例
2019/06/17 Python
简单了解Python matplotlib线的属性
2019/06/29 Python
python使用Pandas库提升项目的运行速度过程详解
2019/07/12 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
2019/09/18 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
Python 音频生成器的实现示例
2019/12/24 Python
简单了解python字符串前面加r,u的含义
2019/12/26 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
Python 去除字符串中指定字符串
2020/03/05 Python
计算机应届毕业生自荐信范文
2014/02/23 职场文书
银行行长竞聘演讲稿
2014/04/23 职场文书
赢在中国观后感
2015/06/02 职场文书
勇敢的心观后感
2015/06/09 职场文书
Python基础之操作MySQL数据库
2021/05/06 Python
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server
redis复制有可能碰到的问题汇总
2022/04/03 Redis