ホームページ > バックエンド開発 > PHPチュートリアル > PHP スパイダー統計プラグインは、mysql_PHP チュートリアルがあれば使用できます。

PHP スパイダー統計プラグインは、mysql_PHP チュートリアルがあれば使用できます。

WBOY
リリース: 2016-07-21 15:33:54
オリジナル
2884 人が閲覧しました

ということで、昨日は本格的にやってみました。機能が増えて、さまざまな検索エンジンで統計分析ができるようになりました。複数の期間にわたって表示できます。実際、コードは非常に単純です。より簡潔にするために、コードは 6k に圧縮され、6 つのファイルに分割されています
1. インストーラー spilder_install.php

コードをコピーします コードは次のとおりです。




プラグインのインストール
if($_POST['act']=='install')//
をインストールする場合$mysql_host=trim($_POST['mysql_host']);//ホストを取得
$mysql_user=trim($_POST['mysql_user']);//ユーザー名を取得
$mysql_pwd=trim($_POST[' mysql_pwd' ]);//パスワードを取得します
$mysql_db=trim($_POST['mysql_db']);//データベース
$table_prefix=trim($_POST['table_prefix']);//プレフィックスを取得します
if ($link= mysql_connect($mysql_host,$mysql_user,$mysql_pwd))
{
echo "サーバーに正常に接続しました! ......

}
else
; {
echo "<script>alert('リンク エラー! データベース サーバーの構成を確認してください!');history.go(-1);</script>"
}
if(mysql_select_db($mysql_db,$) link) )
{
echo "データベースに正常に接続しました!......
テーブルを作成しています...
"
}
$sql="CREATE TABLE ` spilder_sp_count` (
`id` bigint(20) NOT NULL auto_increment、
`r_time` int(11) NOT NULL、
`r_name` varchar(50) NOT NULL、
`r_url` varchar(200) NOT NULL、
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gb2312 AUTO_INCREMENT=4 ;
";
mysql_query("DROP TABLE IF EXISTS `".$table_prefix."sp_count `;");//既存の
$sql を削除=str_replace("spilder_",$table_prefix,$sql);//プレフィックスを置換します
if(mysql_query($sql))
{
echo "テーブルが正常に作成されました! file";
}
$f=file_get_contents("spilder_config.php");//設定内容を取得
$f=str_replace(" ","",$f);//スペースを削除
$f= preg_replace( "/mysql_host=.*;/iUs","mysql_host='{$mysql_host}';",$f);
$f=preg_replace("/mysql_user=.*;/iUs","mysql_user=' {$ mysql_user}';",$f);
$f=preg_replace("/mysql_pwd=.*;/iUs","mysql_pwd='{$mysql_pwd}';",$f);
$f=preg_replace (" /mysql_db=.*;/iUs","mysql_db='{$mysql_db}';",$f);
$f=preg_replace("/table_prefix=.*;/iUs","table_prefix='{ $table_prefix }';",$f);
$f=preg_replace("/sp_admin=.*;/iUs","sp_admin='{$sp_admin}';",$f);
file_put_contents("spilder_config.php" ,$f);
file_put_contents("isinstall.txt","OK");
echo "おめでとうございます! Jianli スパイダー統計プログラムは正常にインストールされましたView";
exit();
}
?>





Jianli Spider 統計ビューア

<フォームメソッド="ポスト"><テーブル幅="600"ボーダー="0"> td; > インストールを開始

(通常は変更する必要はありません)

ユーザー名:
パスワード:
データベース: ;
プレフィックス:




パスワードの管理 :

">




2. Spiderレコードファイル
コードをコピーします コードは次のとおりです:

require("spilder_config.php");//設定ファイルの呼び出し
$link=mysql_connect( $mysql_host,$mysql_user ,$mysql_pwd) または die("サーバー接続エラー");// データベースをリンクします
mysql_select_db($mysql_db,$link) または die('データベース接続エラー');
$searchbot = get_naps_bot();
if($searchbot )
{
date_default_timezone_set('PRC'); //デフォルトのタイムゾーンを設定します
$r_time=strtotime(date("Y-m-d H:i:s"));//最終更新時刻
$ServerName = $_SERVER["SERVER_NAME" ] ;
$ServerPort = $_SERVER["SCRIPT_NAME"] ;
$QueryString = $_SERVER["QUERY_STRING"] ; http://".$ ServerName ;
If ($ServerPort != "80")
{
$url = $url.":".$ServerPort ;
}
$url=$url.$ScriptName ;
If ($QueryString !="" )
{
$url=$url."?".$QueryString
}
//$url="http://".$_SERVER['HTTP_HOST'].$_SERVER[ 'REQUEST_URI'];
$ GLOBALS['db']->db_query("{$table_prefix}sp_count(r_time,r_name,r_url) 値('$r_time','$searchbot','$url') に挿入");
}
function get_naps_bot()
{
$useragent = strto lower($_SERVER['HTTP_USER_AGENT']);
if (strpos($useragent, 'googlebot') !== false){
return 'Googlebot' ;
}elseif (strpos( $useragent, 'msnbot') !== false){
return 'MSNbot';
}elseif (strpos($useragent, 'slurp') !== false){
return 'Yahoobot' ;
}elseif (strpos( $useragent, 'baiduspider') !== false){
return 'Baiduspider';
}elseif (strpos($useragent, 'sogou') !== false){
return 'Sogoubot' ;
}elseif (strpos( $useragent,'soso') !== false){
return 'ソソボット';
}elseif(strpos($useragent,'youdao')!==false)
{ 'youdao' ';
}
else
{
return false;
}
?>


3. コードをコピーします

コードは次のとおりです:

session_start();
require("spilder_config.php");
if($_GET['act']=='logout')
{
$_SESSION['ss_sp_admin']='' ;//クリア
}
if($_GET['sp_admin_login'])
{
if($_GET['sp_admin_login']==$sp_admin)
{
$_SESSION['ss_sp_admin']=$sp_admin
}
}
date_default_timezone_set('PRC'); //デフォルトのタイムゾーンを設定します
$day_start=strtotime(date("Ymd")."000001");//その日の開始時刻
$day_out=strtotime(date( "Ymd" )."235959");//一日の終わり
$day=3600*24;//一日の時間
$link=mysql_connect($mysql_host,$mysql_user,$mysql_pwd) or die( "サーバー接続エラー") ;
mysql_select_db($mysql_db,$link) または die('データベースへの接続エラー');//データベースに接続します
if($_GET['act']=='del')
{
if($_SESSION['ss_sp_admin ']<>'')
{
if($_GET['dt']==0)//Clear
{
mysql_query("{$table_prefix}sp_count から削除 " );
}
$d_time= 0;
if($_GET['dt']==1)// 30 日前を削除
{
$d_time=$day_out-$day*30; ['dt']==2 )//60 日前を削除
{
$d_time=$day_out-$day*60;
}elseif($_GET['dt']==3)//90 日前を削除
{
$d_time=$day_out -$day*90;
}elseif($_GET['dt']==4)//180 日前を削除
{
$d_time=$day_out-$day*180; }elseif($_GET['dt ']==5)//360 日前を削除
{
$d_time=$day_out-$day*360;
}
if($d_time>0)
{
mysql_query ("delete from {$table_prefix}sp_count where r_time<'$d_time'");//データを削除
}
}
}
$ss=intval($_GET['ss'])
if($ss> 0)//分類統計を表示
{
if($ss==999)//カテゴリをクリア
{
$_SESSION['ss_ss']='';
}else
{
$_SESSION['ss_ss']= $ss;
}
}
$ss =$_SESSION['ss_ss'];
if($ss==1)
{
$ss='バイダスパイダー';
{
$ss='Googlebot'
} elseif($ss==3)
{
$ss="MSNbot";
}elseif($ss==4)
{
$ss="Yahoobot"; elseif($ss==5)
{
$ss="ソゴボット";
}elseif($ss==6)
{
$ss="ソゴボット";
{
$ss=7;
}
$ t=intval($_GET['t']);//時間分類統計を表示
if($t==0)//時間ごとの状況
{
if (empty($_SESSION['ss_ss']))
{
$sql =" select * from {$table_prefix}sp_count order by id desc ";//最新の状況
$sql2="select count(*) from {$ table_prefix}sp_count ";
}else
{
$sql= "select * from {$table_prefix}sp_count where r_name='$ss' order by id desc ";
$sql2="select count(*) from {$table_prefix] }sp_count where r_name='$ss' ";
}
$rscount=mysql_query($sql2);
$rscount=@mysql_fetch_array($rscount);
$rscount=$rscount[0];// 合計数を取得of records
$page=intval(trim($_GET['page' ]));//現在のページ数
$pagesize=30;//ページあたりのレコード数
$pagecount=ceil($rscount/ $pagesize);// 総ページ数を取得します
$pageurl="";
if( $page<=1)
$page=1;
$pageurl.=" ホーム 前のページ";
{
$pageurl .=" ホームページ 前のページ}
if($page>=$pagecount)
{
$page=$pagecount;
$pageurl .= 次のページ最後のページ";
}else
{
$pageurl .=" < a href='?ss=".$ss."&page=".($page+1)."'>次のページ最後のページ
";
}
if($page<=1)
{
$ page=1;
}
$start_rs=intval(($ page-1)*$pagesize);//Start
$end_rs=intval($page*$pagesize);//End
$sql .= 制限 { $start_rs},{$end_rs} ";
}
if ($t==1)//今日の統計を見る
{
$s_time=$day_start;//開始時間
$e_time=$day_out;//終了時間
$sql="select count(*) as ct, r_name from {$table_prefix}sp_count where r_time between '$s_time' と '$e_time' group by r_name ";
}elseif($t==2)//View昨日の統計
{
$s_time=$day_start-$day ;//Start
$e_time=$day_out-$day;//End
$sql="{$table_prefix}sp_count から ct,r_name として count(*) を選択ここで、'$s_time' と '$e_time' の間の r_time は r_name ごとにグループ化されます ";
}elseif($t==3)//前日の統計を表示します
{
$s_time=$day_start-$day*2;
$e_time=$day_out-$day*2;
$sql ="select count(*) as ct,r_name from {$table_prefix}sp_count where r_time between '$s_time' and '$e_time' group by r_name"; }elseif($t==4)//7 日間の統計を表示します
$s_time=$day_start-$day*7
$sql="select count(*) as ct, r_name from {$table_prefix}sp_count where r_time between '$s_time' と ' $e_time' group by r_name ";
}
elseif($t==5)//30 日間表示
{
$s_time=$day_start-$ day*30;
$e_time=$day_out;
$sql= "'$s_time' と '$e_time' の間の r_time を r_name でグループ化した ct,r_name を選択します。 elseif($t==6)//90 日間の統計を表示する
{
$s_time=$day_start-$day*90
$sql="select count(*) as ct,r_name; {$table_prefix} からsp_count where r_time between '$s_time' と '$e_time' group by r_name ";
}
$res=mysql_query($sql);// or die("请先安装程序インストール");
?>



显示クモ记录情况