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

    +172

    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
    <?php
    	
    	( ( (float)phpversion() < 5.3 ) ) ? die ( 'fail amigo.' ) : '';
    	
    	$site = file_get_contents( "http://www.google.com.br/search?hl=pt-BR&q=VBXMCBVFKJSHDKHDKF" );
    
    	$getLocationViaGoogle = function ( $html ){
    		$regex = "#<\w+\s\w+=\"tbos\">([^<]{3,})<\/\w+>#i";
    		preg_match_all( $regex, $html, $matches );
    		return $matches[1][0];
    	};
    	
    	print $getLocationViaGoogle( $site );
    	
    ?>

    Вообще пиздец, определяет местоположение, сканировав страницу гугля и вырезав заданное ручками пользователем местоположение.

    Запостил: Yurik, 24 Ноября 2010

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

    • 03 и 05 строчки убивают ...

      автор наверное суровый яваскриптер ...
      Ответить
    • Еще не понятно, зачем здесь использова РНР 5.3
      Ответить
      • Потому что автор объявил ниже анонимную функцию getLocationViaGoogle.
        "PHP имеет встроенную поддержку замыканий начиная с версии 5.3"
        Ответить
        • Хотя умирать на несвежих версиях PHP, только из-за того что автору нравится такой стиль объявления функции - это fail amigo.
          Ответить
    • бразилия... где так много диких обезьян...
      Ответить
    • file_get_contents (((((( (ну очень грустно)
      Ответить
      • объясните что именно грустно
        Ответить
        • >it loads the whole file in main memory first
          >As a general rule, use file_get_contents()(or -replacement) only when you are sure the file to be loaded is small.
          В интернете вообще для таких целей предлагают использовать cURL.
          Вообще, весь этот код непонятный страшный костыль, вот статья, метод для определения местоположения только с помощью JS. Сейчас многие браузеры поддерживают: http://robertnyman.com/2010/03/15/geolocation-in-web-browsers-to-find-location-google-maps-examples/
          Ответить
          • Вообще file_get_contents всегда будет кушать меньше памяти, если надо просто прочитать файл любого размера в память, для последующей обработки. А писалось не про то что file_get_contents плохо работает с большими файлами, а про то что подход с загрузкой всего контента в память сам по себе неправильный и надо использовать, например, fread, который хоть и работает медленнее, но может секономить память, если им правильно пользоваться.
            А по поводу cURL, недавно пришлось переписать XMLRPC клиент с cURL на file_get_contents, потому что последний безбожно глючит под виндой. Так, что не стоит верить всему что пишут в интернетах.
            Ответить
            • вы еще дос вспомните.
              Ответить
            • это вы очень удачно в интернет написали.
              Ответить
            • пришлось переписать XMLRPC клиент с cURL на file_get_contents, потому что последний безбожно глючит
              wmmorgun, похоже, Вас тоже безбожно глючит.
              Ответить
        • Грустно получение файла с помощью file_get_contents по URL со стороннего сайта. Обязательно нужно объяснять почему?
          Ответить
          • Объясните, интересно послушать… Особенно если использовать контекст. А его тут можно использовать, потому что он появился в 5.0, а для этого скрипта минимальные требования аж 5.3 :)
            Ответить
    • Говнокод тут заключается ещё в том, что на PHP версии меньше 5.3 он вылетает с Parse error.
      Так что: epic fail, amigo
      Ответить
      • я бы рекомендовал такой autoprepend:

        if (version_compare(PHP_VERSION, '10.0.0', '<')) {
        die 'i do not let u degrade, please go study C ';
        }
        Ответить
    • хм, вобщето самый сок не в коде, а в том, что местоположение определяется по адресу сервера, а не юзера )
      Ответить
      • Точно! Если это в PHP, то глупый запрос на Гугл отправит сервер, а не браузер.
        Код найдёт на странице
        <li class="tbos">какое-то-там-расположение</li>
        и возвратит расположение сервера.

        Кстати, его можно обмануть. Разместить на своей странице текст VBXMCBVFKJSHDKHDKF и код типа
        <pre><li class="tbos">планета Марс</li></pre>
        Если Гугл нашу страницу проиндексирует, будет весело.
        Ответить
        • P.S. govnokod.ru, pastebin.com и snipplr.com уже проиндексированы
          ?????
          PROFIT!!!
          Ответить
        • Да нет, если раскрыть панель гугля слева, там есть поле: … – искать поблизости
          Туда можно ввести адрес. Этот код выдирает адрес именно оттуда, так что наша страничка не при чем.
          Ответить
        • >Разместить на своей странице текст VBXMCBVFKJSHDKHDKF и код типа
          Бессмыслено. Возвращается первое совпадение, а левый столбец найдется раньше.
          Ответить
    • - Не знаю, Лёка, не знаю. Почему это с нами произошло...
      Ответить

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