';
}
function head1()
{
echo ''.chr(13);
echo '
'.chr(13);
echo ''.chr(13);
echo 'PHP+MySQL网站地图生成器 PHP+MySQL for sitemaps.xml 本程式由浪子胡编辑。最新更新站点:http://www.it09.com/www/sitemaps'.chr(13);
echo ''.chr(13);
echo ''.chr(13);
echo ''.chr(13);
echo "";
}
function step0()
{
head1();
echo "";
echo "";
echo ''.chr(13);
echo ''.chr(13);
}
function step1()
{head1();
require("conn.php");
if($_zapdatabas){$result0 = mysql_query(" TRUNCATE TABLE `site` ;");}
$_sql="INSERT INTO `site` ( `address` ) VALUES ( '".$_srcfilename."' )";
$_res=@mysql_query($_sql);
echo '设置本次搜索时间为'.($_seachtime*60).'秒。
';
set_time_limit($_seachtime*60);
for($i=1;$i<=$_google_all;$i++)
{echo '正在执行第'.$i.'次搜索。
';
$_sql="SELECT * FROM site order by id desc";
$_res=mysql_query($_sql);
while ($row = mysql_fetch_object($_res))
{
//echo "
Find this address : ".$row->address."
";
$_SESSION['pageaddress']=$row->address;
if($_fastseach==1)
findonepage2($row->address);
else
findonepage($row->address);
}
}
echo "
OK!
Return
";
}
function findonepage($_filename)
{
$_ii=strrpos($_filename,"/");
$_charlen=0;
if($_ii>=12){$_sitepath=substr($_filename,0,strrpos($_filename,"/")+1);}
else{$_sitepath=$_filename."/";}
$_arrayfile=@file($_filename);
if(!$_arrayfile)return -1;
foreach($_arrayfile as $_arrayfilee)
{
$_src=strtolower(trim($_arrayfilee));
$_src=str_replace(chr(34),"",$_src);
$_src=str_replace(chr(39),"",$_src);
while(strstr($_src,"href"))
{
$_src=strstr($_src,"href");
$_src=substr($_src,4);
$_src=trim($_src);
if(substr($_src,0,1)=='=')
{
$_src=substr($_src,1);$_src1=strstr($_src,">");
$_charlen=strlen($_src)-strlen($_src1);
$_src=substr($_src,0,$_charlen);
$_src=trim($_src);$_src2=strstr($_src," ");
$_charlen=strlen($_src)-strlen($_src2);
$_src=substr($_src,0,$_charlen);$_src=trim($_src);
if(strcmp(substr($_src,0,1),chr(34))==0)
{
$_src=substr($_src,1);
}
else {
if(strcmp(substr($_src,0,1),chr(39))==0)$_src=substr($_src,1);
}
if(strcmp(substr($_src,-1),chr(34))==0)
$_src=substr($_src,0,strlen($_src)-1);
else {
if(strcmp(substr($_src,-1),chr(39))==0)$_src=substr($_src,0,strlen($_src)-1);
}
if(strcmp(substr($_src,0,4),"http")!=0)$_src=$_sitepath.$_src;
if(!strcmp(substr($_src,0,strlen($_sitepath)),$_sitepath))
{
$_src=trim($_src);if(!(strstr(substr($_src,6,5),"http:")))
{if(!(strstr($_src,"mailto:")))
{if(!(strstr($_src,"mms:")))
{if(!(strstr($_src,"javascript:")))
{if(!(strstr(substr($_src,-3),"jpg")))
{if(!(strstr(substr($_src,-3),"gif")))
{if(!(strstr(substr($_src,-3),"rar")))
{if(!(strstr(substr($_src,-3),"zip")))
{if(!(strstr(substr($_src,-3),"xls")))
{if(!(strstr(substr($_src,-3),"wps")))
{if(!(strstr(substr($_src,-3),"ico")))
{if(!(strstr(substr($_src,-3),"exe")))
{if(!(strstr(substr($_src,-3),"mdb")))
{
$_src=trim($_src);
$_src=str_replace("/./",chr(47),$_src);
$_src=str_replace("///",'',$_src);
if(strstr($_src,"#"))
$_src=substr($_src,0,strlen($_src)-strlen(strstr($_src,"#")));
$_src=str_replace("://",":/*/",$_src);
$_src=str_replace("//","/",$_src);
$_src=str_replace(":/*/","://",$_src);
$_src=clearupaddress($_src);
writeonepage($_src);
}}}}}}}}}}}}}}}
$_src=$_src1;}}
unset($_arrayfile);}
//写入地址到数据库
function writeonepage($_char)
{
require("conn.php");
if($_googleaddressis)
{
$_arrayfile=@file($_char);
if(!$_arrayfile)return -1;
}
$_sql="INSERT INTO `site` ( `address` ) VALUES ( '".$_char."' )";
$_res=@mysql_query($_sql);
if($_res)
{echo $_char.' append is ok
'.chr(13).chr(10);
return 1;}
else
return -1;
}
//函数:发现页面地址。
function findonepage2($_filenamee)
{
$_array_address=explode(",",$_SESSION['pageaddress']);
foreach ($_array_address as $_arrayfilee)
{
$_filename=$_arrayfilee;
$_ii=strrpos($_filename,"/");
$_charlen=0;
if($_ii>=12)
$_sitepath=substr($_filename,0,strrpos($_filename,"/")+1);
else
$_sitepath=$_filename."/";
$_arrayfile=@file($_filename);
$string=@implode("", $_arrayfile);
unset($_arrayfile);
$string=str_replace('"','',$string);
$string=str_replace("'",'',$string);
$string=str_replace(")",'',$string);
$string=str_replace(" ",'>',$string);
$string=str_replace("javascript:opennew(",'',$string);
preg_match_all("/href=.*? ?>/",$string,$_array);
unset($string);
reset($_array);
$_addressss='';
foreach ($_array[0] as $_arrayfilee)
{
$_src=substr($_arrayfilee,5,strlen($_arrayfilee)-6);
$_src=checkaddressisok($_src,$_sitepath);
if($_src!=-1)
{
//写入到数据库中
writeonepage($_src);
$_addressss=$_addressss.",".$_src;
}
}
$_SESSION[pageaddress].=$_addressss;
}
}
//校验地址是否为网页地址并修正。
function checkaddressisok($_src,$_sitepath)
{
return str_replace("//","/",$_sitepath.$_src);
if(eregi("mailto:|mms:|javascript:",$_src))
return -1;
if(eregi("jpg|gif|rar|zip|xls|wps|doc|ico|exe|css|mdb",substr($_src,-3)))
return -1;
//if(strstr($_src,"http://") and substr($_src,0,strlen($_sitepath))!=$_sitepath)
// return -1;
if(!strstr($_src,$_sitepath))
return str_replace("//","/",$_sitepath.$_src);
}
//地址清理垃圾信息。
function clearupaddress($_char)
{
$_char=trim($_char);
while(strstr($_char,'..'))
{
$_char2=strstr($_char,'..');
$_char1=substr($_char,0,strlen($_char)-strlen($_char2)-1);
$_char1=substr($_char1,0,strrpos($_char1,'/'));
$_char2=substr($_char2,2);$_char=$_char1.$_char2;
}
return $_char;
}
function checkaddressfile($_siteaddress)
{
$_dirpath='site';
if(!file_exists($_dirpath))
{@mkdir($_dirpath);return 0;}
if(is_dir($_dirpath))
{
if($_shi=opendir($_dirpath))
{
while($_li=readdir($_shi))
{
if(!is_dir($_dirpath.'/'.$_li))
{
require($_dirpath.'/'.$_li);
if(strstr($_siteaddress,$_site_address))
return $_dirpath.'/'.$_li;
}
}
}
}
return 0;
}
function step2()
{head1();
require("conn.php");
$_sql="SELECT * FROM site order by id asc limit 0,1000";
$_res = mysql_query($_sql);
$i=0;
while ($row = mysql_fetch_object($_res))
{
$i++;
prn(' No:'.$i.'---->'.$row->address);
}
prn("
---------------------------------------------------------------
OK!");
prn("此处仅列表前1000项
Return
---------------------------------------------------------------");
foot1();
}
function prn($char)
{
echo $char."
".chr(13);
}
function step3()
{head1();
require("conn.php");
if($_googleaddressis)
{
echo '在搜索的过程中,已经清除了无效地址,不需要再进行清理。如果您一定要清除的话,请在设置栏中将[地址确认功能有效]设为“无效”方可进行。';
}
else
{
$_res = mysql_query("SELECT * FROM site order by id desc ;");
while ($row = mysql_fetch_object($_res))
{
$_arrayfile=@file($row->address);
if(!$_arrayfile)
{
prn("Address ".$row->address." is wrong . ");
$sql = "DELETE FROM site WHERE address='".$row->address."';";
$res = mysql_query($sql);
if($res)prn(" ----> Delete success .
");
}
unset($_arrayfile);
}
}
prn("
---------------------------------------------------------------
OK!");
prn("
Return
---------------------------------------------------------------");
foot1();
}
function step4()
{
require("conn.php");
$_sql="SELECT * FROM site order by id asc ;";
$_res = mysql_query($_sql);
prn2('');
prn2('');
while ($row = mysql_fetch_object($_res))
{
prn2('');
prn2(''.xmlto($row->address).'');
prn2(''.$_googleguanzhu.'');
prn2('daily');
prn2('');
}
prn2('');
}
function prn2($char)
{
echo $char."\n";
}
function step5()
{head1();
require("conn.php");
if($_googlemultfile)
{
$_sql = "SELECT count(*) FROM `site` ;";
$res=mysql_query($_sql);
$_t=mysql_fetch_array($res);
$_all=intval($_t['0']/1000)+1;
$char1=substr($_decfilename,0,strlen($_decfilename)-4);
$char2=substr($_decfilename,-4,4);
for($i=0;$i<=$_all;$i++)
{
$_sql="SELECT * FROM site order by id asc limit ".($i*1000).",1000;";
$_char=$char1.'_'.$i.$char2;
writexml($_sql,$_char);
}
}
else
writexml(0,$_decfilename);
}
function writexml($_sql,$filename)
{
require("conn.php");
if(file_exists($filename))@unlink($filename);
if (!$handle = fopen($filename, 'xb'))
{
print "Can't open $filename";
exit;
}
if (!fwrite($handle, ''.chr(13).chr(10)))
{
print "Write wrong : $filename";
exit;
}
fwrite($handle, ''.chr(13).chr(10));
if(empty($_sql))$_sql="SELECT * FROM site order by id asc ;";
$_res = mysql_query($_sql);
while ($row = mysql_fetch_object($_res))
{
fwrite($handle, '');
fwrite($handle, ''.xmlto($row->address).'');
fwrite($handle, ''.$_googleguanzhu.'');
fwrite($handle, 'daily');
fwrite($handle, ''.chr(13).chr(10));
}
fwrite($handle, ''.chr(13).chr(10));
fclose($handle);
echo "
Your Sitemaps is : ".$filename;
return 1;
}
function xmlto($tempchar)
{
$tempchar=str_replace('&','&',$tempchar);
$tempchar=str_replace("'",''',$tempchar);
$tempchar=str_replace('"','"',$tempchar);
$tempchar=str_replace('>','>',$tempchar);
$tempchar=str_replace('<','<',$tempchar);
//return $tempchar;
return nochaoscode('GBK',$tempchar);
}
function nochaoscode($encode, $str) {
$str = iconv($encode, "UTF-16BE//IGNORE", $str);
for ($i = 0; $i < strlen($str); $i++,$i++) {
$code = ord($str{$i}) * 256 + ord($str{$i + 1});
if ($code < 128) {
$output .= chr($code);
} else if ($code != 65279) {
$output .= "".$code.";";
}
}
return $output;
}
function step6()
{
head1();
@require("conn.php");
$_sql="DROP TABLE IF EXISTS `site`;";
@mysql_query($_sql);
$_sql="
CREATE TABLE IF NOT EXISTS `site` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`isscan` int(2) default '0',
`isyes` int(5) default '1',
PRIMARY KEY (`id`),
UNIQUE KEY `address` (`address`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
";
echo '';
if(@mysql_query($_sql))echo '安装成功';
else
echo '安装失败,请重新设置数据库连接,并手动建立数据库。';
echo '';
foot1();
}
function step7()
{
head1();
@require("conn.php");
echo '
';
foot1();
}
function writepost($_char)
{
return trim($_char).'";'.chr(13).chr(10);
}
function step8()
{
head1();
$iflock=1;
$handle=@fopen('conn.php',"wb+");
if($iflock)
{@flock($handle,LOCK_EX);}
fputs($handle,''.chr(13).chr(10));
fclose($handle);
echo '系统设置完成。';
foot1();
}
function step9()
{
$iflock=1;
$handle=@fopen('conn.php',"wb+");
if($iflock)
{@flock($handle,LOCK_EX);}
fputs($handle,'');
fclose($handle);
}
function step10()
{head1();
require("conn.php");
$filename='sitemaps.txt';
if(file_exists($filename))@unlink($filename);
if (!$handle = fopen($filename, 'xb'))
{
print "Can't open $filename";
exit;
}
if (!fwrite($handle, chr(13)))
{
print "Write wrong : $filename";
exit;
}
$_sql="SELECT * FROM site order by id asc ;";
$_res = mysql_query($_sql);
while ($row = mysql_fetch_object($_res))
{
fwrite($handle, $row->address.chr(13).chr(10));
}
fclose($handle);
echo "
Your Sitemaps is : ".$filename;
foot1();
}
function step11()
{head1();
echo '
PHP+MySQL网站地图生成器(PHP+MySQL sitemaps.xml)
本程式由浪子胡编辑。2009.2.3日版本
最新版本更新站点:http://www.it09.com/www/sitemaps
程式说明:
本程序主要的目的是模拟网络搜索引擎,自动搜寻您的网站的所有页面,然后生成XML或者TXT格式输出,可以提交给GOOGLE,BAIDU,SINA等知名网站,提高知名度。
工作原理:
自第一个您所提交的页面起,自动搜索所有该页面的链接,然后以该页面的链接为基础,搜索其它页面的链接,如此多次循环。将您的网址一网打尽。
原来08年1月份搞了这个,后来有很多网友来信,所以再忙里偷闲继续更新一下......
安装说明:
1、首先确定您要具备的运行环境,要支持PHP+MYSQL。
2、先要在MYSQL里手动建立一个数据库,记下你设置的数据库名(在下面的参数里要用的)。。。。。这不用我说了吧。
3、上传本文件到可访问的文件夹,并且文件夹下要可写入数据,然后用HTTP访问本页。
4、看到中英文说明了吧,先点“EDIT file conn.php 设置系统参数”-->“Install Databases 安装数据结构”-->按照1-6去尝试
如果没有PHP+MYSQL环境,可以自己建个简单的PHP+SQL环境。
我用的是APMServ 5.2.6,
APMServ 5.2.6 是一款拥有图形界面的快速搭建Apache 2.2.9、PHP 5.2.6、MySQL 5.1.28&4.0.26、Nginx、Memcached、phpMyAdmin、OpenSSL、
SQLite、ZendOptimizer,以及ASP、CGI、Perl网站服务器平台的绿色软件。
可以从官方站:
http://apmserv.s135.com/
或者
http://www.it09.com/www/bbsxp/ShowPost.asp?ThreadID=681
寻得下载地址的。
欢迎大家与我交流。
QQ:304340863
Email: hufangqiang@tom.com
photo:15073922433
Site:http://www.it09.com/www/sitemaps
更新日志:
2008.1.1
增加了地址判断功能,当网页不存在时,会自动跳过,不会放弃其它网址。
数据库结构增加索引,使无重复网址在数据库内。
增加了清除无效网址功能。当有网址不能被打开时,会从数据库中删除。
增加可以排除地址有:FTP地址、非本站点地址、邮件地址、媒体地址以及JPG\GIF\RAR\ZIP\XLS\WPS\DOC\TXT\EXE等。
20080808
集中精力只搞一个单文件版。
自动搜索智能度加强,速度更快。
增加可设参数功能,直接在页面就可以设置。
如果CONN。PHP文件不存在,会自动建立,然后再编辑。
CONN输入错误自动校正。
支持地址写入TXT文件。
支持多XML文件输出功能,自动以每1000条记录为1个文件进行输出。
可自动扫描出无效地址(此功能有开关设置)并放弃。
HTTP地址重复值排除与校验功能。
增加防病毒功能。本文件自动检测长度,如果被某下载站点恶意加入代码,则会提示与报警。
20090203
增加了快速搜索功能[新开发/建议设为有效],其原理是采用正则表达式对网页进行过滤式搜索,
相比较原老算法而言,速度更快,收获网址多了三倍,但是无效地址增多,建议灵活采用。[在/设置系统参数/里有选项]
增加了字符编码设置与转换,使XML文件不再发生错误。
20100302
增加正则表达式开关,增强内存优化。如果不支持正则扩展的主机,请用普通模式运行搜索。
';
foot1();
}
//最后更新日期:2010.3.2:17:18
//版权所有,侵权必究。
//这个程式是胡芳强先生编辑的,请勿随意修改版权及其它谋利行为。
?>