使用 PHP 从字符串中提取 URL

2022-08-30 11:35:16

我们如何使用PHP来识别字符串中的URL并将其存储在数组中?

如果 URL 包含逗号,则无法使用该函数,它不会给出正确的结果。explode


答案 1

正则表达式是您问题的答案。取对象操纵器的答案..它缺少的只是排除“逗号”,因此您可以尝试此代码来排除它们并提供3个单独的URL作为输出:

$string = "The text you want to filter goes here. http://google.com, https://www.youtube.com/watch?v=K_m7NEDMrV0,https://instagram.com/hellow/";

preg_match_all('#\bhttps?://[^,\s()<>]+(?:\([\w\d]+\)|([^,[:punct:]\s]|/))#', $string, $match);

echo "<pre>";
print_r($match[0]); 
echo "</pre>";

并且输出为

Array
(
    [0] => http://google.com
    [1] => https://www.youtube.com/watch?v=K_m7NEDMrV0
    [2] => https://instagram.com/hellow/
)

答案 2

请尝试使用下面的正则表达式

$regex = '/https?\:\/\/[^\",]+/i';
preg_match_all($regex, $string, $matches);
echo "<pre>";
print_r($matches[0]); 

希望这对你有用


推荐