Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在CodeIgniter中从URL中删除段_Php_Rewrite_Codeigniter 2 - Fatal编程技术网

Php 如何在CodeIgniter中从URL中删除段

Php 如何在CodeIgniter中从URL中删除段,php,rewrite,codeigniter-2,Php,Rewrite,Codeigniter 2,我的URL地址如下所示: /blog/topic/6/test 可以这样改变吗 /博客/主题/测试 我正在使用CodeIgniter 2.x是的,6只是GET参数-您可以使用POST 是的,当然可以:)但请解释一下,当你想改变到网址;您是否希望url/blog/topic/test等同于/blog/topic/6/test(这听起来有点奇怪,因为您可能无法识别正确的主题,除非test是唯一的名称),或者,您希望在有人通过请求您的url的第一个版本到达控制器后过滤掉该号码吗?在这种情况下,取决于u

我的URL地址如下所示:

/blog/topic/6/test

可以这样改变吗

/博客/主题/测试


我正在使用CodeIgniter 2.x是的,6只是GET参数-您可以使用POST

是的,当然可以:)但请解释一下,当你想改变到网址;您是否希望url
/blog/topic/test
等同于
/blog/topic/6/test
(这听起来有点奇怪,因为您可能无法识别正确的主题,除非
test
是唯一的名称),或者,您希望在有人通过请求您的url的第一个版本到达控制器后过滤掉该号码吗?在这种情况下,取决于url语法的严格程度,explode()或对regex函数的调用都会使我只想在url中隐藏id—在本例中是(6),但它可以是另一个数字。我还将它用作方法的参数,这个方法使用它。这里的问题是,您需要id来指定正确的帖子。因此,只有在字符串
test
是唯一标识符的情况下才能执行此操作,因此您可以从主题为的\u表中执行类似于
SELECT*的操作,或者如果您已将id保存在会话中。因为php可以做很多事情,但不能神奇地读懂用户的心思来获取所需的主题:)那么,如果“test”是主题标题,那么您就有机会了,但是您必须使标题独特,这在大多数情况下是不可取的。否则,为了让它看起来更甜美一点,你可以改变它们(标题和id);当你有像
这是我的博客帖子
这样的标题时,它会将其转换为
这是我的博客帖子
,将其保存在一个独特的mysql单元格中,并在需要时进行查找。当您有两个相同的标题时,您可以将这个slug(它的名称)转换为
this-is-my-blogpost-2
或类似的东西。想想你自己处理这种情况的逻辑。但是,如果您在数据库中添加一个新列,就可以做到这一点!