'; } 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 "
PHP+MySQL网站地图生成器(PHP+MySQL sitemaps.xml)
本程式由浪子胡编辑。2010.3.3日版本  "; echo filesize("index.php")==24450?"完全正确版本":"被更新版本,建议到官方站去下载最新版本。"; echo "
返回首页    最新版本更新:http://www.it09.com/www/sitemaps
"; } function step0() { head1(); echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo "
Step 1Find address 寻找所有网页
Step 2 Echo address 显示所有地址
Step 3 Clear no exist address 清除无效地址
Step 4 Echo address as XML 以XML格式查看
Step 5 Save address XML 保存到XML文件
Step 6 Save address TXT 保存到TXT文件
"; echo ""; echo ""; echo ""; echo "
You may : 您还可以:
EDIT file conn.php 设置系统参数
Install Databases 安装数据结构
Readme 说明
"; 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 '
连接参数:数据库所在主机名
          所用端口(默认3306)
          所用用户名
          数据库密码
          数据库名
将搜寻的站点地址
输出站点地图文件名
GOOGLE关注度值(0~1之间)
限定搜索时间(分钟,0为不限时)
全面搜索次数(大于1)
地址确认功能有效
是否清空原表数据
多文件输出有效
快速搜索功能[新开发/建议设为有效]
'; 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 //版权所有,侵权必究。 //这个程式是胡芳强先生编辑的,请勿随意修改版权及其它谋利行为。 ?>