在PHP中,建议的方法是匹配文本正文中的所有URL(即表单$ _POST textarea而不是单词'字符串)?
我正在寻找一种与大多数网址匹配的方法,而不是符合超级标准的全部网址。我喜欢匹配的示例:
理想情况下,结果将放入关联数组中。
我知道parse_url并不适合。而且我听说使用正则表达式充满了问题。然而,我也听说filter_var存在重大问题,其中最重要的是需要一个方案。你们都用什么技术?
谢谢
答案 0 :(得分:0)
在您的情况下,我认为针对多个正则表达式进行测试是可行的方法。
以下是一些应与www.google.com匹配的示例正则表达式:
/^google[.]com/
/^http:\/\/www[.]google[.]com/
答案 1 :(得分:0)
它会在文本中提取所有上述网址。
<?php
$string='http://www.google.com?q=1000
http://google.com?xlkd=0
www.google.com?asdfsdf=asdf
google.com?234324';
preg_match_all('#\b(?:http(?:s)?:\/\/)?(?:www\.)??[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/))#', $string, $match);
echo "<pre>";
print_r($match);
输出是:
Array
(
[0] => Array
(
[0] => http://www.google.com?q=1000
[1] => http://google.com?xlkd=0
[2] => www.google.com?asdfsdf=asdf
[3] => google.com?234324
)
[1] => Array
(
[0] => 0
[1] => 0
[2] => f
[3] => 4
)
)
希望它会有所帮助