![](/img/trans.png)
[英]How does the function arguments “array”, “string” and “boolean” work in PHP?
[英]php function arguments in string to array
我有繩子
$argsInString = '"%s hello", \'%s world\', $foo->bar("anything", array(\'foo\' => 5 , \'bar\' => $a)),5, foo($s) ,$foo';
我想這樣轉換為數組:
$argsInArray = array('"%s hello"', '\'%s world\'', '$foo->bar("anything", array(\'foo\' => 5 , \'bar\' => $a))', '5', 'foo($s)', '$foo');
我嘗試這樣的事情:
eval('$argsInArray = array(' . $argsInString . ');');
但這執行變量。
您能幫我如何從$ argsInString創建$ argsInArray嗎?
編輯:如果成功編寫了一個正則表達式,該正則表達式將在字符串中使用單引號(')覆蓋各個參數,則如上所述進行eval工作。
或者您可以編寫正則表達式preg_match_all('...',$ argsInString,$ argsInArray); 這是最好的。
這是一個正則表達式,適用於這樣的示例:
/(?: ?)([^,]*\(.*?\)|.+?)(?: ?)(?:,|$)/
在此處解釋演示: http : //regex101.com/r/hK6nN0
更新:
也可以匹配包含的單引號和雙引號字符串,
例如:
"%s, hello", \\'%s, world\\', 5
/(?: ?)([^,]*\\(.*?\\)|[^,]*'[^']*'|[^,]*"[^"]*"|.+?)(?: ?)(?:,|$)/
在此處解釋演示: http : //regex101.com/r/tD3cN9
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.