朋友最近有一个需求,希望别人可以通过自己网站主动申请友情链接,但是申请被提交前必须进行检测,申请方的网站中必须先添加自己网站的链接。除此之外还需要使用PHP来进行实现,所以就有了这篇文字记录。
主要的PHP代码实现如下:
<?php
$max_allow_links = 100; // 最大许可检查的链接数目
function my_file_get_contents($url, $timeout = 30) {
if (function_exists('curl_init')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
} else if (ini_get('allow_url_fopen') == 1 || strtolower(ini_get('allow_url_fopen')) == 'on') {
$file_contents = @file_get_contents($url);
} else {
$file_contents = '';
}
return $file_contents;
}
function isExistsContentUrl($url, &$retMsg, $mydomain = "") {
if (!isset($url) || empty($url)) {
$retMsg = "填写的URL为空";
return false;
}
if (!isset($mydomain) || empty($mydomain)) {
$mydomain = $_SERVER['SERVER_NAME'];
}
$resultContent = my_file_get_contents($url);
if (trim($resultContent) == '') {
$retMsg = "未获得URL相关数据,请重试!";
return false;
}
if (strripos($resultContent, $mydomain)) {
$retMsg = "检测已经通过!";
return true;
} else {
$retMsg = "请确认您已经添加本站的连接";
return false;
}
}
//调用试例
$result = "";
$ret = isExistsContentUrl("https://www.mlplus.net", $result, "wordpress.org");
if ($ret) {
echo '通过检测:' . $result;
} else {
echo "检测未通过:" . $result;
}
?>
转载请注明:清风亦平凡 » PHP实现友情链接检测