PHP 检查字符串编码后的获取请求
PHP check get request for string after its been encoded
我需要复制将 >
转换为 Â Â >Â Â
的方法。
我定义了一个常量,用作子类别和父类别之间的分隔符。
define('CATEGORY_SEPERATOR', ' > ')
//(常量可能不同)
$sql .= "GROUP_CONCAT(c.name ORDER BY c.level SEPARATOR "'" . CATEGORY_SEPERATOR ."'") AS name
可能的结果是
row = array(
'name => category1 > category2
)
类别随后显示为 links
的列表
<li><a href="www.example.com/categories?&name=<?php echo $row['name'];?>"><?php echo $row['name'];?></a></li>
当 link 被点击时,URL 被编码。
地址栏:`www.example.com/categories?name=category1 > category2
我希望能够检查 CATEGORY_SEPERATOR
是否存在于 $_GET['name']
中。所以我可以执行
$name = $_GET['name'];
$categories = explode(CATEGORY_SEPERATOR, $name);
但是当 $_GET['name']
到达我的脚本时,它的甜菜已经变质了。
$_GET['name']
初值
var_dump : string 'category1Â Â >Â Â category2' (length=27)
stripslashes()
后(无变化)
var_dump : string 'category1Â Â >Â Â category2' (length=27)
之后 htmlspecialchars($data, ENT_COMPAT, 'UTF-8');
var_dump : string 'category1Â Â >Â Â category2' (length=30)
现在我通过执行以下操作稍微扭转了它
$_GET['name'] = htmlspecialchars_decode($_GET['name'], ENT_COMPAT);
if(ini_get('magic_quotes_gpc')){
$_GET['name'] = addcslashes($_GET['name']);
}
但还是需要从
获取
category1Â Â >Â Â category2
到 >
我试过使用 urldeocde 和 rawurldecode,但没有成功。
反转用于编码的过程将起作用,但不幸的是,在客户端(浏览器)的某个地方,数据在发送到服务器之前正在 changed/corrupted。
这些是对应函数的列表。
我需要复制将 >
转换为 Â Â >Â Â
的方法。
我定义了一个常量,用作子类别和父类别之间的分隔符。
define('CATEGORY_SEPERATOR', ' > ')
//(常量可能不同)
$sql .= "GROUP_CONCAT(c.name ORDER BY c.level SEPARATOR "'" . CATEGORY_SEPERATOR ."'") AS name
可能的结果是
row = array(
'name => category1 > category2
)
类别随后显示为 links
的列表<li><a href="www.example.com/categories?&name=<?php echo $row['name'];?>"><?php echo $row['name'];?></a></li>
当 link 被点击时,URL 被编码。
地址栏:`www.example.com/categories?name=category1 > category2
我希望能够检查 CATEGORY_SEPERATOR
是否存在于 $_GET['name']
中。所以我可以执行
$name = $_GET['name'];
$categories = explode(CATEGORY_SEPERATOR, $name);
但是当 $_GET['name']
到达我的脚本时,它的甜菜已经变质了。
$_GET['name']
初值
var_dump : string 'category1Â Â >Â Â category2' (length=27)
stripslashes()
后(无变化)
var_dump : string 'category1Â Â >Â Â category2' (length=27)
之后 htmlspecialchars($data, ENT_COMPAT, 'UTF-8');
var_dump : string 'category1Â Â >Â Â category2' (length=30)
现在我通过执行以下操作稍微扭转了它
$_GET['name'] = htmlspecialchars_decode($_GET['name'], ENT_COMPAT);
if(ini_get('magic_quotes_gpc')){
$_GET['name'] = addcslashes($_GET['name']);
}
但还是需要从
获取category1Â Â >Â Â category2
到 >
我试过使用 urldeocde 和 rawurldecode,但没有成功。
反转用于编码的过程将起作用,但不幸的是,在客户端(浏览器)的某个地方,数据在发送到服务器之前正在 changed/corrupted。
这些是对应函数的列表。