1. PHP / Говнокод #2670

    +157.7

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    <?php 
    //fsockopen, fputs.. 
    
    $content = ""; 
    $header = "not yet"; 
    
    while( !feof( $pointer ) ) { 
        $line = fgets( $pointer, 128 ); 
        if( $line == "\r\n" && $header == "not yet" ) { 
            $header = "passed"; 
        } 
        if( $header == "passed" ) { 
            $content .= $line; 
        } 
    } 
    
    //fclose.. 
    
    echo( substr( $content, 2 ) ); 
    ?>

    По просьбе знакомого. Я в этом мало чего понимаю :)

    Запостил: Cr@ZyBoY, 25 Февраля 2010

    Комментарии (18) RSS

    • что за хуита?!
      Ответить
      • Выводит содержимое файла после пустой строки.

        Не знаю, кто заплюсовал, но кроме мелкой оптимизации говнокода не увидел.
        Ответить
        • Но судя по //fsockopen вытягивает html страницу и выводит содержимое, отбрасывая заголовки
          Ответить
        • > кроме мелкой оптимизации говнокода не увидел
          можно было бы вообще одной строчкой обойтись (file_get_contents) и не заморачиваться
          Ответить
          • Можно было вообще в браузере открыть и не заморачиваться :)

            А как с помощью file_get_contents отправить POST данные или залоговки?
            Ответить
            • никак
              да и нужно ли оно, когда аналог пишется за минуту
              Ответить
              • Аналог чего? Вы ведь не знаете откуда этот код.

                Возможно это получение страницы через GET, то тогда да, достаточно file_get_contents. Если надо передать POST данные, то можно использовать curl, но он может быть отключен или нужно передать данные не по стандарту. Да и для file_get_contents должна быть включена соответствующая опция в настройках, чтобы тянуть внешние данные. А может это вообще учебный пример (похоже взят с php.net, там тоже используется чтение по 128 байт)

                Перед нами есть код без всяких комментариев (кроме, что мопед не мой, я просто разместил объяву) и в нем ничего нет говнистого, кроме мелкой оптимизации: я бы $header сделал boolean, потом исключил бы первую строку и сразу выводил, не используя $content
                Ответить
            • Да легко - маны читать надо! http://php.net/manual/en/context.http.php
              Ответить
              • Отстал немного, в четверке не было. Но еще должно быть в настройках разрешено получение внешних данных.
                Ответить
      • :) неужели тут что-то сложное написано
        Ответить
    • сильно...
      скачать весь файл, и вернуть из него 2 первых символа...
      Ответить
      • Не два первых, а пропустить два первых, т.е. "\r\n", но их можно было в цикле исключить
        Ответить
    • :) а вдруг будет два подрят /n/r ... Б.А.Г.
      Ответить
      • Не баг, контент от заголовка отделяется одной пустой строкой. А в контенте может быть все что угодно, может начинаться с перевода строки или нескольких переводов строк
        Ответить
    • Там второй должен был быть не if а elseif...
      Ответить
    • В первом же ифе можно было $content .= $line
      Ответить

    Добавить комментарий