[?] Помогите разобраться со скриптом...

Тема в разделе "PHP", создана пользователем troll90945, 18 ноя 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. troll90945

    troll90945 Читатель

    Заблокирован
    Регистр.:
    29 фев 2008
    Сообщения:
    109
    Симпатии:
    47
    Не могу понять, где тут косяк в десятой строке... И всё тут...
    Все мозги уже вытекли... =)
    Код:
    <?php
    //Создаём массивы
    $array = file('file');
    $povtor[]=1;
    //задаём переменные.
    $e=1;
    $a=1;
    //делаем шаблон
    $p1="^([0-9a-z]+)([0-9a-z\.-_+=]+)@([0-9a-z\.-_]+)\.([0-9a-z]+):([a-zа-я0-9\.,-_])";
    $p2="^([0-9a-z]+)([0-9a-z\.-_+=]+)@([0-9a-z\.-_]+)\.([0-9a-z]+):([a-z0-9\.,-_])";
    
    //начало цыкла 
    foreach($array as $v)
    // сортируем на мусор.
    {  if (eregi($p1,$v)){ $r1=$v  ;}                                    
        Else {$str = "$v\n";
              $fo = fopen("file1","a++");
              fwrite($fo,$str);
              fclose($fo);
              Echo"мусор $a";
              $a++ }
    //цикл сравнения на повтор
       foreach($povtor as $k)
       {if($r1!=$k){ Echo"Повтор";}
       else{$9++}}
    
    //проверка языка пароля                         
       if(eregi($p2,$r1)){  $str = "$r1\n";
                            $fo = fopen("filer","a+");
                            fwrite($fo,$str);
                            fclose($fo);
                            Echo"$r1 Русский пароль <br>";
                            //добовления значения в масив в сверки 
                            $povtor[]=$r1  }
    else{$str = "$1\n";
          $fo = fopen("filee","a+");
          fwrite($fo,$str);
          fclose($fo);
          Echo"$r1 Русский пароль <br>";}
    //добовления значения в масив в сверки 
    $povtor[]=$r1             
    
    
                     
    $e++;}
    //
    echo"   $e  $e1;
    ?>
    
     
  2. DIAgen

    DIAgen Постоялец

    Регистр.:
    30 окт 2006
    Сообщения:
    134
    Симпатии:
    72
    В 10 строчке ошибок нет, а вот тут есть
    PHP:
    echo"   $e  $e1;
    думаю лучше будет так

    PHP:
    echo   $e $e1;
    и откуда взялась переменая $e1?
     
  3. Ceyce

    Ceyce Постоялец

    Регистр.:
    3 ноя 2008
    Сообщения:
    52
    Симпатии:
    51
    Вот это вот тогда думаю тоже стоит исправить:
    На это:
    А то какие нормальные программисты ставят переменные в кавычки?!:)
    те, которые знают, что в двойных кавычках переменные обрабатываются,
    а в одинарных - нет
     
  4. troll90945

    troll90945 Читатель

    Заблокирован
    Регистр.:
    29 фев 2008
    Сообщения:
    109
    Симпатии:
    47
    Я тут поковырялся немного...

    Получилось вот что... Но всё равно не завершает цикл...
    Идёт в бесконечность... =)

    Код:
    <?php
    //Создаём массивы
    $array = file('file');
    $povtor[]=1;
    //задаём переменные.
    $e=1;
    $e1=1;
    $e2=1;
    $e3=1;
    $a=1;
    //делаем шаблон
    $p1="^([0-9a-z]+)([0-9a-z\.-_+=]+)@([0-9a-z\.-_]+)\.([0-9a-z]+):([a-zа-я0-9\.,-_])";
    $p2="^([0-9a-z]+)([0-9a-z\.-_+=]+)@([0-9a-z\.-_]+)\.([0-9a-z]+):([а-я0-9\.,-_])";
    
    //начало цыкла 
    foreach($array as $v)
    // сортируем на мусор.
    {  if (eregi($p1,$v)){$r1=$v;}                                    
        Else {$str = "$v\n";
              $fo = fopen("file1","a+");
              fwrite($fo,$str);
              fclose($fo);
              Echo"мусор $a";
              $a++; 
    }
    //цикл сравнения на повтор
       foreach($povtor as $k)
       {if($r1!=$k){ $str = "$r1\n";
                     $fo = fopen("file1","a+");
                     fwrite($fo,$str);
                     fclose($fo);
                     $a++; 
                     Echo"1";}
         else{Echo"j";}
                  //проверка языка пароля                         
                  if(eregi($p2,$r1)){  $str = "$r1\n";
                            $fo = fopen("filer","a+");
                            fwrite($fo,$str);
                            fclose($fo);
                            Echo"$r1 Русский пароль <br>";
                            //добовления значения в масив в сверки 
                            $povtor[]=$r1; 
                            //с
                            $e1++;
                            $e2++;
                                  }
        
          else {$str = "$r1\n";
          $fo = fopen("filee","a+");
          fwrite($fo,$str);
          fclose($fo);
          Echo"$r1 Русский пароль <br>";
          //добовления значения в масив в сверки 
          $povtor[]=$r1; 
          //с
          $e1++;
          $e3++;  
    }          
                  
    $e++;}
    echo "Всего обработано $e  из них нормальных $e1 с русским паролям $e2 с англиским паролям $e3";
    ?>  
    
    
     
  5. rellikso

    rellikso Писатель

    Регистр.:
    3 ноя 2008
    Сообщения:
    5
    Симпатии:
    0
    Какой из циклов?...
    Если первый - проверь: мой редактор закрывающей скобки } не обнаружил...
    А вообще-то - структурируй код, плиз: и сам запутался...;)
     
  6. Liver

    Liver

    Регистр.:
    24 сен 2008
    Сообщения:
    316
    Симпатии:
    91
    Пройдись один раз дебагом и сам сразу найдешь
     
  7. troll90945

    troll90945 Читатель

    Заблокирован
    Регистр.:
    29 фев 2008
    Сообщения:
    109
    Симпатии:
    47
    Дописал скрипт всё работает. только остался один вопрос
    где я допустил ошибку в шаблонах. он у меня не хочет записи с русскими буквами раскидывать по разным файлам.
    Подскажите где косяк????
    Код:
    <?php
    //Создаём массивы
    $array = file('file');
    $povtor[]=9;
    //задаём переменные.
    
    //делаем шаблон
    $habloh1="^([0-9a-z\.-_+=]+)([0-9a-z\.-_+=]+)@([0-9a-z\-_]+)\.([0-9a-z]+):([a-zа-я0-9\.,-_])";
    $habloh2="^([0-9a-z\.-_+=]+)([0-9a-z\.-_+=]+)@([0-9a-z\-_]+)\.([0-9a-z]+):([а-я0-9\.,-_])";
    $habloh3="^([0-9a-z\.-_+=]+)([0-9a-z\.-_+=]+)@([0-9a-z\-_]+)\.([ru]+):([a-zа-я0-9\.,-_])";
    $habloh4="^([0-9a-z\.-_+=]+)([0-9a-z\.-_+=]+)@([0-9a-z\-_]+)\.([com]+):([a-zа-я0-9\.,-_])";
    $habloh5="^([0-9a-z\.-_+=]+)([0-9a-z\.-_+=]+)@([0-9a-z\-_]+)\.([by]+):([a-zа-я0-9\.,-_])";
    $habloh6="^([0-9a-z\.-_+=]+)([0-9a-z\.-_+=]+)@([0-9a-z\-_]+)\.([ua]+):([a-zа-я0-9\.,-_])";
    $habloh7="^([0-9a-z\.-_+=]+)([0-9a-z\.-_+=]+)@([0-9a-z\-_]+)\.([net]+):([a-zа-я0-9\.,-_])";
    //начало цыкла 
    foreach($array as $v)
    // сортируем на мусор.
    {   if (eregi($habloh1,$v)){$str = "$v";
                                $fo = fopen("nemysor","a+");
                                fwrite($fo,$str);
                                fclose($fo);
                               }                                    
        Else {$str = "$v";
              $fo = fopen("mysor","a+");
              fwrite($fo,$str);
              fclose($fo);
              $a++; 
    }}
    echo"Сортировка на мусор окончена <br> мусорных $a <br>"; 
    echo" начало сверки на повтор <br>";
    
    $str = "$a";
    $fo = fopen("good","a+");
    fwrite($fo,$str);
    fclose($fo);
    $array1[]=$good;
    
    $array = file('nemysor');
    foreach($array as $v1)
           {$p=0;
            $array1= file('good'); 
             if(in_array($v1,$array1)){$pov=$v1;
                                       $str = "$pov";
                                       $fo = fopen("pov","a+");
                                       fwrite($fo,$str);
                                       fclose($fo);}
                                        
              else {$good=$v1;
                   $str = "$good";
                   $fo = fopen("good","a+");
                   fwrite($fo,$str);
                   fclose($fo);
                   $array1[]=$good;
                   $q++;}
    }
    
       
    
       //$bezpovtopa[]=$nepovtor;
       //$p++;}
    
    $array = file('good');
    foreach($array as $v1)
    {if (eregi($habloh2,$v1)) {if (eregi($habloh3,$v1)){$v1;
                              $str = "$v1";
                              $fo = fopen("ru1","a+");
                              fwrite($fo,$str);
                              fclose($fo);
                               $d1++ ; }
    else{if (eregi($habloh4,$v1)){$v1;
                              $str = "$v1";
                              $fo = fopen("com1","a+");
                              fwrite($fo,$str);
                              fclose($fo);
                                 $d2++;}
    else{if (eregi($habloh5,$v1)){$v1;
                              $str = "$v1";
                              $fo = fopen("bu1","a+");
                              fwrite($fo,$str);
                              fclose($fo);
                                 $d3++;}
    else{if (eregi($habloh6,$v1)){$v1;
                              $str = "$v1";
                              $fo = fopen("ua1","a+");
                              fwrite($fo,$str);
                              fclose($fo);
                                  $d4++;}
    else{if (eregi($habloh7,$v1)){$v1;
                              $str = "$v1";
                              $fo = fopen("de1","a+");
                              fwrite($fo,$str);
                              fclose($fo);
                                $d5++;}
    
    else{$v1;
          $str = "$v1";
          $fo = fopen("perebrat","a+");
          fwrite($fo,$str);
          fclose($fo);
             $d6++;}}}}}}
    else{ if (eregi($habloh3,$v1)){$v1;
                              $str = "$v1";
                              $fo = fopen("ru","a+");
                              fwrite($fo,$str);
                              fclose($fo);
                               $d1++ ; }
    else{if (eregi($habloh4,$v1)){$v1;
                              $str = "$v1";
                              $fo = fopen("com","a+");
                              fwrite($fo,$str);
                              fclose($fo);
                                 $d2++;}
    else{if (eregi($habloh5,$v1)){$v1;
                              $str = "$v1";
                              $fo = fopen("bu","a+");
                              fwrite($fo,$str);
                              fclose($fo);
                                 $d3++;}
    else{if (eregi($habloh6,$v1)){$v1;
                              $str = "$v1";
                              $fo = fopen("ua","a+");
                              fwrite($fo,$str);
                              fclose($fo);
                                  $d4++;}
    else{if (eregi($habloh7,$v1)){$v1;
                              $str = "$v1";
                              $fo = fopen("de","a+");
                              fwrite($fo,$str);
                              fclose($fo);
                                $d5++;}
    
    else{$v1;
          $str = "$v1";
          $fo = fopen("perebrat","a+");
          fwrite($fo,$str);
          fclose($fo);
             $d6++;}}}}}} }
    //if( is_fale('file')){echo"ок";}
    //else{echo"!!!!!";}
    
    
    
    echo "всего $q  из них RU $d1 COM $d2 BU $d3 UA $d4 NET$d5 непонятных $d6";
    echo"завершение";
    $fd=fopen("file","w+");
    
    ?>
    
    Если кто сможет подсказать как упростить код буду очень рад. а то сильно грузит сервер.
     
Статус темы:
Закрыта.