0

文字列を受信して​​います

a=100,b=20,c=20;

たとえば、区切り文字として、を使用してこれを配列に分解することを知っています。

a=100
b=20
c=20 

文字列として、

これをphp内の変数としてさらに評価して、私ができるようにするにはどうすればよいですか?

echo $a //100
echo $b //20
echo $c //20
4

6 に答える 6

2

関数「parse_str」を試してください。

$str = str_replace(',','&',"a=100,b=10,c=20");
parse_str($str);
echo $a;
echo $b;
echo $c;
于 2012-05-08T08:57:08.927 に答える
1
$string = 'a=1,b=20,c=43';
foreach ( explode(',', $string) as $expression ) {
    list($variable,$value) = explode('=', $expression);
    $$variable = $value;
}
echo 'a = ', $a, ' and b = ', $b, ' and c = ', $c, PHP_EOL;

乾杯

于 2012-05-08T08:55:19.753 に答える
0

すべてをどの程度「危険」にするかによって異なります。evalはいつでも使用できますが、考慮すべき問題がたくさんあります。

例:

eval("\$str = \"test\";");
echo $str;
于 2012-05-08T08:54:40.287 に答える
0

これを試して

$input = 'a=100,b=20,c=20';
$items = explode(',',$input);

foreach($items as $i){
  $pair = explode('=',$i);
  $$pair[0] = $pair[1];
}
于 2012-05-08T08:54:49.917 に答える
0
$input = 'a=100,b=20,c=20';

$statements = explode (',', $input);

foreach ($statements as $s)
  eval ('$' . $s); // THIS IS EVIL!!!! TOO MANY SECURITY PROBLEMS


echo $a; // will output 100
echo $b; // will output 20
echo $c; // will output 20
于 2012-05-08T08:55:53.950 に答える
0

変数には変数名を使用できます。たとえば、次のとおりです。

$var = 'var2';
$$var = 5;
echo $var2;

これにより、コマンド ラインに 5 がエコーされます。

$varであると評価されvar2$var25 に設定されます。

コードを取得して、これを作成できます。

$string = 'a=100,b=20,c=20';
$array = explode(',',$string);
foreach($array as $element) {
     $temp = explode('=',$element);
     $$temp[0] = $temp1;
}
echo $a.' '.$b.' '.$c;

これは文字列 '100 20 20' をエコーし​​ます。

于 2012-05-08T08:59:29.207 に答える