所以我有这个网站,人们可以提交某些项目的网址,但我不知道我怎么能确认提交的网址不仅仅是一些垃圾!。
Atm我有这段代码:
if(filter_var('http://www.example.com/test.html', FILTER_VALIDATE_URL)) {
echo 'this is URL';
} else {
echo 'this is no url!';
}
但这段代码很容易绕过,因为它只检查字符串中的“http”, 用户将单独提交“主机”,因此我需要检查$ host是否是有效的主机。
提前thx!你们好棒!答案 0 :(得分:0)
如何发送HTTP请求?
function isValid($url) {
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_NOBODY, true); //make it a HEAD request
curl_exec($curl);
$statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
return $statusCode == 200;
}
var_dump(isValid('http://www.google.co.uk')); // bool(true)
var_dump(isValid('some invalid URL')); // bool(false)
答案 1 :(得分:0)
以下是解决问题的示例:
<?php
$url = "http://www.example.com/test.html";
if (preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $url)) {
echo "URL is valid";
}
else {
echo "URL is invalid";
}
?>