【问题标题】:Codeigniter spaces in urlurl 中的 Codeigniter 空格
【发布时间】:2018-02-19 11:41:51
【问题描述】:

我有一个按类别返回所有工作的方法。 问题是当我在类别名称中有空格时。我如何访问这些结果?

例如,如果我访问 http://localhost/management_system/Job/get_jobs_by_cat/Architecture,它将返回 Architecture 类别中的所有作业。

但是当我尝试访问类别 Information Technology 时,我无法在我的网址中添加 spaces,所以我尝试使用 _ -,但没有得到任何响应。

我该如何解决这个问题?

【问题讨论】:

标签: php codeigniter url


【解决方案1】:

您可能希望使用urldecode() 来解码处理此逻辑的控制器函数中的url 参数。在您的控制器中,执行以下操作:

$jobCat = urldecode($this->uri->segment(4));

然后,您会将$jobCat 传递给您的模型。

这里有一些其他 Stack Overflow 链接可能对您的事业有所帮助。

How to pass parameters with space to controller from URL in codeigniter?

Php - Codeigniter url spaces

what is the use of $this->uri->segment(3) in codeigniter pagination

【讨论】:

  • 使用 urlencode 当我必须在名称中使用 / 对类别进行编码时,我遇到了一些问题,例如 Accounting / Finance 变为 Accounting+%2F+Finance 这给了我一个休闲错误 Object not found!在此服务器上找不到请求的 URL。引用页面上的链接似乎是错误的或过时的。请将该错误通知该页面的作者。如果您认为这是服务器错误,请联系网站管理员。
  • @TerchilăMarian 该错误很可能是因为它是正斜杠 (/)。正斜杠使它认为 URL 中有另一个段。您可能需要以某种方式在输出中替换它。
  • 所以如果我想做它,我必须用别的东西替换/?只有这样?
  • @TerchilăMarian 您可能要在routes.php 或.htaccess 文件中调整路线以获得所需的结果,而无需替换任何内容。
【解决方案2】:

你需要对Information Technology进行URL编码。

$category = 'Information Technology';
$encodedCategory = rawurlencode($category);
$url = 'http://localhost/management_system/Job/get_jobs_by_cat/' . $encodedCategory;

echo $url;
// http://localhost/management_system/Job/get_jobs_by_cat/Information%20Technology

【讨论】:

  • 使用 urlencode 当我必须在名称中使用 / 对类别进行编码时,我遇到了一些问题,前会计 / 财务变成了 Accounting+%2F+Finance,这给了我一个休闲错误 Object not found!在此服务器上找不到请求的 URL。引用页面上的链接似乎是错误的或过时的。请将该错误通知该页面的作者。如果您认为这是服务器错误,请联系网站管理员。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-05
  • 1970-01-01
  • 1970-01-01
  • 2011-07-09
  • 2017-10-18
  • 2022-12-10
相关资源
最近更新 更多