[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. Billar

    Billar Banned

    Joined:
    9 Jul 2012
    Messages:
    15
    Likes Received:
    5
    Reputations:
    5
    PHP:
    $string "/turyi/goryi-gujli";
    if (
    preg_match("|\/turyi\/|"$string)) echo "+";
    if (
    strstr($string"/turyi/")) echo "+";
     
  2. G383G

    G383G New Member

    Joined:
    23 Oct 2012
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    Выходит ошибка

    Добрый вечер не подскажите ошибку где я допустил
    PHP:
    <?php
    $date
    =date("H");
    switch (
    $date){
        case 
    7:
        case 
    8:
        case 
    9:
        case 
    10:
        case 
    11:
        case 
    12:

    echo 
    "Сейча утро";
    break;
        case 
    13:
        case 
    14:
        case 
    15:
        case 
    16:
        case 
    17:
        case 
    18:

    echo 
    "Сейчас день";
    break;
        case 
    19:
        case 
    20:
        case 
    21:
        case 
    22:
        case 
    23:
        case 
    0:

    echo 
    "Сейчас вечер"
    break;
        case 
    1:
        case 
    2:
        case 
    3:
        case 
    4:
        case 
    5:
        case 
    6:

    echo 
    "Сейчас ночь";
    break;
    }



    ?>
     
  3. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    G383G, строка 29
    PHP:
    echo "Сейчас вечер"
     
  4. G383G

    G383G New Member

    Joined:
    23 Oct 2012
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    AnGeI
    спасибо а я уже начал читать мануал про оператор switch
     
  5. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,520
    Likes Received:
    401
    Reputations:
    196
    Скажите в чем у меня может быть ошибка в скрипте.

    PHP:
    set_time_limit(0);


    $file 'main.txt';
    $out fopen('out.txt''w+');
    $used fopen('used.txt''w+');
    $trash fopen('trash.txt''r');
    $data fopen($file'r');
                        
                            while(!
    feof($trash)){
                                
    $trashstring trim(fgets($trash));
                                    while(!
    feof($data)){
                                        
    $freshstring trim(fgets($data));
                                        if(
    preg_match('~'.$trashstring.'~'$freshstring)){
                                            
    fwrite($used$freshstring);
                                        }else{
                                            
    fwrite($out$freshstring);
                                        }
                                    }
                            }
        


    fclose($out);
    fclose($used);
    fclose($trash);
    fclose($data);
    exit(
    'done');


    Скрипт читает построчно файл trash.txt и проверяет есть ли такая строка в main.txt. Если есть, то записывает эту строку в used.txt, а если нет, то в out.txt. Но скрипт не находит совпадений, хотя они есть, я вручную проверял. Почему так?
     
  6. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    Я в пыхе нулевой, но зачем юзать регулярки? Не проще так:
    if ($trashstring == $freshstring) {...
     
  7. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,520
    Likes Received:
    401
    Reputations:
    196
    потому что строка не обязательно может быть идентичной и в моем случае это так.
     
  8. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    http://php.net/manual/ru/function.stristr.php
     
  9. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    То есть возможен разный регистр? Если да, то тогда, думаю, что вот так будет правильно:
    PHP:
    <?php
     set_time_limit
    (0); 


    $file 'main.txt'
    $out fopen('out.txt''wb'); 
    $used fopen('used.txt''wb'); 
    $trash fopen('trash.txt''rb'); 
    $data fopen($file'rb'); 
                         
                            while(!
    feof($trash)){ 
                                
    $trashstring trim(fgets($trash)); 
                                    while(!
    feof($data)){ 
                                        
    $freshstring trim(fgets($data)); 
                                        if(
    preg_match('~^'.$trashstring.'$~i'$freshstring)){ 
                                            
    fwrite($used$freshstring."\r\n"); 
                                            break;
                                        }else{ 
                                            
    fwrite($out$freshstring."\r\n");
                                            break;
                                        } 
                                    } 
                            } 
         


    fclose($out); 
    fclose($used); 
    fclose($trash); 
    fclose($data); 
    exit(
    'done'); 
     
  10. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Зачем регулярки для таких целей =\
     
  11. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,520
    Likes Received:
    401
    Reputations:
    196
    Не в этом дело. Когда я просто брал совпадающую строку, запускал поиск по целевому файлу , то все прекрасно находилось. А с двумя циклами почему-то не находит.
     
  12. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    помогите с регуляркой!
    Вопчем из всего хлама задача определить файл со строками вида:
    Хэш:[соль]:пароль.

    соль может быть так и не быть, соответсвенно хэши могут быть любого формата.
     
  13. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    -=lebed=-
    PHP:
    preg_match_all('~^([^:]+):?([^:]*):([^:]+)$~msi'$in$out);
     
    _________________________
    #21153 Gifts, 26 Oct 2012
    Last edited: 26 Oct 2012
    1 person likes this.
  14. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Угу, гуд, попробую, а как собственно теперь отобрать из $out только пароль?
    Я вот думаю разбить строку explode (":", string) ( и взять последний элемент массива (там пароль должен оказаться), но будет косяк если сам пароль содержит двоеточие! Регуляркой можно сделать это?
    Code:
    0987230948709870987:Yg(соль)h$:pass1
    0987230948709870987:pass2
    0987230948709870987:pas:s3 - пароль содержащий двоеточие. 
    
    :confused:
     
  15. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    Отправляю форме POST запрос где значение login и password равно shadowrun, а условие всеравно выполняется...
    PHP:
    <?php
        
    if ($_SERVER['REQUEST_METHOD'] == 'POST'){
            
    $login $_POST['login'];
            
    $pass $_POST['password'];
            if ((
    $login != "shadowrun") or ($password != "shadowrun")){
                
    printf('
                        <html>
                        <body style="background:#000; margin:0px;">
                        <p style="font-size:30em; padding:0px; margin:0px; color:#f00;"> ХУЙ! </p>
                        </body>
                        </html>
                        '
    );
                        
            }    
        }
    ?>
    UPD: ОЛОЛО затупил :D
     
    #21155 shadowrun, 26 Oct 2012
    Last edited: 26 Oct 2012
  16. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    http://forum.insidepro.com/download.php?id=647 скачиваю браузнром - получаю текстовый файл, качаю php - получаю хрень - в чём проблема?
    PHP:
    <?PHP $f_1=fopen("http://forum.insidepro.com/download.php?id=647","r");
    if (!
    $f_1) {echo "id=".$i." - not found, skiped!\r\n";}
    $h=fgets ($f_1); echo $h."\r\n";
    ?>
    нужно получить именно тот файл (в частности 1 строчку).
     
  17. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    917
    Likes Received:
    492
    Reputations:
    724
    Sorry but you are not authorized to view or download this Attachment
     
    _________________________
  18. Expl0ited

    Expl0ited Members of Antichat

    Joined:
    16 Jul 2010
    Messages:
    1,035
    Likes Received:
    534
    Reputations:
    935
    Там нужна авторизация
     
    _________________________
  19. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    917
    Likes Received:
    492
    Reputations:
    724
    Накидал по быстрому, за работоспособность не ручаюсь, ибо в баню тороплюсь.
    PHP:
    <?php
    error_reporting
    (E_ALL);
    ini_set('display_errors'true);
    ini_set('error_reporting',  E_ALL);
    function 
    auth($user,$pass){
            
    $data "do=login&username=$user&password=$pass&redirect=&login=Log+in"
        
    $cookie '';
        
    $ch curl_init(); 
        
    curl_setopt($chCURLOPT_URL"http://forum.insidepro.com/index.php");
        
    curl_setopt($chCURLOPT_COOKIE,$cookie);
        
    curl_setopt($chCURLOPT_COOKIEFILE"cookie.txt");
        
    curl_setopt($chCURLOPT_COOKIEJAR"cookie.txt"); 
        
    curl_setopt($chCURLOPT_NOBODYfalse); //не выводить тело ответа
        
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue); //вернуть ответ, а не вывести
        
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20120716 Firefox/15.0a2");
        
    curl_setopt($chCURLOPT_REFERER'http://forum.insidepro.com/login.php');
        
    curl_setopt($chCURLOPT_POST1); 
        
    curl_setopt($chCURLOPT_POSTFIELDS,$data);  
        
    $store curl_exec ($ch); 
        
    curl_close($ch); 
        
    $pos strpos($store"Log out"); 
        if (
    $pos === FALSE) { 
          return 
    0
        } else { 
          return 
    1
        } 
      } 
    function 
    getContent($url){
        
    $ch curl_init(); 
        
    curl_setopt($chCURLOPT_URL$url);
        
    curl_setopt($chCURLOPT_COOKIEFILE"cookie.txt"); 
        
    curl_setopt($chCURLOPT_NOBODYfalse);
        
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
        
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20120716 Firefox/15.0a2");
        
    curl_setopt($chCURLOPT_REFERER'http://forum.insidepro.com/index.php');
        
    $data curl_exec ($ch); 
        
    curl_close($ch);
    return 
    $data;    
    }
     if(
    auth('-=lebed=-','PASSWORD')){
        
    $data getContent('http://forum.insidepro.com/download.php?id=647');
        
    $all explode (' ',$data);
        echo 
    $all[0];
     }
     else{
        die(
    "Ошибка при авторизации");
     }

    ?>

     
    _________________________
    #21159 VY_CMa, 27 Oct 2012
    Last edited: 27 Oct 2012
    1 person likes this.
  20. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Вот блин, сразу не догадался - где то нужна, а где то нет - без авторизации скачивается.

    2 VY_CMa спасибо, но надо без курл.
     
    #21160 -=lebed=-, 27 Oct 2012
    Last edited: 27 Oct 2012
Thread Status:
Not open for further replies.