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

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

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

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

    Joined:
    7 Aug 2007
    Messages:
    108
    Likes Received:
    48
    Reputations:
    -1
    Doom123, будешь работать над серьезными проектами - поймешь
     
    1 person likes this.
  2. m0nsieur

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

    Joined:
    8 Apr 2008
    Messages:
    223
    Likes Received:
    69
    Reputations:
    10
    Почитай - http://habrahabr.ru/blog/php/40012.html#habracut
    Возможно найдешь ответ на свой вопрос.
     
    1 person likes this.
  3. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    народ, на что проверяется имя файла подскажите плиз, а то не нашол описания функции ereg()

    PHP:
    if (!ereg("^[[:alnum:]_\.-]+$"$_REQUEST['filename']))
                die(
    "internal error: bad filename");
     
  4. zythar

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

    Joined:
    16 Feb 2008
    Messages:
    517
    Likes Received:
    109
    Reputations:
    5
    врешь (*
    http://php.net/manual/en/function.ereg.php
     
  5. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    йа смарю на php.su, там не нашол

    ну это ясно, а вот регулярные выражения это для меня лес, только вот не пойму я имя файла ваще написал короче некуда asd.exe, все равно пишет что неправильно
     
    #2745 Корвин, 17 Apr 2008
    Last edited: 17 Apr 2008
  6. zythar

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

    Joined:
    16 Feb 2008
    Messages:
    517
    Likes Received:
    109
    Reputations:
    5
    кажись проверяет на то чтобы там небыло цифр, знака подчеркивания, знака минуса и точки. или наоборот чтобы в имени файла были только цифры, знак подчеркивания, точка и минус

    да и собстенно курение манов функции ereg ничего нормального тебе не даст (* тебе нужно регулярки учить
     
    #2746 zythar, 17 Apr 2008
    Last edited: 17 Apr 2008
  7. Sleep

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

    Joined:
    31 Oct 2007
    Messages:
    274
    Likes Received:
    65
    Reputations:
    4
    2Корвин
    не должен начинатся на цифры,буквы нижнего и верхнего регистра и символоы -.
     
  8. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3

    эээ, это точно?? тогда на что файлу начинаца?)))))
     
  9. ZET36

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

    Joined:
    8 Oct 2007
    Messages:
    250
    Likes Received:
    49
    Reputations:
    0
    мне кажется, простите если ошибаюсь что скрипт проверяет что бы в имени файла небыло всех цифр ,слеша точки и подчоркивания. тоесть что бы файл прошол эту фильтрацию он должен выглядеть вот так iudfsg и он должен быть без разширения так как точка тоже фильтруется в этом скрипте
     
    #2749 ZET36, 17 Apr 2008
    Last edited: 17 Apr 2008
  10. Sleep

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

    Joined:
    31 Oct 2007
    Messages:
    274
    Likes Received:
    65
    Reputations:
    4
    PHP:
    $test "test123123";
     if (!
    ereg("^[[:alnum:]_\.-]+$"$test)) die ("internal error: bad filename");
     else
     echo 
    "GOOD";
    скрипт выдасат гуд,а заместо вывода гуд могло бы быть каое нибудь другое действие например загрузка етого файла ты выложи кусок кода побольше
    тоесть if (!ereg("^[[:alnum:]_\.-]+$", $test)) die ("internal error: bad filename"); етот кусок кода проверяет файл чтобы он не нызывался на A-z9-0 -.
    если ето так тоеть если файл не называется на a-Z0-9
    то он выводит фразу : internal error: bad filename типо что имя файла не правильное
     
    #2750 Sleep, 17 Apr 2008
    Last edited: 17 Apr 2008
  11. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    сделал вот такую херню:
    PHP:
    $content '<a class=red href="text.phtml?storycode=18451">[дальше]</a>56546546<a class=red href="text.phtml?storycode=18452">[дальше]</a>56546546<a class=red href="text.phtml?storycode=18452">[дальше]</a>';
    preg_match_all("<b>(.+?)<\/b>\s:\s(.+?)\s.*?storycode=(\d+)",  $content,   $outPREG_PATTERN_ORDER);
    получаю

    Warning: preg_match_all() [function.preg-match-all]: Unknown modifier '(' in ...

    Помогите исправить регулярку, пожалуйста
     
  12. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    Вообще, именно для этой регулярки:

    PHP:
    preg_match_all("/<b>(.+?)<\/b>\s:\s(.+?)\s.*?storycode=(\d+)/i",  $content,   $outPREG_PATTERN_ORDER);
    Но что конкретно получить из строки надо? Просто такая регулярка не парсит строку из примера
     
  13. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    это пиздец какой-то...

    ^[[:alnum:]_\.-]+$
    ^ - начало строки (а никакое не отрицание!)
    $ - конец строки
    + - количество символов из скобок от 1
    [:alnum:] - все буквы и цифры
    _\.- - нижнее подчеркивание, точка и дефис

    мда

    2 #2799

    структура условного оператора такая:
    if(){} else {}
    а не
    if(){};else {}
     
    #2753 Piflit, 17 Apr 2008
    Last edited: 17 Apr 2008
    1 person likes this.
  14. Buffalon

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

    Joined:
    22 Mar 2008
    Messages:
    241
    Likes Received:
    34
    Reputations:
    8
    Piflit
    НАпиши топЕГ про регулярки... .ЧТо бы было меньше вопросов((ведь сам всё видишью(ЧТо да как и почём)))... .ПОнимаю что в инете тем море но всё таки... .Извините за спам... .
     
  15. SeGaLWS

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

    Joined:
    13 Jan 2008
    Messages:
    38
    Likes Received:
    8
    Reputations:
    0
    Я не сомниваюсь в твоих познаниях в php но у else есть 2 варианта написания, точнее их не 2 а больше но бы имеем в данный момент 2 из них.
    1 это то что вот тут ^^^^^^^
    2 вот так:
    if(условие)
    действо1;
    else
    действо2;
    PS: всеравно те + )

    Так что то что там написано не if(){};else {}
    а if(){;}else {}
    ЗЫ: Всеравно те +
     
    #2755 SeGaLWS, 17 Apr 2008
    Last edited: 17 Apr 2008
  16. Noiro

    Noiro Banned

    Joined:
    1 Jan 2008
    Messages:
    47
    Likes Received:
    16
    Reputations:
    5
    Немного оффтоп, но вообще там просто два случая есть. Когда ^ используется в начале класса символов, то он означает именно отрицание, т.е. [^\w] означает любой символ, не являющийся \w
     
  17. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    SeGaLWS вариант, о котором написал я, гораздо более распространен

    к чему этот пост?
     
  18. truelamer

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

    Joined:
    6 Nov 2007
    Messages:
    135
    Likes Received:
    30
    Reputations:
    5
    Помогите, не могу правильно передать http заголовки чтоб залогиниться... на gz.sko.kz

    <?php
    $host="gz.sko.kz";
    $path="/login.aspx?ReturnUrl=%2fDefault.aspx";

    $fp=fsockopen($host,80,$errno,$errstr,30);

    if(!$fp)
    {
    echo $errno." ".$errstr; exit;
    }
    $data='UserName=pars&Password=7777777\r\n\r\n';

    $header.="POST ".$path." HTTP/1.1\r\n";
    $header.="Host: ".$host."\r\n";
    $header.="Content-type: application/x-www-form-urlencoded\r\n";
    $header.="Content-Length: ".strlen($data)."\r\n\r\n";
    $header.='UserName=pars&Password=7777777\r\n\r\n';

    echo $header;

    fwrite($fp, $header);

    while(!feof($fp))
    {
    $line.=fgets($fp,1024);
    }
    fclose($fp);

    echo $line;
    ?>
     
  19. Noiro

    Noiro Banned

    Joined:
    1 Jan 2008
    Messages:
    47
    Likes Received:
    16
    Reputations:
    5
    Code:
    $data='UserName=pars&Password=7777777';
    Попробуй так, завершающие переносы строк вообще-то в длину не входят
    Code:
    $header.="UserName=pars&Password=7777777\r\n\r\n";
    Кавычки нужны двойные, '\r\n' != "\r\n"
     
  20. truelamer

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

    Joined:
    6 Nov 2007
    Messages:
    135
    Likes Received:
    30
    Reputations:
    5
    на самом деле там переменные вида name="loginbox3$Password", но как ни бьюсь не пашет ни чего
     
Thread Status:
Not open for further replies.