M
masto
Прохожие
так так и ввыводит.
может для ТС передача массива и строки Array одно и тоже
может для ТС передача массива и строки Array одно и тоже
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
$a = array(1,2,3,'txt',6);
$s = '';
foreach($a as $element) $s .= '|' . $element;
echo $s;
<input type=hidden name='postval'
value="<?=serialize($_POST)?>"
$arr = unserialize($_POST['postval']);
$_POST=array_merge($_POST, $arr);
<input type=hidden name='prevpost' value =
"<?=base64_encode(gzcompress(serialize($_POST)))?>"
....
<?
$str = $_POST['prevpost'];
$str = base64_decode($str);
$str = gzuncompress($str);
$arr = unserialize($str);
unset($_POST['prevpost']);
$_POST = array_merge($arr, $_POST);
[COLOR=#000000][COLOR=#0000bb]$a [/COLOR][COLOR=#007700]= array([/COLOR][COLOR=#0000bb]1[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]2[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]3[/COLOR][COLOR=#007700],[/COLOR][COLOR=#dd0000]'txt'[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]6[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000bb]$s [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]''[/COLOR][COLOR=#007700];
foreach([/COLOR][COLOR=#0000bb]$a [/COLOR][COLOR=#007700]as [/COLOR][COLOR=#0000bb]$element[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000bb]$s [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]'|' [/COLOR][COLOR=#007700]. [/COLOR][COLOR=#0000bb]$element[/COLOR][COLOR=#007700];
echo [/COLOR][COLOR=#0000bb]$s[/COLOR][COLOR=#007700]; [/COLOR][/COLOR]
[COLOR=#000000][COLOR=#0000bb]$a [/COLOR][COLOR=#007700]= array([/COLOR][COLOR=#0000bb]1[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]2[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]3[/COLOR][COLOR=#007700],[/COLOR][COLOR=#dd0000]'txt'[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]6[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#007700]echo implode('|',[/COLOR][COLOR=#0000bb]$a)[/COLOR][COLOR=#007700]; [/COLOR][/COLOR]
[COLOR=#000000][COLOR=#007700]$a = explode('|',[/COLOR][COLOR=#0000bb]$_POST['a'])[/COLOR][COLOR=#007700];[/COLOR][/COLOR]
Lonely Wolf написал(а):во-первых: зачем использовать gzcompress()/gzuncompress()?
venetu написал(а):Здесь используется еще gzcompress для уменьшения размера передаваемой строки (этого делать не обязательно)
Lonely Wolf написал(а):во-вторых: объеденение массива и строковой переменной не понятно
unserialize возвращает array, он мерджится с другим arrayvenetu написал(а):$arr = unserialize($_POST['postval']);
$_POST=array_merge($_POST, $arr);
Lonely Wolf написал(а):ну и как обычно в-третьих:
....
это делается проще так:
....
venetu написал(а):В php есть даже пара специальных функций - explode и implode - для преобразования массива в строку и обратно по такому вот алгоритму.
Блин, действительно же... Туплюecho не применимо к массивам.
А после выполнения скрипта $_POST не обнуляется?а также удаляется старое значение 'prevpost' из массива $_POST, чтоб оно там не накапливалось. Иначе если ты много раз будешь этот $_POST отправлять в форму, он у тебя с каждым разом будет содержать весь предыдущий массив + еще новые поля, т.е. фактически будет распухать в два раза после каждого сабмита.
А после выполнения скрипта $_POST не обнуляется?
<?php
$text = 'bla-bla-bla';
$var = 'text';
echo ${$var};// выводит bla-bla-bla
?>