Проблемы, пытающиеся взорвать строку
Вопрос
Я пытаюсь разделить текст в массив, используя взорвании, но по какой-то причине это не работает, когда текст исходит из опубликованной формы.
Если я бегу explode('|§|', 'qwe|§|asd|§|zxc');
Я получу массив, как:
Array
(
[0] => qwe
[1] => asd
[2] => zxc
)
НО
Если этот входной текст поступает из формы, как:
<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 и что текст в поле «Запрос» был изменен каким-либо образом, но я не могу понять, как исправить. Я пробовал настроить <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />
и другие чарсеты, но безрезультатно.
Есть идеи? Заранее спасибо.
Решение
Я, наверное, ошибаюсь на этом, но §
Может быть символ Unicode, который PHP еще не поддерживает. Таким образом, могут быть некоторые проблемы при передаче из формы в скрипт.
Вы пытались изменить его на что-то большее ... нормально? Как если бы вы сделали qwe|~|asd|~|zxc
вместо этого или, может быть qwe|+~+|asd|+~+|zxc
Если вы беспокоитесь о том, что кто-то вступил
Другие советы
Просто идея: знак §, вероятно, преобразуется в формат URL. Попробуйте сначала reldecode () строку.