在文本文件内查找字符串,寻求算法!!!!100分相送。

应该网 2007-10-25 12:08:33
目前,我使用的是一个一个遍历循环,发现速度很慢,文件文件大概有6万行。

寻求最快的数据查找算法。

谢谢各位了。

用的是PHP
...全文
215 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
b2sun 2008-07-12
  • 打赏
  • 举报
回复
(1)FREEBSD 7.0 操作系统
(2)APACHE2.2
(3)PHP5

实现目标:对一些服务的配置文件进行修改保存,然后重新启动这个服务,使其生效。
举例: /etc/inetd.conf 就是inetd服务的配置文件,如典型的TELENET、FTP等服务。如果想找开它的FTP服务,就要把这个配置文件中的
#FTP stream tcp nowait root /usr/libexec/ftpd ftpd -l前面的#注释项去掉变成

FTP stream tcp nowait root /usr/libexec/ftpd ftpd -l 然后保存这个文件
执行inetd或者是ftpd
#inetd start
#kldload ftpd 之类的就可以完成配置任务。
当然,有时也会向其中加入自己特有的内容。如:
ftp stream tcp6 nowait .....之类的。

敬请各位大侠多多指点。

1。php要有权限修改inetd.conf 文件。
文件所属组和apache设置是否一样。默认都是 nobody吧
php是否安全模式运行,能否跨目录操作等。inetd.conf不会在网站目录下把
2。文件内容修改,就是读取后处理字符串,再保存。具体
$word=file('文件路径');foreach($word as $val){
//这样循环出来是文件的一行行内容,看你想怎么改一改,再组合成字符串,最后保存 file_put_contents('文件路径','文件内容');
}
3。php要能执行系统命令。exec(' 重启某服务的 freebsd命令 ');
应该网 2007-10-25
  • 打赏
  • 举报
回复
function find ($word)
{
if (!$word)
{
return false;
}
//echo $word;
$file_handle = fopen('英文.txt', "r");
while (!feof($file_handle))
{
$line = fgets($file_handle);
if (trim($line)==$word)
{
return $line;
}

}
fclose($file_handle);
}
应该网 2007-10-25
  • 打赏
  • 举报
回复
忘记改分数了,现在不能加。

不过我可以把分转过去。
懒得去死 2007-10-25
  • 打赏
  • 举报
回复
你看一下TXTDB就知道怎么做了.
总哈哈 2007-10-25
  • 打赏
  • 举报
回复
可以尝试读取一段,把资源放了,然后往下读,以前也做过这方面的,但是没有你这么大,那时候只有2万。你这么大数据量,肯定是越读越慢的。
Meteorlet 2007-10-25
  • 打赏
  • 举报
回复
你的txt文件要做成索引文件就很快了。或者文本文件加点头信息,比如一共有多少行,每一行多少个字节,有了这些信息可以用fseek直接读取某一行,再结合二分查找会快很多。

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧