我有一个txt文件,我想在数组中保存从http://开始的所有网址,并以.png或.jpg或.jpeg结尾。我怎么能这样做?
我可以使用它吗?
<?php
function getUrls($string)
{
$regex = '/https?\:\/\/[^\" ]+/i';
preg_match_all($regex, $string, $matches);
return ($matches[0]);
}
$urls = getUrls($string);
foreach($urls as $url)
{
echo $url.'<br />';
}
?>
这是对的吗?
答案 0 :(得分:0)
您展示的功能无效,因为正则表达式中没有指定.png
,.jpg
或.jpeg
。它也只会返回第一场比赛:$matches[0]
。此外,它需要/g
标志才能在同一个字符串中找到多个实例(/i
只是忽略大小写)。
请改为尝试:
<?php
function getUrls($string)
{
// \w is any word character
$regex = '/https?\:\/\/[\w]+\.(jpg|png|jpeg)/ig';
preg_match_all($regex, $string, $matches);
return ($matches);
}
$urls = getUrls($string);
foreach($urls as $url)
{
echo $url.'<br />';
}
?>