PHP эхо автоматически заменяет «&» на «&» - PullRequest
2 голосов
/ 16 июля 2011

Я делаю функцию PHP, которая преобразует массив $ _GET в формат строки URL.

например, Array('key1'=>'value1', 'key2'=>'value2') преобразуется в: ?key1=value1&key2=value2

Я думаю, что функцияон делает свою работу правильно.Но когда я повторяю результат, на странице HTML все экземпляры "&" заменяются на "&".Таким образом, конверсия в браузере заканчивается на ?key1=value1&key2=value2.

Вот моя функция PHP:

/**
 *
 * @param Array $GETArray Pass in the associative $_GET array here.
 * @return string The $GETArray converted into ?key=value&key2=value2&... form. 
 */
function strGET($GETArray) {
    if (sizeof($GETArray) < 1) {
        return '';
    }

    $firstkey = key($GETArray);
    $firstvalue = $GETArray[$firstkey];

    $sofar = "?$firstkey=$firstvalue";

    array_shift($GETArray);

    foreach ($GETArray as $key => $value) {
        $sofar .= '&'."$key=$value";
    }
    return $sofar;
}

Ответы [ 2 ]

4 голосов
/ 16 июля 2011

Обходите ваш вопрос, но используйте http_build_query. Это именно так.

Кроме того, ваша функция ничего не скрывает в HTML. Равно как и PHP. Вы, должно быть, избегаете этого где-нибудь. Что, кстати, правильно. Амперсанды следует избегать.

0 голосов
/ 16 июля 2011

Вместо этого используйте функцию http://us.php.net/manual/en/function.http-build-query.php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...