Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Parse_str и русский текст
 
 автор: OLi   (11.05.2014 в 18:01)   письмо автору
 
 

Имеется код:
parse_str($this->input->post('formData'),$array);
$_POST['message'] = $array['message'];


Массив на выходе от parse_str:
Array ( [subject] => ллллллллл [message;] => оииили )


Вставляется точка с запятой почему-то только для русского текста..и после parse_str - в массиве нет значения message

  Ответить  
 
 автор: confirm   (12.05.2014 в 06:58)   письмо автору
 
   для: OLi   (11.05.2014 в 18:01)
 

parse_str разбирает строку URL, то есть, если она у вас содержит ошибки, то и результат разбора будет их содержать.

<?
$a 
'subject=ллллллллл&message=оииили';
mb_parse_str($a$a);
print_r($a);
?>
Array
(
    [subject] => ллллллллл
    [message] => оииили
)

  Ответить  
 
 автор: OLi   (12.05.2014 в 19:04)   письмо автору
 
   для: confirm   (12.05.2014 в 06:58)
 

А как же быть с POST? Функция только с GET работает

  Ответить  
 
 автор: confirm   (12.05.2014 в 19:27)   письмо автору
 
   для: OLi   (12.05.2014 в 19:04)
 

Функция разбирает строку, и если таковую передать элементов POST массива, то и она будет обработана (в примере с вашими данными вообще не затрагивается откуда...)
А вот непосредственно массивы, то есть тип Array она не обрабатывает. Да и зачем это нужно, я лично не понимаю.

  Ответить  
 
 автор: OLi   (12.05.2014 в 19:54)   письмо автору
 
   для: confirm   (12.05.2014 в 19:27)
 

Если форма имеет несколько полей с одинаковым именем - тогда приходится обрабатывать как массив - если сериализовать

  Ответить  
 
 автор: confirm   (12.05.2014 в 20:06)   письмо автору
 
   для: OLi   (12.05.2014 в 19:54)
 

Форма может иметь массу одинаковых имен, но только на разных уровнях вложения, а может и не иметь таковых, но и в том и другом случае это массив.
Серелизовать массив, чтобы потом опять его извлечь, это для чего?

  Ответить  
 
 автор: OLi   (17.05.2014 в 01:12)   письмо автору
 
   для: confirm   (12.05.2014 в 20:06)
 

Вопрос тот же...искажает имена полей форм:
Форма HTML:

<input type="checkbox" value="19" name="type[]"><label for="164932274476.1485">Aliev</label></div></li><li> <input type="checkbox" value="2" name="type[]">


PHP вывод:
parse_str($_POST['formData'], $arrData);
        var_dump($arrData); die();



Результат:
array(5) {
  ["type"]=>
  array(1) {
    [0]=>
    string(2) "19"
  }
  ["type;"]=>
  array(2) {
    [0]=>
    string(1) "2"
    [1]=>
    string(1) "3"
  }

  Ответить  
 
 автор: confirm   (17.05.2014 в 06:16)   письмо автору
 
   для: OLi   (17.05.2014 в 01:12)
 

Вы в руководство РНР заглядываете или нет? parse_str не разбирает массивы, она разбирает строки. Достучаться до элементов массива, это работать с массивом.

<?
var_dump
($_POST['type']);


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

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования