我正在尝试使用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" />
和其他字符集,但无济于事。
有什么想法吗?提前谢谢。
答案 0 :(得分:4)
只是一个想法:§符号可能会转换为url格式。首先尝试urldecode()字符串。
答案 1 :(得分:0)
我可能对此有误,但§
可能是一个unicode字符,PHP尚不支持。因此,从表单转移到脚本时可能会出现一些问题。
您是否尝试将其更改为更正常的东西?就像你做qwe|~|asd|~|zxc
而不是qwe|+~+|asd|+~+|zxc
,如果你关心某人会输入什么