<?php
function get_string_between($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start); if ($ini == 0) return "";
$len = strpos($string,$end,$ini) - $ini; return substr($string,$ini,$len); }
$original = "'foo, bar', ['name' => 'John, Smith' , 'anotherKey' => 'another value']";
$str = get_string_between($original, "'", "'");
$arr = get_string_between($original, "[", "]");
?>
PD9waHAKZnVuY3Rpb24gZ2V0X3N0cmluZ19iZXR3ZWVuKCRzdHJpbmcsICRzdGFydCwgJGVuZCl7CiAgICAkc3RyaW5nID0gIiAiLiRzdHJpbmc7CiAgICAkaW5pID0gc3RycG9zKCRzdHJpbmcsJHN0YXJ0KTsKICAgIGlmICgkaW5pID09IDApIHJldHVybiAiIjsKICAgICRpbmkgKz0gc3RybGVuKCRzdGFydCk7CiAgICAkbGVuID0gc3RycG9zKCRzdHJpbmcsJGVuZCwkaW5pKSAtICRpbmk7CiAgICByZXR1cm4gc3Vic3RyKCRzdHJpbmcsJGluaSwkbGVuKTsKfQoKJG9yaWdpbmFsID0gIidmb28sIGJhcicsIFsnbmFtZScgPT4gJ0pvaG4sIFNtaXRoJyAsICdhbm90aGVyS2V5JyA9PiAnYW5vdGhlciB2YWx1ZSddIjsKJHN0ciA9IGdldF9zdHJpbmdfYmV0d2Vlbigkb3JpZ2luYWwsICInIiwgIiciKTsKJGFyciA9IGdldF9zdHJpbmdfYmV0d2Vlbigkb3JpZ2luYWwsICJbIiwgIl0iKTsKJGFyciA9IGpzb25fZGVjb2RlKHN0cl9yZXBsYWNlKCcgPT4gJywnOicsc3RyX3JlcGxhY2UoJ1wnJywnIicsJ3snLiRhcnIuJ30nKSksIHRydWUpOwp2YXJfZHVtcCgkc3RyKTsKcHJpbnRfcigkYXJyKTsKPz4=