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"
    }

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...