Вопрос

Я пытаюсь разделить текст в массив, используя взорвании, но по какой-то причине это не работает, когда текст исходит из опубликованной формы.

Если я бегу 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 () строку.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top