php字串變數組

來源:互聯網
上載者:User

  這篇不是討論split,explode的用法,而是探討一種特殊情況。

  舉例說明.

$array = array(2,'a'=>array('b'=>'c'));
//深度keys列表
$keys = array('a','b');
//值
$vals = 'x';

//問題是,如何根據$keys數組(動態),改動相應數組$array的值
//比如上述情況要求將$array['a']['b'] 的值由'c'改成'x'
//注意$keys是動態,也有可能是array('a','c','x','d'),這種情況就
//要求將$array['a']['c']['x']['d']設定為'x';

 

 

 乍一看,似乎很簡單,eval不就可以搞定了麼,確實,但是eval在很多伺服器都是嚴禁使用的,

 除去eval,不是還有preg_replace + e修正符麼,的確也可以,但是總是有一些安全上的擔憂,

 萬一給注入system/exec/shel_exec函數+系統命令豈不是和eval一樣危險?

 最終想到了parse_str,這個相對就安全不少。

 

$array = array(2,'a'=>array('b'=>'c'));
//深度keys列表
$keys = array('a','b');
//值
$vals = 'x';
//字串轉數組
parse_str('array['.implode('][',$keys).']='.$vals);

print_r($array);

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.