PHP code:
<?PHP
/*
数据库 down 运行于 localhost
# phpMyAdmin SQL Dump
# version 2.5.4-rc2
# <a href="http://www.phpmyadmin.net" target="_blank">http://www.phpmyadmin.net</a>
#
# 主机: localhost
# 生成日期: 2004 年 06 月 18 日 11:29
# 服务器版本: 4.0.18
# PHP 版本: 4.3.4
#
# 数据库 : `down`
#
# --------------------------------------------------------
#
# 表的结构 `tx_joke`
#
CREATE TABLE `tx_joke` ( #笑话表
`jokeID` int(10) unsigned NOT NULL auto_increment, #笑话ID
`typeID` smallint(4) unsigned NOT NULL default '0',#笑话类别ID
`typeName` varchar(50) NOT NULL default '',#笑话类别名称
`jokeName` varchar(100) NOT NULL default '',#笑话名称
`jokeContent` text NOT NULL,#笑话内容
`visitNum` mediumint(8) unsigned NOT NULL default '0',#笑话访问次数
`createDate` int(10) unsigned NOT NULL default '0',#笑话加入时间
PRIMARY KEY (`jokeID`)
) TYPE=MyISAM AUTO_INCREMENT=16985 ;
# --------------------------------------------------------
#
# 表的结构 `tx_jokecate`
#
CREATE TABLE `tx_jokecate` (#笑话类别
`jokeCateID` smallint(5) unsigned NOT NULL default '0',#笑话类别ID
`jokeCateName` varchar(50) NOT NULL default '',#笑话类别名称
`jokeNum` mediumint(8) unsigned NOT NULL default '0',#笑话数量
PRIMARY KEY (`jokeCateID`)
) TYPE=MyISAM;
*/
set_time_limit(0);#设置超时。0为永不过期
mysql_connect("localhost","root",""<img src="images/smilies/23.gif" smilieid="206" border="0" alt="" />; #链接数据库
mysql_select_Db("down"<img src="images/smilies/23.gif" smilieid="206" border="0" alt="" />;
$ip = '127.0.0.1';
function _GetIP() #取IP的函数
{
$ip = getenv("REMOTE_ADDR"<img src="images/smilies/23.gif" smilieid="206" border="0" alt="" />;
$ip1 = getenv("HTTP_X_FORWARDED_FOR"<img src="images/smilies/23.gif" smilieid="206" border="0" alt="" />;
$ip2 = getenv("HTTP_CLIENT_IP"<img src="images/smilies/23.gif" smilieid="206" border="0" alt="" />;
($ip1) ? $ip = $ip1 : null ;
($ip2) ? $ip = $ip2 : null ;
return $ip;
}
if ( _GetIP() != $ip )
{
exit("Can't Run!"<img src="images/smilies/23.gif" smilieid="206" border="0" alt="" />; //限制在本机运行。这样别人不可以执行本程序
}
for ($i=1;$i<18500;$i++)//这里是读这外网站数据列表。我用的时候他大概有18500条。最大ID是18500
{
$url = "http://joke.v111.com/jokes.asp?class_no=".$i;#读笑话的页面
$File = fopen($url,'rb');#打开读成二进制流
if ( $File )
{
$Buffer = $makeFile = "";
while ($Buffer = fread($File,4096))
{
$makeFile = $makeFile.$Buffer;#取出来。就是直接把上边的笑话内容读成HTML源码形式
}
fclose($File);
preg_match("/#996600">(.*)</font>/",$makeFile,$str);#取出笑话标题
preg_match("/valign="top"(.*)</table>/s",$makeFile,$str2);#笑自内容
//preg_macth是用正规表达式,具体到php.net看
//提示,他的数组是从1开始的。不是0
echo $str2[1]."<br>";#输入显示插入,可以不输出
$sql = " insert into tx_joke SET createDate='".time()."',jokeID='$i',jokeName='$str[1]',jokeContent='$str2[1] "; #插入到数据库中
mysql_query($sql);
}
}
?>