php提升检索的速度,PHP中的速度字符串搜索

我有一个1.2GB的文件,其中包含一行字符串.

我需要的是搜索整个文件以找到另一个字符串的位置(目前我有一个要搜索的字符串列表).

我现在正在做的方法是打开大文件并移动指针通过4Kb块,然后将指针X位置移回文件中并获得更多4Kb.

我的问题是要搜索更大的字符串,他需要更长的时间才能获得它.

你能给我一些想法来优化脚本以获得更好的搜索时间吗?

这是我的实施:

function busca($inici){

$limit = 4096;

$big_one = fopen('big_one.txt','r');

$options = fopen('options.txt','r');

while(!feof($options)){

$search = trim(fgets($options));

$retro = strlen($search);//maybe setting this position absolute? (like 12 or 15)

$punter = 0;

while(!feof($big_one)){

$ara = fgets($big_one,$limit);

$pos = strpos($ara,$search);

$ok_pos = $pos + $punter;

if($pos !== false){

echo "$pos - $punter - $search : $ok_pos
";

break;

}

$punter += $limit - $retro;

fseek($big_one,$punter);

}

fseek($big_one,0);

}

}

提前致谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值