设为首页 收藏本站 订阅本站

blogger

PHP自动挂链函数

cache 发布于 技术文档 2013-06-08 [ 3289 ] 次浏览 [ 0 ] 条评论

标签: 挂链

PHP 自动挂链函数。

此函数可直接用于批量挂链接,方便站群用户管理多个友情链接。

使用此代码需设置远程链接输出服务端。远程服务端不再本文内容所述中。

注意:此代码仅供参考,如应用到实际中需要少量更改。

此代码中部分标记需做处理,否则容易被搜索引擎识别为友情链接出售,从而受到打击。

使用本代码出现任何问题可联系本博主解决,联系方式在本站下方也可直接邮件 [email protected]

本代码参考多家友情链接平台自动挂链技术精简出来的。

附本代码如下:

<?php
function cacheExecute(){

//在此设置网站静态首页的文件名,默认为:"index.html"
    $IndexFileName = dirname(__FILE__) . "index.html";
	$TempFileName = "";
	$TempName = dirname(__FILE__) . "/" . $TempFileName;
//在此设置网站静态首页的编码方式,默认为:"gb2312",请正确设置不然会导致乱码
    $IndexFileEncoding = "UTF-8";

    if(!file_exists($IndexFileName)){
        echo "no_index_file";
	}
    else{
		$out = cache_output(); 
		if(@out!=""){
			$html = file_get_contents($IndexFileName);
			$tmp = split('<!--cache code start', $html);
			$tmp = split('<!--cache code end-->', $tmp[1]);
			$str = "<!--cache code start$tmp[0]<!--cache code end-->";
			if($str != $out){
				$html = str_replace($str, $out, $html);
				cache_file_put_contents($IndexFileName, $html);
			}
			echo "cache";
			
			
			if($TempFileName!=""){
				if(file_exists($TempName)){
					$html = file_get_contents($TempName);
					$tmp = split('<!--cache code start', $html);
					$tmp = split('<!--cache code end-->', $tmp[1]);
					$str = "<!--cache code start$tmp[0]<!--cache code end-->";
					if($str != $out){
						$html = str_replace($str, $out, $html);
						cache_file_put_contents($TempName, $html);
					}
				}
			}
		}
		else{
			echo "no_data";
		}		
	}
}

function cache_file_put_contents($filename, $data){
    if (!function_exists('file_put_contents')) {
        $f = @fopen($filename, 'w');
        if (!$f) {
            return false;
        } else {
            $bytes = fwrite($f, $data);
            fclose($f);
            return $bytes;
        }
    }
	else{
     	return file_put_contents($filename, $data);
    }
}

function cache_ad_helper($url)
{
  $content = '';
  $done=false;
  if (ini_get('allow_url_fopen') == '1') {
    if ($fp = @fopen($url, 'r')) {
      while ($line = @fread($fp, 1024)) {
        $content .= $line;
	$done=true;
      }
    }
  }
  if (!$done) {
    // get the host name and url path
    $parsedUrl = parse_url($url);
    $host = $parsedUrl['host'];
    if (isset($parsedUrl['path'])) {
      $path = $parsedUrl['path'];
    }
    
    $timeout = 10;
    // connect to the remote server 
    $fp = @fsockopen($host, '80', $errno, $errstr, $timeout ); 
    
    if( !$fp ) { 
      // echo "Cannot retrieve $url";
    } else {
      // send the necessary headers to get the file 
      @fputs($fp, "GET $path HTTP/1.0\r\n" .
	    "Host: $host\r\n\r\n"); 
      
      // retrieve the response from the remote server 
      while ( $line = @fread( $fp, 4096 ) ) { 
        $content .= $line;
      }       
      @fclose( $fp );      
      // strip the headers
      $pos      = strpos($content, "\r\n\r\n");
      $content = substr($content, $pos + 4);
    }
  }
  $content=str_replace("Bad Request (Invalid Hostname)","",$content);
  $content=str_replace("Service Unavailable","",$content);
  if (!preg_match('/\<Error/',$content)) {
    return $content;
  }      
  // return the file content 
  return $content;
}

function cache_output(){
    $url = "http://www.23to.com";
    return urldecode(cache_ad_helper($url));//如果出现乱码,请换成这个:return iconv("UTF-8",$IndexFileEncoding,urldecode(cache_ad_helper($url)));
}

cacheExecute();
?>

 

 

PHP自动挂链函数:等您坐沙发呢!

发表评论