php 正在验证无效的网址 URL

我从API接收了一些我无法控制的数据。包括一个 Web 链接字段,其中包含无效的 url。在处理数据时,我正在尝试验证URL以查看是否应将其标记为链接。


有些链接带有http:或https: - 其他链接不是,所以我正在检查这一点,看看我是否应该添加它。


某些数据已输入为 n/a


我可以使用字符串比较手动检查这一点,但我不知道可能还有哪些其他变体。


我使用的函数如下,它检查方案,然后进行验证。这会将其评估为 http://n/a 然后进行验证。


如何检查它是否有效?


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;

}


潇潇雨雨
浏览 135回答 1
1回答

萧十郎

验证是正确的,因为 URL 的“语法”是正确的。我认为您要评估URL是否可调用。您可以使用 curl 执行此操作,并检查 HTTP 200 响应。$ch = curl_init($url);$rv = curl_exec($ch);$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);curl_close($ch);echo ($httpCode == 200) ? "yay" : "oh no!";
打开App,查看更多内容
随时随地看视频慕课网APP