1

我的脚本中的特殊字符有问题:

这是我到目前为止所拥有的:

$curlstrip = explode("&", $data);
$filename = substr(htmlEntities($curlstrip[5]), 2);

如果$data包含任何特殊字符,例如'',那么我不会得到我需要的字符串块,而是只得到第一部分。一个更详细的例子:

$data = "12er&sdsretdgsd&file=Chris ' 19 &blabla"

该脚本将在 Chris as 之后读取 ''并将$curlstrip[5]具有不同的值。

希望已经足够清晰了。

乐。按照这个例子:

$data = "12er&sdsretdgsd&file=Chris ' 19 &blabla"
$curlstrip = explode("&", $data);
$curlstrip[0] = '12er';
$curlstrip[1] = 'sdsretdgsd';

$curlstrip[2] = 'file=Chris' instead of 'file=Chris ' 19'

那是因为 ' 被读作

'

谢谢,

克里斯蒂安。

4

2 回答 2

1

尝试:

$curlstrip = explode("&", html_entity_decode($data));
$filename = substr(htmlEntities($curlstrip[5]), 2);

由于我无法根据提供的代码复制您的错误,因此我有一个预感:

$data=str_replace("'","'", $data);
$curlstrip = explode("&", html_entity_decode($data));
$filename = substr(htmlEntities($curlstrip[5]), 2);

如果由于某种原因,您在 $data 中相邻出现了 && (两个 & 符号),它将干扰爆炸功能。

于 2010-11-01T16:49:38.723 回答
0

使 htmlentities 成为您调用数据的最后一件事。

$filename = htmlentities(substr($curlstrip[5], 2));

除此之外,还有一些功能可以处理您正在做的事情。parse_str将从查询字符串创建一个数组。parse_url可用于从 url 中提取查询字符串。

于 2010-11-01T16:21:19.453 回答