开发者

get the array with html array path

hey, i have this path name from an input element interesse[angebote][flurfuerderfahrzeuge] as a string in my php var. now i need con开发者_开发技巧vert it somehow (with regex or explode()) so it looks like this: $_POST['interesse']['angebote']['flurfuerderfahrzeuge'] and the use eval() to get the value. But I'm sure there must be a much easier way do this. Any ideas? Thanks!


eval() is evil(). And there are some faster options to avoid it in this case.

If you just want to convert the syntax, then I have a regex:

  $name = '$' . preg_replace("/\[([^\]]+)\]/", '["$1"]', $path);

If your input string not only contains the path, but also an value (attach a dummy value if you must), then you can just use parse_str() to extract the array names into a real PHP array:

  $path = "whatever[subname][deepnesting]=1";
  parse_str($path, $as_var);
  print_r($as_var);

Tell something more about your input data.


Okay, just figured out what you mean. You want to submerge in the $_POST array. Then use step-wise references like so:

$path = "xxxx[yyyy][zzzz]";
$ref = & $_POST;

preg_match_all("/\w+/", $path, $uu);
foreach ($uu[0] as $subname) {
   $ref = & $ref[$subname];
}

print_r($ref);   // = $_POST[xxxx][yyyy][zzzz]


ok i know its simple but i looks so ugly, thats what i use now:

    $path = 'interesse[angebote][flurfuerderfahrzeuge]';
    $post_var = '$_POST['.str_replace(']]', ']', str_replace('[', '][', $path));
    eval('$value = '.$post_var.';');
    echo $value;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜