Reguláris
Sziasztok!
Sajnálatosan belefutottam egy problémába.
jsont kellene printelnem, úgy hogy "function" is van benne.
a json_encode azonban azt is idéző jelekbe rakja.
pl.: {"message":"Hello","func":"function(){}"}
találtam rá egy megoldást:
itt
sajnos azonban hibaüzenetet kapok:
preg_replace_callback(): Compilation failed: missing ) at offset 30 in
rákerestem a hibára, és ezt találtam:
itt
úgy tűnik a reguláris kifejezés nem jó. Azonban sajnos abban elég gyenge vagyok. :(
Valakinek esetleg van 5lete?
■ Sajnálatosan belefutottam egy problémába.
jsont kellene printelnem, úgy hogy "function" is van benne.
a json_encode azonban azt is idéző jelekbe rakja.
pl.: {"message":"Hello","func":"function(){}"}
találtam rá egy megoldást:
itt
sajnos azonban hibaüzenetet kapok:
preg_replace_callback(): Compilation failed: missing ) at offset 30 in
rákerestem a hibára, és ezt találtam:
itt
úgy tűnik a reguláris kifejezés nem jó. Azonban sajnos abban elég gyenge vagyok. :(
Valakinek esetleg van 5lete?
function json_func_expr($json) {
return preg_replace_callback(
'/(?<=:)"function((?:(?!}").)*}"/',
'json_strip_escape',
$json
);
}
function json_strip_escape($string) {
return str_replace(array('"','/','"','n','t'),array('"','/','"','',''),substr($string[0],1,-1));
}
Zárójel
A változásokról:
Siker!
Mellé
A problémát okozó "(" ezek szerint azért volt ott, hogyha a bemenet valami ilyesmi:
Akkor arra ne illeszkedjen ("function" -al kezdődő értek, de "(" nélkül; más kérdés, hogyha teszel egy space -et nyitó "(" elé akkor se lenne jó... regexp nem kifejezetten jó eszköz ilyesmire) csak a wp megette a \ -t előle (mondjuk gyanús lehetett volna többi hasonlóképp járt részéből a kódnak '^.^).
JSON-ban adatokat küldünk,
+1
Szintén +1