Проблемы при попытке взорвать строку - PullRequest
0 голосов
/ 01 октября 2010

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

Если я запускаю 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" /> и другие кодировки, но безрезультатно.

Есть идеи?Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 01 октября 2010

Просто идея: знак §, вероятно, будет преобразован в формат URL. Попробуйте urldecode () сначала строку.

0 голосов
/ 01 октября 2010

Возможно, я ошибаюсь в этом, но § может быть символом юникода, который PHP пока не поддерживает. Таким образом, могут возникнуть некоторые проблемы при переносе из формы в скрипт.

Вы пытались изменить его на что-то более ... нормальное? Например, если вы сделали qwe|~|asd|~|zxc вместо этого, или, может быть, qwe|+~+|asd|+~+|zxc, если вас беспокоит, что кто-то введет

...