【问题标题】:php preg_match expression to detect valid facebook post and video urlsphp preg_match 表达式来检测有效的 facebook 帖子和视频 url
【发布时间】:2017-05-30 02:40:45
【问题描述】:

我如何检测 a) 链接是否有效(结构上)和 b) 它是否是有效的 Facebook 照片或视频链接?寻找每种情况的正则表达式,而不是确定它是否可访问或是否有效。

示例照片链接: https://www.facebook.com/949pediatricdentistry/photos/a.1438335623065047.1073741827.1438300469735229/1866032310295374/?type=3&theater

示例视频链接: https://www.facebook.com/chevrolet/videos/10153947517247296/

我尝试了以下 preg_match() 语句,它接近于检测不同的照片 url,但没有完全通过测试:

preg_match('^(http(?:s?)?://www\.facebook\.com/(?:photo\.php\?fbid=\d+|([A-z0-9\.]+)\/photos(?:\/[0-9A-z].+)?\/(\d+)(?:.+)))?', 'https://www.facebook.com/photo.php?fbid=10201485039580806&set=a.2923144830611.2133032.1020548245&type=3&theater');

preg_match('^(http(?:s?)?://www\.facebook\.com/(?:photo\.php\?fbid=\d+|([A-z0-9\.]+)\/photos(?:\/[0-9A-z].+)?\/(\d+)(?:.+)))?', 'https://www.facebook.com/949pediatricdentistry/photos/a.1438335623065047.1073741827.1438300469735229/1866032310295374/?type=3&theater');

【问题讨论】:

  • 欢迎来到 StackOverflow!到目前为止,您尝试过什么吗? StackOverflow 不是免费的代码编写服务,希望您能try to solve your own problem first。请更新您的问题以显示您已经尝试过的内容,并在minimal, complete, and verifiable example 中展示您面临的具体问题。欲了解更多信息,请参阅how to ask good questions,并采取该网站的tour :)
  • 我不是在寻找免费的代码编写服务。我与正则表达式作斗争,这是一个复杂的问题。我很惊讶网上没有更多的解决方案,所以我认为我的问题有一些价值。寻找一个正确的解决方案是相当简单的。我更新了我的问题以显示我尝试过的 preg_match() 语句。

标签: php regex facebook


【解决方案1】:

你可以试试看主持人+脸书+视频/照片套路:

<?php
    $link = 'https://www.facebook.com/949pediatricdentistry/photos/a.1438335623065047.1073741827.1438300469735229/1866032310295374/?type=3&theater';
    $faceLink = explode('/', $link);
    if (($faceLink[2] == 'www.facebook.com' && $faceLink[3] == $username)) {
   //IS VALID
           if ($faceLink[4] == 'photos') {
             //photos routine
             } else if ($faceLink[4] == 'videos') {
               //videos routine
           }
    }
?>

在进入 Stack 之前自己尝试一下。

【讨论】:

  • 谢谢,我本来可以这样做,但是,当链接嵌入其他文本时,最好使用 preg_match() 语句。
  • 不完全是。有了一个简单模式的链接,依靠 preg_match 它是一把霰弹枪来杀死一只苍蝇。如果你能做到这一点,为什么不告诉你关于你的算法想要的限制的问题?不管怎样,没关系,不客气。
  • 谢谢,我确实写了“寻找每个案例的正则表达式”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 2013-04-05
  • 2014-06-28
  • 1970-01-01
  • 1970-01-01
  • 2020-07-18
  • 1970-01-01
相关资源
最近更新 更多