文字列を受信しています
a=100,b=20,c=20;
たとえば、区切り文字として、を使用してこれを配列に分解することを知っています。
a=100
b=20
c=20
文字列として、
これをphp内の変数としてさらに評価して、私ができるようにするにはどうすればよいですか?
echo $a //100
echo $b //20
echo $c //20
文字列を受信しています
a=100,b=20,c=20;
たとえば、区切り文字として、を使用してこれを配列に分解することを知っています。
a=100
b=20
c=20
文字列として、
これをphp内の変数としてさらに評価して、私ができるようにするにはどうすればよいですか?
echo $a //100
echo $b //20
echo $c //20
関数「parse_str」を試してください。
$str = str_replace(',','&',"a=100,b=10,c=20");
parse_str($str);
echo $a;
echo $b;
echo $c;
$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;
乾杯
すべてをどの程度「危険」にするかによって異なります。evalはいつでも使用できますが、考慮すべき問題がたくさんあります。
例:
eval("\$str = \"test\";");
echo $str;
これを試して
$input = 'a=100,b=20,c=20';
$items = explode(',',$input);
foreach($items as $i){
$pair = explode('=',$i);
$$pair[0] = $pair[1];
}
$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
変数には変数名を使用できます。たとえば、次のとおりです。
$var = 'var2';
$$var = 5;
echo $var2;
これにより、コマンド ラインに 5 がエコーされます。
$var
であると評価されvar2
、$var2
5 に設定されます。
コードを取得して、これを作成できます。
$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' をエコーします。