【问题标题】:%20 is added instead of spaces添加 %20 而不是空格
【发布时间】:2013-03-18 11:24:14
【问题描述】:

我想这是一个小问题,但我不得不在这里问,因为我的项目不够用。当我将字符串传递给另一个控制器中的函数时,它会将空格更改为 %20 符号。我猜控制器认为字符串作为 url 传递并对其进行编码。但我不确切知道如何删除它,或者如果可能的话不要让它将空格更改为 %20。这是我使用的代码;

$message="The user name you provided is already in our database";
redirect('admin/add_user/'.$message);

这是我接收消息的控制器功能;

public function add_user($message)
{
  echo $message;
}

我也试过这个;

public function add_user()
{
  echo $this->uri->segment(3);
}

但结果是一样的。这是字符串的输出;

The%20user%20name%20you%20provided%20is%20already%20in%20our%20database

【问题讨论】:

    标签: codeigniter urlencode urldecode


    【解决方案1】:

    试试这个:

    public function add_user($message)
    {
      echo urldecode($message);
    }
    

    您可以在此处阅读有关 urldecode 的更多信息:http://php.net/manual/en/function.urldecode.php

    【讨论】:

      【解决方案2】:

      试试这个:

      echo urldecode($message);
      

      因为您将消息作为 URL 的一部分传递(重定向执行新的 http 请求),所以它会自动进行 url 编码。服务器接收到后,你只需要解码即可。

      【讨论】:

        【解决方案3】:

        保存到数据库时使用:

        htmlentities($variable)
        

        输出时使用:

        echo html_entity_decode($variable, ENT_COMPAT, 'UTF-8');
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-05-04
          • 2019-11-01
          • 1970-01-01
          • 2012-03-21
          • 2016-04-25
          • 2013-04-11
          相关资源
          最近更新 更多