网站建设资讯

NEWS

网站建设资讯

php正则匹配类

  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) "/upload/otherpic47/106945.jpg"
    [16]=>
    string(42) "http://donate.workerman.net/img/donate.png"
    }

新闻标题:php正则匹配类
转载来源:http://cdweb.net/article/ihjsie.html