【问题标题】:Ignore media url on PHP忽略 PHP 上的媒体 url
【发布时间】:2016-05-31 06:14:24
【问题描述】:

有什么方法可以忽略所有包含媒体的 url? 我正在使用这条线:

preg_match_all("/((?:http|https):\/\/(?:www\.)*(?:[a-zA-Z0-9_\-]{1,15}\.+[a-zA-Z0-9_]{1,}){1,}(?:[a-zA-Z0-9_\/\.\-\?\&\:\%\,\!\;]*))/", $content, $matches);

所以,我需要忽略此链接(以及所有媒体类型):

mydomain.com/content.jpg 

mydomain.com/content.gif

mydomain.com/content.svg

...

提前致谢

【问题讨论】:

    标签: php web filter web-crawler delimiter


    【解决方案1】:

    首先创建一个要跳过的项目数组,并在该数组的基础上过滤 URL,然后验证 URL 是否满足第一个条件。我希望这对你有用...

    <?php 
    $media = array("mp3", "mp4", "mov", "flv", "wmv", "avi", "png", "gif", "jpg", "bmp");
    $media_imp = implode('|', $media);
    
    $urls = array('http://www.example.com/image.jpg','http://www.example.com/hello.mp3','http://www.example.com/content.png','http://www.example.com/content.php');
    
    foreach($urls as $url)
    {
        if(!preg_match('/^.*\.('.$media_imp.')$/i', $url))
        {
           $regex ='/(?:http|https)?(?:\:\/\/)?(?:www.)?(([A-Za-z0-9-]+\.)*[A-Za-z0-9-]+\.[A-Za-z]+)(?:\/.*)?/im';
           if(preg_match($regex, $url, $matches)) 
           {
                echo "URL Without Media : ".$url;
                echo "<br>";
           } 
        }
    }
    ?>
    

    实时示例:CLICK HERE

    【讨论】:

    • 这就是我一直在寻找的。谢谢!
    • 太棒了 ;) 很高兴帮助你 ;)
    猜你喜欢
    • 2013-12-09
    • 2017-08-03
    • 2013-04-13
    • 2015-11-28
    • 2017-06-18
    • 2014-03-29
    • 2013-10-19
    • 2019-05-08
    相关资源
    最近更新 更多