我已经搜索了我们的SO问题,但找到的解决方案是基于调用从使用ping函数执行的system命令。
我的网络主机服务器不允许我这样做。我该怎么办?
求你帮帮我,南。
备注
我需要从client/web-browser那边查一下。
发布于 2011-04-27 08:18:14
由于无法使用ajax加载外部网页以检查页面是否响应,因此可以执行以下操作:
检查url字符串是否有效。
javascript:
编辑了更多的宽恕。由于javascript不支持没有任何第三方库的unicode字符匹配,所以我选择了以下方法:
function Validate(url){
var pattern = /(https?:\/\/)?.+\.[a-z]{2,4}/i
return pattern.test(url);
}
alert(Validate("http://abcü好le2.com/?query=test&test=1")); //true
alert(Validate("https://hurmårdu.se/blog/?test=1")); //true
alert(Validate("abcü好le2.com/?query=test&test=1")); //true
alert(Validate("hurmårduse/blog/?test=1")); //false
alert(Validate("hurmårduse")); //false注意:为了使这个函数更好,我们可以在字符串的开头添加对http://的支持,如果它不包含它。另外,如果您对unicode regexp感兴趣:http://xregexp.com/plugins/
如果
。
php:
$url = $_POST["url"];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
if(strlen($output)){
return json_encode(array("is_valid" => true, "value" => $url));
}else{
return json_encode(array("is_valid" => false, "value" => $url));
}注意:从ajax请求发送的数据的代码需要卫生。
发布于 2011-04-27 08:02:40
主机允许使用curl或socket()函数吗?或者使用fopen命令执行远程包含?这可能比使用system("ping")命令要好得多。
发布于 2011-04-27 08:03:14
一个简单的签入php应该是
if(strlen(file_get_contents('http://google.com')){ // do something }客户端可能很棘手,因为大多数浏览器都不允许跨端脚本。
或者,如果安装了php-curl,也可以使用php-curl。
https://stackoverflow.com/questions/5801034
复制相似问题