【问题标题】:PHP echo automatically replaces "&" with "&"PHP echo 自动将“&”替换为“&”
【发布时间】:2011-10-06 17:52:26
【问题描述】:

我正在制作一个将 $_GET 数组转换为 URL 字符串格式的 PHP 函数..

例如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;
}

【问题讨论】:

  • 我想我们需要这个函数才能看到。基本上,除非明确告知,否则 PHP 不应自动格式化您的文本。
  • 谢谢,我已经在问题中添加了我的函数代码。
  • 标记中的符号应该是&amp;amp;。改变它是错误的。
  • 是的,您的代码看起来不错。我不明白为什么会这样。

标签: php html echo ampersand


【解决方案1】:

回避您的问题,但使用http_build_query。它正是这样做的。

此外,您的函数不会对任何内容进行 HTML 转义。 PHP 本身也没有。你一定是在某处逃离它。顺便说一句,这是正确的。 & 符号应该被转义。

【讨论】:

  • 谢谢,发现 PHP 为您编写了很多函数总是一件好事 :P .. 但回到我的问题,这实际上不是问题!这是我使用的代码检查器,哈哈。如果有兴趣,请参阅上面的问题 cmets..
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-14
  • 2014-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多