A-A+

【应用】制作收集其他网站VPS价格列表以及stock状态查询页面

2014年03月17日 应用 暂无评论 阅读 3,166 views 次

原文来自hostloc的nswdhy,思路很好,记之!

 

技术:php curl函数

 

原理:根据访问页面的http状态码进行相关判断

whmcs的order页的url形式一般都是http://xxxx.xxx.xx/cart.php?a=add&pid=n

可以购买的情况下,一般都会有302跳转,out of stock则返回200不跳转

有了这个就好办了,大神们基本可以根据这个思路去做更高级的事情了

 

代码:

function get_info($url,$options = array()){
$options[CURLOPT_RETURNTRANSFER] = true;
$options[CURLOPT_NOBODY] = true;
$options[CURLOPT_SSL_VERIFYPEER] = false;
$options[CURLOPT_SSL_VERIFYHOST] = true;
$options[CURLOPT_TIMEOUT] = 10;
$ch = curl_init($url);
curl_setopt_array($ch,$options);
curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
return $info['http_code'];
}

 

这个函数返回所查询的url的http状态码:200、301、302、404等等

要查询单个url,直接使用get_info('http://xxx.xxx.xxx')

 

批量查询,可以用一个数组

$urllist = array(
"http://xxxx.xxx1.xx",
"http://xxxx.xxx2.xx",
"http://xxxx.xxx3.xx"
)

 

然后操作这个数组即可

get_info($urllist[0]);
get_info($urllist[1]);
get_info($urllist[2]);

 

 

核心代码就这么多,下面是一般的判断,可以这样写:

if(get_info($urllist[0]) == 200){echo "<em>Out of stock</em>";}else{echo "<a href='".$urllist[0]."' target='_blank' rel='nofollow'>Order Now</a>";}

 

这是比较偷懒的做法,只考虑了200状态,其他404、500等都没有考虑,可以进一步优化代码。

查询的部分就这么多,可以做一些简单的查询,大神可以进一步优化代码,做异步。

前端:
要查的链接不多的话,就直接写在html代码里。也可以写个输入程序调用。我的那个用的wordpress添加的数据,这样一来,可以进一步加主机商的介绍、评测等等。

样式:
表格排序用的tablesorter插件,请自行百度。

自动查询:
在前端服务器上设置个定时任务

*/15 * * * * cd /前端目录&&wget -N http://后端url

这个*/15表示的是每15分钟wget一次,定时任务请自行百度crontab

标签:

给我留言