分享
 
 
 

遍历FTP下目录和文件生成数据库--可以做小规模的FTP搜索引擎

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

<?

//ftp信息

$ftp_server="xxxxxxxxxxx"; //FTP服务器的地址

$username="xxx"; //要查询目录

$userpassword="xxxxxx"; //相映的密码

//数据库信息

$localhost="localhost"; //一般是localhost

$datauser="xxx"; //数据库用户名

$datapassword="xxxxx"; //数据库用户密码

$database="xxxxx"; //数据库名称

//数据表建立信息 realfly是表名

// CREATE TABLE realfly (

// name text NOT NULL,

// id tinyint(4) unsigned NOT NULL auto_increment,

// date date DEFAULT '0000-00-00' NOT NULL,

// time time DEFAULT '00:00:00' NOT NULL,

// content longtext NOT NULL,

// KEY id (id)

// );

?>

<?

###################################################

#程序: FTP搜索引擎递归函数文件 #

#文件: class.php #

#姓名: 网络骑士 #

#所用技术: php&mysql #

#版本: v1.0 #

#联系: shakespareshmily@sina.com.cn #

###################################################

function happy($ftp_stream,$directory,$link)

{

if(is_dir($directory))

{

//$today=(date("Y")."-".date("m")."-".date("d"));

//$content=$directory;

//$time=date("H:i:s");

//$query="INSERT INTO realfly VALUES ('', '', '$today', '$time', '$content');";

//mysql_query($query,$link);

//$color="FF3399";

//echo "<font color=".$color."size=2>".$directory."</font><br>";

$result=ftp_nlist($ftp_stream,$directory);

for ($j=0;$j<=count($result);$j++){

happy($ftp_stream,$result[$j],$link);

}

}

else {

$basename=basename($directory);

$file=explode(".",$basename);

$id=$i++;

$today=(date("Y")."-".date("m")."-".date("d"));

$content=$directory;

//$content4=$directory;

$time=date("H:i:s");

$query="INSERT INTO realfly VALUES ('$file[0]', '$id', '$today', '$time', '$content');";

mysql_query($query,$link);

echo $directory."<br>";

}

}

?>

<?

include ("./search_ini.php");

include ("./class.php");

###################################################

#程序: FTP搜索引擎主文件 #

#文件: search.php #

#姓名: 网络骑士 #

#所用技术: php&mysql #

#版本: v1.0 #

#联系: shakespareshmily@sina.com.cn #

###################################################

$ftp_stream=ftp_connect($ftp_server,21);

$login=ftp_login($ftp_stream,"$username","$userpassword");

if(!$login||!$ftp_stream){

echo "cannot connect to $ftp_server";

echo "try again";

}

else

{

echo "<font color=".$color." size=+3 >connect to $ftp_server<br>CONGRATULATIONS!</font><br>";

}

$link=mysql_pconnect("$localhost","$datauser","$datapassword");

mysql_select_db("$database",$link);

$this=ftp_pwd($ftp_stream);

this=@ftp_chdir($ftp_stream]$this=@ftp_chdir($ftp_stream,"");

$result=ftp_nlist($ftp_stream,$this);

for ($i=0;$i<=count($result);$i++)

{

if (is_dir($result[$i]))

{

happy($ftp_stream,$result[$i],$link);

}

else {echo $result[$i]."<br>";

$basename=basename($result[$i]);

$file=explode(".",$basename);

$id=$i;

$today=(date("Y")."-".date("m")."-".date("d"));

$content="$result[$i]";

$time=date("H:i:s");

$query="INSERT INTO realfly VALUES ( '$file[0]', '$id', '$today', '$time', '$content');";

mysql_query($query,$link);

}

}

?>

以上是后台的搜索处理程序,下面是用户查询处理程序

<?

###########################################

#软件名: FTP搜索引擎显示页面 #

#版本: v1.0 #

#所用技术: php&mysql #

#作者: 网络骑士 #

#联系方式: shakespareshmily@sina.com.cn #

###########################################

include ("./search_ini.php");

//connect to database

$link=mysql_pconnect("$localhost","$datauser","$datapassword") or die ("无法连接服务器,请稍后再试!");

//select database

mysql_select_db("$database",$link);

//make query

$query="select name,content from realfly where name='$query1' ";

echo "您所查询的字段: "; echo "$query1.<BR>";

$i=0;

$result=mysql_query($query,$link);

if($result)

{while(list($name,$content)=mysql_fetch_row($result))

{ echo "您所能查询到的结果: ";

$content3="ftp://xxxxxxxx"; //你的FTP站点名称

$content2=stristr($directory,"/var/ftp");

$content=$content3.$content2;

echo "<a href=$content.>$content</a><BR>";

$i++;

} }

if($i==0)

{ $color="FF3399";

echo "<font color=".$color." size=2>真是太神奇了,居然没有找到,呵呵~~,再试试!</font><br>";}

else echo "恭喜,您要查找的东东找到了,赶快下载吧!.<br>";

?>

需要说明的几点:

1:产生背景:由于我们站长让我做一个类似北大天网那样的FTP搜索的东西,以方便校内想下载软件而又一时半会儿找不到相映目录的网友,所以它就产生了。当然它的搜索能力远不如天网强大,而且它也不是真正意义上的搜索引擎,但是却可以完成FTP目录下遍历的功能(如果你的目录不是太深-----它可以处理到18层目录)

2:以上程序必须放在你所要搜索的目录下面才可以用----原因是权限问题

3:存在的问题

a:如果处理的文件目录太深(比如30层,虽然很少人这么做,但是它处理起来就会跳过太深的目录----原因是服务器关于命令运行时间的限制)-------偶已经想到了解决的方法(理论阶段,由于现在忙于应付CPA的考试,所以没有实施)------即模仿flashget等的多线程下载的方式。得到当前目录下的文件,文件夹同时生成数组对每个文件夹逐个进行搜索或者同时进行搜索

b:有时候会出现这种情况,即:父目录的名字和子目录的相同,这时候会跳过这个父目录-----这个问题容易解决但是会加大处理的任务,加之最近没有时间改进,所以一直放置着^-^

浅妄薄见,望与斟酌

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有