Les vengo a presentar un problema un tanto extraño.
Sucede que tanto la función str_replace(), preg_replace_callback(), json_encode(), en un archivo PHP dentro de un Wordpress, trunca la cadena en vez de hacer bien los reemplazos.
por ejemplo, esta es la cadena (json antes de aplicar un json_decode) que trae de Youtube:
Código:
Si aplico esto:$tmp = {"author_name": "Contranalisis Psiconeurociencia", "height": 356, "thumbnail_height": 360, "author_url": "https:\/\/www.youtube.com\/user\/potencialhumanotv", "width": 474, "thumbnail_url": "https:\/\/i.ytimg.com\/vi\/IyjWqRixa0U\/hqdefault.jpg", "type": "video", "html": "\u003ciframe width=\"474\" height=\"356\" src=\"https:\/\/www.youtube.com\/embed\/IyjWqRixa0U?feature=oembed\" frameborder=\"0\" allowfullscreen\u003e\u003c\/iframe\u003e", "thumbnail_width": 480, "provider_name": "YouTube", "title": "El Potencial Humano con Leonardo Stemberg (15 de Julio 2015)", "provider_url": "https:\/\/www.youtube.com\/", "version": "1.0"}
Código:
La cadena queda truncada:$tmp = str_replace('\\u003e','>',$tmp); $tmp = str_replace('\\u003c','<',$tmp);
Código:
Pero sólo pasa con el segundo reemplazo el que corresponde a \u003c. {"author_name": "Contranalisis Psiconeurociencia", "height": 356, "thumbnail_height": 360, "author_url": "https:\/\/www.youtube.com\/user\/potencialhumanotv", "width": 474, "thumbnail_url": "https:\/\/i.ytimg.com\/vi\/IyjWqRixa0U\/hqdefault.jpg", "type": "video", "html": "
Pero si en la cadena original meto un espacio entre el unicode y el iframe, así:
Código:
La sorpresa es que funciona bien....\u003c iframe...
Otro dato interesante es que en un php en mi local funciona bien, en todos los casos de todas las maneras, si lo meto en el index.php del Wordpress también funciona bien. Pero ya dentro de las clases de "media" del Wordpress tiene este comportamiento extraño.
Alguien se da una idea?
Muchas gracias!