Php :)

Discussion in 'PHP' started by ~EviL~, 2 Apr 2008.

  1. ~EviL~

    ~EviL~ Elder - Старейшина

    Joined:
    14 Aug 2007
    Messages:
    169
    Likes Received:
    77
    Reputations:
    4
    У меня почему-то скрипт не работает. Ситуация такова: есть файл 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;
         }
       }
    Так вот, скрипт не работает =\ Кто знает в чем проблема?
     
  2. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    print_r($rethash); сделай
    лучше для $rethash ввести отдельный счетчик
     
  3. ~EviL~

    ~EviL~ Elder - Старейшина

    Joined:
    14 Aug 2007
    Messages:
    169
    Likes Received:
    77
    Reputations:
    4
    Не помогло =\
     
  4. Flame of Soul

    Flame of Soul Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    185
    Likes Received:
    146
    Reputations:
    45
    это так и должно быть????

    - а зачем все на рызных строках это же неудобно

    если есть желание то сам обрежешь
    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;

    }
    ?>
     
    1 person likes this.
  5. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
    а вот не проще вместо fgets и прочего юзать file_get_contents() или file()?
    зачем
    PHP:
        if (strlen($str[$s])>36
    ?
    проще strip_tags сделать и всё.
     
    1 person likes this.
  6. ~EviL~

    ~EviL~ Elder - Старейшина

    Joined:
    14 Aug 2007
    Messages:
    169
    Likes Received:
    77
    Reputations:
    4
    Обрезать 60 000-ую базу в ручную? file() при таком огромном текстовом файле глючит или вовсе отказывается работать. Скрипт работает нормально до закрытия файла, дальше уже не хочет. Так вот я спрашиваю, почему?
     
  7. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    file_get_contents и preg_match_all. все
     
  8. Flame of Soul

    Flame of Soul Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    185
    Likes Received:
    146
    Reputations:
    45
    http://allbasse.narod.ru/ok.zip

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

    ~EviL~ Elder - Старейшина

    Joined:
    14 Aug 2007
    Messages:
    169
    Likes Received:
    77
    Reputations:
    4
    Не скачивается =) Приятно удивлен, девушко хэкер =)))

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

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    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;
    }
    ?>
     
    1 person likes this.
  11. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    $pock['0'] -> $pock[0]
     
    2 people like this.
  12. ~EviL~

    ~EviL~ Elder - Старейшина

    Joined:
    14 Aug 2007
    Messages:
    169
    Likes Received:
    77
    Reputations:
    4
    Я написал по-другому, но спасибо всем за помощь =)