你真的應該嘗試獲得的信息以JSON或XML格式代替,這既可以通過PHP本身解析。如果這是不可能的,你可以使用下面的代碼片段從字符串中獲取一個PHP數組。它使用regular expressions將字符串轉換爲JSON格式,然後使用json_decode對其進行解析。
當然應該改進以處理值等內的單引號,但這是一個開始。
$paypal_details = "array (
'last_name' => 'Savani',
'item_name' => 'Description and pricing details here.',
'item_number' => '101',
'custom' => 'localhost',
'period' => '1',
'amount' => '10.01'
)";
# Transform into JSON and parse into array
$array = json_decode(
preg_replace(
"/^\s*'(.*)' => '(.*)'/m", # Turn 'foo' => 'bar'
'"$1": "$2"', # into "foo": "bar"
preg_replace(
"/array \((.*)\)/s", # Turn array (...)
'{$1}', # into { ... }
$paypal_details
)
),
true
);
echo "Last name: " . $array["last_name"] . PHP_EOL;
輸出:
Last name: Savani
只有'的eval($ paypal_details)' – Mohammad
雖然'的eval()'會做什麼你問這一切是一個可怕的想法。它打開一英里寬的潛在安全漏洞。問題是:爲什麼你有這樣的情況?你不能避免這種情況嗎? – arkascha
我會嚴肅反對使用'eval()'來進行調試以外的任何其他操作。嘗試使用'爆炸()' – 2016-11-19 12:47:00