簡體   English   中英

PHP解析逗號分隔的變量=值對列表

[英]php parsing comma separated list of var=value pairs

我收到一個字符串

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'。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM