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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    <?
    $str = ""; 
    $amp="";
    foreach ($p as $i=>$v)
    {
             $str .= $amp."$i=$v";
             $amp = "&";
    }
    ?>

    Запостил: xXx_totalwar, 15 Января 2010

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

    • А какой Ваш вариант?
      Ответить
      • foreach ($p as $i=>$v) $str .= "$i=$v&";

        какая разница сколько амперсандов в конце ?
        Ответить
    • http_build_query ?
      Ответить
    • Ну из "веселых" вариантов
      $p = array_walk($p, create_function('&$v,$i','$v="$i=$v";'));
      $str = implode($p, '&');

      :D
      Правда не знаю, что будет говнокодистей

      ну а ваще канеша как написал добрый аноним выше http_build_query
      Ответить
      • $str = implode(array_walk($p, create_function('&$v,$i','$v="$i=$v";')) , '&');

        те же мтс-ы, но чуть пакруче будет :) в профиль ибо :)
        Ответить
    • Да херня это все, а не говнокод, особенно если учесть, что длина URL, регламентированная стандартом HTTP, составляет 256 символов, т.е. не больше 100 лишних операций присваивания (в общем случаи я думаю не больше 10), если учесть, что работа производится с память, то это все мелочи, ну можно было конечно через if на пустую строку сделать, но все равно это МЕЛОЧИ
      Ответить
      • угу мелочь
        особенно если есть внешний цикл
        for($i=0; $i<99999999999999999999999999; ++$i)
        Ответить
      • Таварисч, короче у соседа!

        сматри сюда :) - www.boutell.com/newfaq/misc/urllength.html

        самый короткий у микрософта :) всего 2К...
        Ответить
        • показать все, что скрытоЯ то про стандарты говорю, а не про возможности броузеров)
          Ответить
          • Стой-стой-стой.

            Пытался в рфц вычитать, но не нашел нигде, чтобы стандарт ограничивал длину урла, или ури хотя бы...

            Подскажешь, какой именно стандарт и в каком месте?
            А то без фактов выходит :)
            Ответить
      • >>длина URL, регламентированная стандартом HTTP, составляет 256 символов

        что за бред?
        RFC 2068 секция 3.2.1, дословный перевод:
        Серверы должны быть осторожны с URI, которые имеют длину более 255 байтов, потому что некоторые старые клиенты или прокси-сервера не могут правильно поддерживать эти длины.
        ни слова про лимитирование нет

        RFC 1738 - Uniform Resource Locators (URL) - ни слова про лимитирование нет
        Ответить
        • google chrome позволяет ввести в браузерную строку чуть более чем 3000 символов )))
          Ответить
          • а опера более 190 000
            но разговор был про неверное толкование стандарта
            Ответить
            • Да это я так к слову))) На нормальных серверах стоит ограничение, к примеру на моем серве больше 1000 символов если отправляешь с помощью get то получаешь предупреждение и скрипт даже не выполняется!
              Ответить
    • <?php
      foreach($p AS $i => $v)
        $p[$i] = $i.'='.$v;
      echo implode('&',$p);
      ?>
      Ответить

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