Просмотр полной версии : Php :)
У меня почему-то скрипт не работает. Ситуация такова: есть файл db.txt в котором содержимое такого рода:
<tr>
<td class="test_bottom" colspan="2">
123) <b>105:Mega:202cb962ac59075b964b07152d234b70::0</b>
</td>
</tr>
Вот и сам скрипт:
$i=0;
$str = array();
$rethash = array();
$f = fopen ('db.txt','r');
if (!($f))
{
die ("Can't open $f");
}
while (!feof($f))
{
$str[$i] = fgets ($f,1000);
$i++;
}
$fclose ($f);
for ($s=0;$s<count($str);$s++)
{
if (strlen($str[$s])>36)
{
list($num,$user,$hash,$blokpass,$rights)=explode(":",$str[$s]);
$rethash[$s] = $hash;
}
}
Так вот, скрипт не работает =\ Кто знает в чем проблема?
print_r($rethash); сделай
лучше для $rethash ввести отдельный счетчик
Flame of Soul
02.04.2008, 18:58
$fclose ($f);
это так и должно быть????
<tr>
<td class="test_bottom" colspan="2">
123) <b>105:Mega:202cb962ac59075b964b07152d234b70::0</b>
</td>
</tr>
- а зачем все на рызных строках это же неудобно
если есть желание то сам обрежешь
001:Mega:ento_hash:xxx:0:
<?
$rethash = array();
$f = fopen ('db.txt','r');
if (!($f))
{
die ("Can't open $f");
}
else
{
$str = file("db.txt");
fclose ($f);
for ($s=0;$s<count($str);$s++)
{
list($num,$user,$hash,$blokpass,$rights)=explode(":",$str[$s]);
$rethash[$s] = $hash;
echo $num.'----'.$user.'----'.$hash.'----'.$blokpass.'----'.$rights;
}
}
?>
а вот не проще вместо fgets и прочего юзать file_get_contents() или file()?
зачем if (strlen($str[$s])>36) ?
проще strip_tags сделать и всё.
Обрезать 60 000-ую базу в ручную? file() при таком огромном текстовом файле глючит или вовсе отказывается работать. Скрипт работает нормально до закрытия файла, дальше уже не хочет. Так вот я спрашиваю, почему?
file_get_contents и preg_match_all. все
Flame of Soul
02.04.2008, 19:26
http://allbasse.narod.ru/ok.zip
посмотри залила в качестве примера с базой размером 10 мб (сам архив 45 килобайт :D )
тебе так надо было?
Не скачивается =) Приятно удивлен, девушко хэкер =)))
P.S. Можно стирать тему, как-то по-другому напишу скрипт.
<?php
/**
* @author @Fatal@
* @copyright 2008
*/
$rethash = array();
$file = file_get_contents('db.txt');
preg_match_all('#\<b\>(.*?\:.*?\:.*?\:.*?\:.*?)\</b\>#', $file, $pock);
foreach ($pock['0'] as $k)
{
list($num, $user, $hash, $blokpass, $rights) = explode(":", $k);
$rethash[] = $hash;
}
?>
Я написал по-другому, но спасибо всем за помощь =)
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot