PHP从数组中删除非URL

时间:2016-10-24 19:19:00

标签: php arrays filter

我正在使用PHP中的regex从网站上抓取一个网址列表,并使用以下代码清理结果。

// Echo each found result
foreach ($matches as $val) {
    $results[] = GetStringBetween($val[1], "http://", "&");
}

$results = array_unique($results);
$results = array_filter($results);

然而问题是它会产生一些不需要的结果,如:

ed_search?q=product

有没有办法过滤并保留数组中的有效网址?

我需要以www。,http:,https:

开头的网址

2 个答案:

答案 0 :(得分:0)

$url = "xxxxx";

if( filter_var($url, FILTER_VALIDATE_URL)  !== FALSE )
{
    // validated as an url
}

http://php.net/manual/en/filter.filters.validate.php

答案 1 :(得分:0)

$urls = array_filter($urls, function ($url) {
    return filter_var($url, FILTER_VALIDATE_URL);
});