Быстрый вариант вопросаНеверный перевод строки NVP в массив ..?
Я пытаюсь взять строку, как это ...
BUTTONSOURCE[18]=AngellEYE_PHPClass&VERBOSITY[4]=HIGH&USER[6]=tester
и превратить его в этом для целей лесозаготовок ...
BUTTONSOURCE[18]=AngellEYE_PHPClass
VERBOSITY[4]=HIGH
USER[6]=tester
Детальный вариант вопроса
Я знаю AYS использовали эту функцию, чтобы преобразовать строку НВП в массив без каких-либо проблем ...
function NVPToArray($NVPString)
{
$proArray = array();
while(strlen($NVPString))
{
// name
$keypos= strpos($NVPString,'=');
$keyval = substr($NVPString,0,$keypos);
// value
$valuepos = strpos($NVPString,'&') ? strpos($NVPString,'&'): strlen($NVPString);
$valval = substr($NVPString,$keypos+1,$valuepos-$keypos-1);
// decoding the respose
$proArray[$keyval] = urldecode($valval);
$NVPString = substr($NVPString,$valuepos+1,strlen($NVPString));
}
return $proArray;
}
Я вытащил откуда-то давным-давно, и я использовал его до сих пор. Теперь, однако, я работаю с строкой NVP, которая включает [x] значения в именах параметров, чтобы показать значение lengh. Например,
BUTTONSOURCE[18]=AngellEYE_PHPClass&VERBOSITY[4]=HIGH...
Когда я запускаю строку подобного в моей функции, хотя, [] 's вызывают его, чтобы увидеть его в качестве индекса массива, и я в конечном итоге с массивом, как это .. .
Array
(
[BUTTONSOURCE] => Array
(
[18] => AngellEYE_PHPClass
)
[VERBOSITY] => Array
(
[4] => HIGH
)
Итак, если я попробовать что-то вроде этого ...
foreach($string_data_array as $var => $val)
{
$string_data_indiv .= $var.'='.$val.chr(13);
}
Я в конечном итоге с «массив для преобразования строки» PHP Обратите внимание и мой результат выглядит следующим образом ...
BUTTONSOURCE=Array
VERBOSITY=Array
То, что я пытаюсь закончить, - это хороший разрыв строки NVP, по одной строке за раз. Так это то, что я ожидал ...
BUTTONSOURCE[18]=AngellEYE_PHPClass
VERBOSITY[4]=HIGH
я могу идти об этом сумасшедшем пути, который может быть намного проще, но я никогда не имел никаких проблем с таким родом вещей, пока я не начал работать с строкой NVP, которая включает в себя количество символов, подобное этому.
Любая информация о том, как я могу решить эту проблему, была бы весьма признательна. Благодаря!
Вы обновили ваш PHP версии? У меня нет проблем с PHP5.5. – Debflav
В настоящее время я работаю 5.5.12 –
Каков формат шрифта? Почему бы просто не сопоставить все, что вам нужно, с 'preg_match_all()'? –