代码原创,需要自取。新人注册,多发帖,融入社区,也请大家多多评价。
我在论坛没有搜索到这样的文章,代码也确实是自己编写的,如有雷同纯属巧合。
大家可能遇到过这样的情况:想看人家的博客是什么程序做的,于是就直接进入人家的默认后台登录界面,看看就知道了。然而别人把后台路径一改,你是不是就没办法了呢?答案:有。
实现思路:
国内常用的博客程序有wordpress、emlog、typecho,这些程序都有一个不变的目录,比如wordpress的就是wp-include,typecho的就是usr或者vsr,emlog的就不太好找,需要多加几个目录嵌套检测就好了。
使用CURL获得状态码,if...elseif...else...疯狂检测状态码,如果不是404,就证明不变的目录存在,也就说明这个博客是基于这个程序搭建的。
至于为什么不用switch...case...是因为switch...case...在很多的if...elseif...else...语句中可以节省性能,但是这次的if语句不多,所以就不用switch去写了。
这次就不打包,直接上代码:
[PHP] 纯文本查看 复制代码 <?php
function http_status($url) {
//判断状态码的自定义函数
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_exec($ch);
$status = (int)curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return ($status == 404) ? 1 : 0;
/* return $status; */
}
$geturl = $_GET['url'];
/* $wpurl = $geturl + "wp-include/"; */
if (substr($geturl,-1) == "/"){
$wpurl = $geturl ."wp-include";
$teurl = $geturl ."usr";
$emurl = $geturl ."include/controller";
}else{
$wpurl = $geturl ."/wp-include";
$teurl = $geturl ."/usr";
$emurl = $geturl ."/include/controller";
}
if (http_status ($wpurl) == "0"){
echo 'wordpress';
}elseif (http_status ($teurl) == "0"){
echo 'typecho';
}elseif (http_status ($emurl) == "0"){
echo 'emlog';
}else{
echo 'error';
}
如有BUG或者其他的逻辑问题,请指出,新人请多多包涵 |