我從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;}
1 回答

蕭十郎
TA貢獻1815條經驗 獲得超13個贊
驗證是正確的,因為 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!";
- 1 回答
- 0 關注
- 174 瀏覽
添加回答
舉報
0/150
提交
取消