试图爆炸字符串的问题

时间:2010-09-30 20:34:41

标签: php forms post explode

我正在尝试使用explode将文本拆分为数组,但由于某些原因,当文本来自已发布的表单时,该文本无效。

如果我运行explode('|§|', 'qwe|§|asd|§|zxc');,我会得到一个类似的数组:

Array  
(  
    [0] => qwe  
    [1] => asd  
    [2] => zxc  
)  

BUT

如果此输入文本来自定义如下的表单:

<form method="post">
Input: <input type="text" name="query" size="50" value="qwe|§|asd|§|zxc"><input type="submit" value="Parse">
</form>

我得到以下数组:

Array  
(  
    [0] => qwe|§|asd|§|zxc  
)  

我猜这与iso设置有关,并且'query'字段中的文本已经以某种方式被更改,但我无法理解如何修复。我试过设置<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />和其他字符集,但无济于事。

有什么想法吗?提前谢谢。

2 个答案:

答案 0 :(得分:4)

只是一个想法:§符号可能会转换为url格式。首先尝试urldecode()字符串。

答案 1 :(得分:0)

我可能对此有误,但§可能是一个unicode字符,PHP尚不支持。因此,从表单转移到脚本时可能会出现一些问题。

您是否尝试将其更改为更正常的东西?就像你做qwe|~|asd|~|zxc而不是qwe|+~+|asd|+~+|zxc,如果你关心某人会输入什么