Sie versuchen wirklich sollten stattdessen die Informationen in JSON oder XML-Format zu erhalten, die sowohl nativ von PHP analysiert werden kann. Wenn das nicht möglich ist, können Sie das folgende Code-Snippet verwenden, um ein PHP-Array aus der Zeichenfolge zu erhalten. Es verwendet regular expressions, um die Zeichenfolge in JSON-Format umzuwandeln, und analysiert es anschließend unter Verwendung von json_decode.
Es sollten natürlich Verbesserungen vorgenommen werden, um flüchtige einfache Anführungszeichen in Werten usw. zu behandeln, aber es ist ein Anfang.
$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;
Ausgang:
Last name: Savani
Nur 'eval ($ paypal_details)' – Mohammad
Während 'eval()' tun würde, was Sie für all dies fragen eine schreckliche Idee. Es öffnet potenzielle Sicherheitslücken eine Meile weit. Die Frage ist: Warum haben Sie eine solche Situation? Kannst du das nicht vermeiden? – arkascha
Ich würde ernsthaft empfehlen, 'eval()' für alles andere als Debuggen zu verwenden. Versuchen Sie es mit 'explode()' –