【问题标题】:What regexp do I need to find a string in PHP?我需要什么正则表达式才能在 PHP 中查找字符串?
【发布时间】:2019-03-07 15:17:43
【问题描述】:

我正在寻找字符串:

sd_src:"https://video.fhyd6-1.fna.fbcdn.net/v/t42.9040-2/10000000_2379299605422668_4104252399957311488_n.mp4?_nc_cat=1&efg=eyJybHIiOjY0OCwicmxhIjoyODQ5LCJ2ZW5jb2RlX3RhZyI6InN2ZV9zZCJ9&rl=648&vabr=360&_nc_ht=video.fhyd6-1.fna&oh=2f555df6a07d18aa1f472d972dab0114&oe=5C80FCA5

在链接https://www.facebook.com/PeinadosFacilesRapido/videos/399225660865821/ 的源代码中并在 PHP 中打印。

看看代码你就明白了:

<?php
$sourceurl = file_get_contents('https://www.facebook.com/PeinadosFacilesRapido/videos/399225660865821/');
preg_match('REGEXP', $sourceurl, $link);
echo $link;
?>

在$sourceurl的源码中找到这个字符串的正则表达式是什么?

【问题讨论】:

  • 读者通常很乐意提供帮助。然而,他们通常会期望事先尝试包含在问题中。如果您还没有这样做,请这样做,并将其编辑到帖子中。

标签: php regex preg-match file-get-contents


【解决方案1】:

你可以使用:

preg_match('~'.preg_quote($string, '~').'~i', $sourceurl, $link);

【讨论】:

    【解决方案2】:

    在您的示例中,您的链接不需要通过正则表达式找到。

    你可以这样做:

    $sourceurl = file_get_contents('https://www.facebook.com/PeinadosFacilesRapido/videos/399225660865821/');
    
    if ( stripos($sourceurl, $link))
    {
    
        // do something
    }
    

    【讨论】:

    • $link 是 OP 试图在 HTML 中找到的内容。
    【解决方案3】:

    最可靠的方法是使用 HTML 解析器,但这应该可以:

    <?php
        $sourceurl = file_get_contents('https://www.facebook.com/PeinadosFacilesRapido/videos/399225660865821/');
    
        preg_match('/sd_src:"(.*?)"/s', $sourceurl, $linkArray);
    
        $link = $linkArray[1];
    
        echo $link;
    

    【讨论】:

    • 您好!感谢您的回答,但它引发了我刚刚在屏幕截图 url (prntscr.com/munqx0) 中提到的一些错误,我尝试删除 '[1]' 但它也不起作用。
    • 您好,我有一个问题想问您有关在 PHP 中查找 REG EXP 的问题。看看这个问题stackoverflow.com/questions/55059224/…,帮我找到REG EX。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2023-01-10
    • 2012-10-31
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    • 1970-01-01
    相关资源
    最近更新 更多