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制作静态网站的模板框架(四)
Oct 09 PHP
如何在PHP中使用Oracle数据库(5)
Oct 09 PHP
php 操作符与控制结构
Mar 07 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
Sep 13 PHP
PHP数组无限分级数据的层级化处理代码
Dec 29 PHP
PHP SPL使用方法和他的威力
Nov 12 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
Jul 30 PHP
PHP递归复制、移动目录的自定义函数分享
Nov 18 PHP
PHP使用mysqldump命令导出数据库
Apr 14 PHP
php实现将二维关联数组转换成字符串的方法详解
Jul 31 PHP
PHP levenshtein()函数用法讲解
Mar 08 PHP
详解Laravel框架的依赖注入功能
May 27 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
如何过滤高亮显示非法字符
2006/10/09 PHP
PHP学习笔记(一) 简单了解PHP
2014/08/04 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
2014/09/22 PHP
php实现设计模式中的单例模式详解
2014/10/11 PHP
PHP实现的比较完善的购物车类
2014/12/02 PHP
php实现通用的信用卡验证类
2015/03/24 PHP
PHP判断IP并转跳到相应城市分站的方法
2015/03/25 PHP
PHP抓取网页、解析HTML常用的方法总结
2015/07/01 PHP
php 生成签名及验证签名详解
2016/10/26 PHP
用javascript实现自定义标签
2007/05/08 Javascript
AngularJS 过滤与排序详解及实例代码
2016/09/14 Javascript
Js apply方法详解
2017/02/16 Javascript
vue实现动态数据绑定
2017/04/28 Javascript
layer实现关闭弹出层刷新父界面功能详解
2017/11/15 Javascript
JS基于递归实现网页版计算器的方法分析
2017/12/20 Javascript
react 兄弟组件如何调用对方的方法示例
2018/10/23 Javascript
vue基于better-scroll实现左右联动滑动页面
2020/06/30 Javascript
Python中的模块导入和读取键盘输入的方法
2015/10/16 Python
python之django母板页面的使用
2018/07/03 Python
python调用matlab的m自定义函数方法
2019/02/18 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
基于python3实现倒叙字符串
2020/02/18 Python
全面总结使用CSS实现水平垂直居中效果的方法
2016/03/10 HTML / CSS
详解HTML5之pushstate、popstate操作history,无刷新改变当前url
2017/03/15 HTML / CSS
Html5让容器充满屏幕高度或自适应剩余高度的布局实现
2020/05/14 HTML / CSS
what is the difference between ext2 and ext3
2013/11/03 面试题
董事长职责范文
2013/11/08 职场文书
教育学习自我评价
2014/02/03 职场文书
基层党员对照检查材料
2014/08/25 职场文书
个人自查自纠材料
2014/10/14 职场文书
2014年施工员工作总结
2014/11/18 职场文书
2014年高数考试作弊检讨书
2014/12/14 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
期中考试后的感想
2015/08/07 职场文书
深度学习tensorflow基础mnist
2021/04/14 Python
彻底理解golang中什么是nil
2021/04/29 Golang