У меня почему-то скрипт не работает. Ситуация такова: есть файл db.txt в котором содержимое такого рода: Code: <tr> <td class="test_bottom" colspan="2"> 123) <b>105:Mega:202cb962ac59075b964b07152d234b70::0</b> </td> </tr> Вот и сам скрипт: PHP: $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; } } Так вот, скрипт не работает =\ Кто знает в чем проблема?
это так и должно быть???? - а зачем все на рызных строках это же неудобно если есть желание то сам обрежешь PHP: <? $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()? зачем PHP: if (strlen($str[$s])>36) ? проще strip_tags сделать и всё.
Обрезать 60 000-ую базу в ручную? file() при таком огромном текстовом файле глючит или вовсе отказывается работать. Скрипт работает нормально до закрытия файла, дальше уже не хочет. Так вот я спрашиваю, почему?
http://allbasse.narod.ru/ok.zip посмотри залила в качестве примера с базой размером 10 мб (сам архив 45 килобайт ) тебе так надо было?
Не скачивается =) Приятно удивлен, девушко хэкер =))) P.S. Можно стирать тему, как-то по-другому напишу скрипт.
PHP: <?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; } ?>