php正在验证无效的url
我正在接收来自API fo的一些数据,但我无法控制这些数据。包含一个weblink字段,其中包含无效的URL。 在处理数据时,我尝试验证url,以查看是否应将其标记为链接 有些链接是通过http:或https:-来实现的,有些则不是,所以我正在检查这一点,看看是否应该添加它 某些数据已输入为不适用 我可以通过字符串比较手动检查这一点,但我不知道还有什么其他变体 下面是我正在使用的函数,它检查方案,然后进行验证。这将对其进行评估,然后进行验证 我如何检查它是否有效php正在验证无效的url,php,Php,我正在接收来自API fo的一些数据,但我无法控制这些数据。包含一个weblink字段,其中包含无效的URL。 在处理数据时,我尝试验证url,以查看是否应将其标记为链接 有些链接是通过http:或https:-来实现的,有些则不是,所以我正在检查这一点,看看是否应该添加它 某些数据已输入为不适用 我可以通过字符串比较手动检查这一点,但我不知道还有什么其他变体 下面是我正在使用的函数,它检查方案,然后进行验证。这将对其进行评估,然后进行验证 我如何检查它是否有效 function GetUrl(
function GetUrl($url, $ReturnBlankIfInvalid = false)
{
if ($ret = parse_url($url))
{
if ( !isset($ret["scheme"]) )
{
$url = "http://{$url}";
}
}
if ($ReturnBlankIfInvalid)
{
if (filter_var($url, FILTER_VALIDATE_URL) === FALSE)
$url = "";
}
return $url;
}
验证是正确的,因为URL的“语法”是正确的 我认为您需要评估URL是否可调用。您可以使用curl并检查HTTP 200响应来完成此操作
$ch=curl\u init($url);
$rv=旋度执行($ch);
$httpCode=curl\u getinfo($ch,CURLINFO\u HTTP\u代码);
卷曲关闭($ch);
echo($httpCode==200)?“耶”:“哦,不!”;
步骤1:定义“有效”。如果我想在我的机器上设置一个名为n
的虚拟主机,那么http://n/a
将是一个有效的URL。公平点-但您可以看到我的问题…您可以使用一些标志来验证它是否具有方案或类似内容,但老实说,我建议您使用类似于使用解析URL的方法(
)然后检查结果是否具有scheme
属性,以及主机是否至少包含一个
,等等。