如何在Codeigniter中解码url_title()函数?

时间:2016-02-06 13:36:03

标签: php codeigniter

在使用url_title()并传递给url后,我将返回uri段。我尝试使用rawurldecode()但不完美。例如,我有

$a = 'Handhone -Charger -Handsfree -Kabel data -Buku panduan -Kartu Garansi ';

我用url_title($a);传递给url,结果没问题

  

Handhone0D0A-Charger0D0A-Handsfree0D0A-KABEL-data0D0A-布裤-panduan0D0A-Kartu-Garansi白金

我尝试使用rawurldecode($this->uri->segment(10)) 结果:

  

Handhone0D0A Charger0D0A Handsfree0D0A Kabel data0D0A Buku panduan0D0A Kartu Garansi Platinum

我想:

  

Handhone Charger Handsfree Kabel dat Buku panduan Kartu Garansi Platinum

我是怎么做到的? CodeIgniter中是否有可用的功能?

1 个答案:

答案 0 :(得分:2)

如果你想要一个在编码/解码后略有不同的字符串,即没有连字符和换行符,你应该在进行任何编码之前首先从那些字符串中删除字符串。所以有三个步骤:

1。清洁

使用preg_replace,您可以删除换行符和连字符,如下所示:

$a = preg_replace('/\s+\-/s', ' ', trim($a));

$ a 的值现在是干净的:

  

手机充电器免提Kabel数据Buku panduan Kartu Garansi

2。编码

不使用url_title($a),而是使用PHP原生函数 urlencode 在网址上传递 $ a

urlencode($a)

网址上的值为:

  

Handhone +充电器+免提+ KABEL +数据+布裤+ panduan + Kartu + Garansi

+符号代表空格,它们可以很好地转换回第三步:

3。解码

使用此程序,您需要使用 urldecode ,而不是 rawurldecode

urldecode($this->uri->segment(10))

这给出了:

  

手机充电器免提Kabel数据Buku panduan Kartu Garansi