thinkphp开发总结(一)——url乱码和匹配域名

本文总结了在ThinkPHP开发过程中遇到的URL乱码问题及其解决办法,以及如何在系统中仅显示URL的域名部分。对于URL乱码,尝试了一次和二次URL编码来解决控制器接收中文title的问题。在实际应用中,需要从完整的URL中提取域名,文中给出了实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ps:更新旧文章

一、url乱码问题

实例:

$eve['url']="/demo/home/eve/index/title/".''.$k['title'];

控制器中:

$title=$_GET['title'];

但是,有一些中文title会出现url乱码问题,尝试对title进行url编码;

$eve['url']="/demo/home/eve/index/title/".''.urlencode($k['title']);

控制器中进行url解码:

$title=urldecode($_GET['title']);

结果还是跟之前一样,该乱码的还是乱码了,url一乱码,控制器也就接收不到title。
最后对title进行二次url编码,网上找到的资料是说一次编码不够彻底:

$eve['url']="/demo/home/eve/index/title/".''.urlencode(urlencode($k['title']));

二、显示域名

在实际开发中,数据库存的是该篇文章的整个url,但是系统呈现出来只需要显示该url的前半部分即可;
如:http://news.sina.com.cn/c/2017-04-15/doc-ifyeifqx5858211.shtml
它只需要news.sina.com.cn
方法:

/*
 * 获取域名
 */
function get_domain($url){
    preg_match("/^(http(s?):\/\/)?([^\/]+)/i",$url, $res);
    $host = $res[3];
    return $host;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值