Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/09/2015, 08:16
wmmb
 
Fecha de Ingreso: septiembre-2015
Mensajes: 6
Antigüedad: 9 años, 1 mes
Puntos: 0
Pregunta Caracteres Unicodes y PHP

Hola Comunidad,

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:
$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"}
Si aplico esto:

Código:
$tmp = str_replace('\\u003e','>',$tmp);
$tmp = str_replace('\\u003c','<',$tmp);
La cadena queda truncada:

Código:
{"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 sólo pasa con el segundo reemplazo el que corresponde a \u003c.
Pero si en la cadena original meto un espacio entre el unicode y el iframe, así:

Código:
...\u003c iframe...
La sorpresa es que funciona bien.
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!