Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Php :) (https://forum.antichat.xyz/showthread.php?t=66262)

~EviL~ 02.04.2008 18:43

Php :)
 
У меня почему-то скрипт не работает. Ситуация такова: есть файл db.txt в котором содержимое такого рода:
Код:

<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;
     }
   } 

Так вот, скрипт не работает =\ Кто знает в чем проблема?

Piflit 02.04.2008 18:47

print_r($rethash); сделай
лучше для $rethash ввести отдельный счетчик

~EviL~ 02.04.2008 18:50

Не помогло =\

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:
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;

}
?>


scrat 02.04.2008 18:59

а вот не проще вместо fgets и прочего юзать file_get_contents() или file()?
зачем
PHP код:

    if (strlen($str[$s])>36

?
проще strip_tags сделать и всё.

~EviL~ 02.04.2008 19:09

Обрезать 60 000-ую базу в ручную? file() при таком огромном текстовом файле глючит или вовсе отказывается работать. Скрипт работает нормально до закрытия файла, дальше уже не хочет. Так вот я спрашиваю, почему?

Piflit 02.04.2008 19:11

file_get_contents и preg_match_all. все

Flame of Soul 02.04.2008 19:26

http://allbasse.narod.ru/ok.zip

посмотри залила в качестве примера с базой размером 10 мб (сам архив 45 килобайт :D )
тебе так надо было?

~EviL~ 02.04.2008 19:37

Не скачивается =) Приятно удивлен, девушко хэкер =)))

P.S. Можно стирать тему, как-то по-другому напишу скрипт.

Doom123 02.04.2008 20:02

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;
}
?>



Время: 19:42