PHP Codeigniter-函数中传递的urlencode在url中删除.html

PHP Codeigniter-函数中传递的urlencode在url中删除.html,php,codeigniter,codeigniter-3,urlencode,urldecode,Php,Codeigniter,Codeigniter 3,Urlencode,Urldecode,URl:/optimization/page/%2Flove-your-body-club.html中的值是正确的 但是当我在函数中的给定变量中收集url时,会删除.html function($url){ $urlDecoded = urldecode($url); 我已经尝试回显编码和解码的值,但仍然缺少.html 因为我在codeigniter中使用了page suffix.html作为默认值,所以它似乎将其作为传递变量的一部分来读取 任何解决方法?假设您在application/con

URl:/optimization/page/%2Flove-your-body-club.html中的值是正确的

但是当我在函数中的给定变量中收集url时,会删除.html

function($url){
$urlDecoded = urldecode($url);
我已经尝试回显编码和解码的值,但仍然缺少.html

因为我在codeigniter中使用了page suffix.html作为默认值,所以它似乎将其作为传递变量的一部分来读取


任何解决方法?

假设您在
application/config/config.php
中将
url\u后缀
配置设置为
.html
,您只需修改函数,将
url\u后缀
始终附加到输入字符串

试试这个:

function($url) {
    $urlDecoded = urldecode($url . $this->config->item('url_suffix'));
}
我可能会创建一个助手函数,您可以在应用程序中的任何地方调用它,可以称之为
myurldecode($url)

因此在
application/helpers/my_helper.php中
add

<?php

function myurldecode($url) {
    $CI =& get_instance();
    return urldecode($url . $CI->config->item('url_suffix'))
}

如果我将字符串
'/optimization/page/%2Love your body club.html'
传递给
urldecode()
,则返回值为
'/optimization/page//love your body club.html'
。所以我的猜测是,
$url
的值不是你想象的那样。我的问题是,你为什么要强迫CodeIgniter(一个PHP框架)提供html文件?它的设计目的是为视图提供.php文件,并使用指向控制器/方法/参数的URI。问题是它不显示实际的html文件。它用于从DB收集这些URL的数据。我有一个数据库(实际上是多个数据库)可以收集URL上的数据,这里的函数本身就是一个页面,在仪表板上提供这些数据。因此,函数本身被设计为从许多不同的表和数据库收集数据,因此需要基于Url进行操作,因为这些数据库和表除了实际Url之外没有其他关系
$autoload['helper'] = array('my_helper');