php正则匹配类
admin
2023-06-13 12:23:43
0
  1. 代码:
    /**
    * @desc:正则匹配类
    * @author [Lee] <[]>
    * @method
    * 1、geturl         获取所有超链接
    * 2、getimg         获取所有图片
    * 3、getaudio           获取所有音频文件
    * 4、getvideo           获取所有视频文件
    * 5、getparagraph       获取所有段落
    * 6、getuser            获取自定义内容         preg 自定义正则,如:/

    (.*)

    /Ui */ class match{ private $content = ''; /* @desc:构造方法,初始化待匹配文本 */ public function __construct($content){ $this->content = $content; } /* @desc:获取所有超链接 @return:所有匹配的超链接 */ public function geturl(){ $content = $this->content; $preg = '/<[a|A].*?href=[\'\"]{0,1}([^>\'\"\ ]*).*?>/i'; $bool = preg_match_all($preg,$content,$res); $urls = array(); if($bool){ $urls = $res[1]; } return array_unique($urls); } /* @desc:获取所有图片 @return:所有匹配的图片 */ public function getimg(){ $content = $this->content; $preg="/(src)=(\\\?)([\"|']?)([^ \"'>]+\.(gif|jpg|jpeg|bmp|png|svg))\\2\\3/i"; $bool = preg_match_all($preg,$content,$res); $imgs = array(); if($bool){ $imgs = $res[4]; } return array_unique($imgs); } /* @desc:获取所有音频文件 @return:所有匹配的音频文件 */ public function getaudio(){ $content = $this->content; $preg="/(src)=(\\\?)([\"|']?)([^ \"'>]+\.(mp3|wav|wma|ogg|ape|acc))\\2\\3/i"; $bool = preg_match_all($preg,$content,$res); $audios = array(); if($bool){ $audios = $res[4]; } return array_unique($audios); } /* @desc:获取所有视频文件 @return:所有匹配的视频文件 */ public function getvideo(){ $content = $this->content; $preg="/(src)=(\\\?)([\"|']?)([^ \"'>]+\.(swf|flv|mp4|rmvb|avi|mpeg|ra|ram|mov|wmv)((\?[^ \"'>]+)?))\\2\\3/i"; $bool = preg_match_all($preg,$content,$res); $videos = array(); if($bool){ $videos = $res[4]; } return array_unique($videos); } /* @desc:获取所有段落文本 @return:所有匹配的段落文本 */ public function getparagraph(){ $content = $this->content; $preg="/

    (.*)<\/p>/Ui"; $bool = preg_match_all($preg,$content,$res); $paragraphs = array(); if($bool){ $paragraphs = $res[1]; } return array_unique($paragraphs); } /* @desc:获取所有自定义内容 @return:所有匹配的自定义内容 */ public function getuser($preg){ $content = $this->content; $bool = preg_match_all($preg,$content,$res); $users = array(); if($bool){ $users = $res[1]; } return array_unique($users); } }

  2. 测试:
    $match = new match($str);
    $ret = $match->getimg();
    var_dump($ret);
  3. 输出:
    array(7) {
    [0]=>
    string(61) "https://assets-cdn.github.com/images/search-shortcut-hint.svg"
    [1]=>
    string(69) "https://assets-cdn.github.com/images/spinners/octocat-spinner-128.gif"
    [2]=>
    string(75) "https://assets-cdn.github.com/images/spinners/octocat-spinner-32-EAF2F5.gif"
    [3]=>
    string(68) "https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif"
    [14]=>
    string(45) "https://badges.gitter.im/walkor/Workerman.svg"
    [15]=>
    string(48) "https://cache.yisu.com/upload/information/20200310/52/106945.jpg"
    [16]=>
    string(42) "http://donate.workerman.net/img/donate.png"
    }

相关内容

热门资讯

鲁比奥紧急安抚,但“若美国对华... 【文/观察者网 王一】当地时间5月26日,美国国务卿鲁比奥将结束为期4天的访印行程。从与印度总理莫迪...
打响“河南服务”品牌丨用江湖情... 2025年,开封万岁山武侠城全年综合营收达12.7亿元,接待游客2452.2万人次,营收3年间增长1...
凡星闪耀丨一个人的光影山路 —... “放电影去?”“对,今天去王家辿。”5月13日傍晚,李全民开着汽油三轮车,刚拐进鹤壁市鹤山区姬家山乡...
今年我国养老机器人市场规模将破... 今天(26日),中国软件评测中心发布了《智能养老服务机器人产业演进与未来趋势研究》报告。报告显示,我...
中国之城|河南安阳:如切如削的... 新华社郑州5月25日电 题:河南安阳:如切如削的山前之城当你站在河南安阳的林州太行阁前,会瞬间秒懂“...
中信建投:海外AI行业核心投资... 人民财讯5月26日电,中信建投证券研报称,海外AI行业核心投资逻辑呈现两条主线:在硬件与基础设施端,...
中华人民共和国和塞尔维亚共和国... 新华社北京5月25日电中华人民共和国和塞尔维亚共和国关于持续推进构建新时代中塞命运共同体的联合声明应...
原创 “... 长沙晚报掌上长沙5月25日讯(全媒体记者 周斌 通讯员 熊奇欢 周秋燕)24日,搭载神舟二十三号载人...
大模型公司门口,挤满了送钱的投... 文 | 白鲸实验室 今年大模型公司最大的变数之一,是DeepSeek也开始下场融资。这意味着,即使...
安克创新:具身智能相关研发正按... 上证报中国证券网讯(记者 夏子航)在5月24日披露的投资者关系活动记录表中,安克创新表示,公司在具身...