关于多种功能类似的函数、变量的辨析

本文详细对比了urlencode与rawurlencode的功能及应用场合,并解析了htmlentities与htmlspecialchars的区别,特别指出它们在处理中文字符时的不同表现。

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

 

urlencode()和rawurlencode()的区别
 
 urlencode:返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码不同。
 
rawurlencode:功能和urlencode基本一样,采用的是RFC1738编码,因此空格会编码为%20。
 
  代码:
 
  echo 'sales and marketing/Miami';
  echo "<br>";
  echo rawurlencode('sales and marketing/Miami');
  echo "<br>";
  echo urlencode('sales and marketing/Miami');
显示:
sales and marketing/Miami
sales%20and%20marketing%2FMiami
sales+and+marketing%2FMiami
 
 
 
 $_SERVER['SCRIPT_NAME'] 跟 $_SERVER['PHP_SELF'']
 
通常在本机测试 $_SERVER['SCRIPT_NAME'] 跟 $_SERVER['PHP_SELF'] 大概看不出有什麼不同,因为大多的PHP不因此CGI模式运行的。PHP以 CGI 体式格局运行,二者就有明显不同的差异。 
echo $_SERVER['SCRIPT_NAME']; // (/cgi-system/php.cgi) 
echo $_SERVER['PHP_SELF']; // (/admin/test.php) 
但是在做一些URL拼合的历程中可能引发XSS跨站攻击。 
$PHP_SELF = htmlspecialchars($_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']); 
 
 
htmlentities和htmlspecialchars函数的区别
        这两个函数在格式化带有英文字符的html代码的时候基本没啥问题,但是htmlentities对中文字符也不放过,这样得出来的结果是中文字符部分变为一堆乱码
        htmlentities跟htmlspecialchars的功能类似,但是htmlentities是对所有HTML定义的entity都不放过,包括各种特殊字符和中文,这样得出来的结果是中文字符部分变为一堆乱码。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值