Foros del Web » Programando para Internet » PHP »

PHP OO Problemas Ñ y acentos con utf8_ encode

Estas en el tema de Problemas Ñ y acentos con utf8_ encode en el foro de PHP en Foros del Web. Tengo un problemilla con los datos xml que me pasan desde un servidor como respuesta a mis consultas. El caso es que al crear el ...
  #1 (permalink)  
Antiguo 14/01/2013, 07:46
 
Fecha de Ingreso: diciembre-2012
Mensajes: 17
Antigüedad: 11 años, 10 meses
Puntos: 0
Problemas Ñ y acentos con utf8_ encode

Tengo un problemilla con los datos xml que me pasan desde un servidor como respuesta a mis consultas. El caso es que al crear el xml le pongo la codificacion utf8 pero no parece que haga caso.

Este es el codigo PHP:

Código PHP:
Ver original
  1. <?php
  2. //XML Request
  3. $xml = "codigousu=" ."LORE";
  4. $xml .= "&clausu=" . "xml302528";
  5. $xml .= "&afiliacio=" . "HA";
  6. $xml .= "&secacc=" . "69210";
  7. $xml .= "&xml=";
  8. $xml2 = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n";
  9. $xml2 .= "<peticion>
  10. <nombre>Petici?n de Paises</nombre>
  11. <agencia>Hotusa</agencia>
  12. <tipo>5</tipo>
  13. </peticion>";
  14.  
  15. $xml .= urlencode($xml2);
  16. $length = strlen($xml);
  17. //XML Connection
  18. $fp = @fsockopen("xml.hotelresb2b.com", 80);
  19. fputs($fp, "POST http://xml.hotelresb2b.com/xml/listen_xml.jsp HTTP/1.0\nUser-Agent: PHP XMLRPC 1.1\r\n");
  20. fputs($fp, "Host: xml.hotelresb2b.com\n");
  21. fputs($fp, "Content-Type: application/x-www-form-urlencoded\n");
  22. fputs($fp, "Content-Length: " . $length . "\n");
  23. fputs($fp, "\n");
  24. fputs($fp, $xml);
  25. $respuesta = "";
  26. while(!feof($fp)) $respuesta .= fgets($fp);
  27.  
  28. fclose ($fp);
  29. //XML Answer
  30. $xml = substr($respuesta, strpos($respuesta, "<?xml"));
  31. //$xml = new SimpleXMLElement($xmlstr);
  32. //Simple XML is available from php5
  33. $sxe = new SimpleXMLElement(utf8_encode($xml), LIBXML_NOCDATA);
  34. echo '<form name="formulario" action ="" method="get">';
  35. echo'<select name="paises" onChange="this.form.submit();">';
  36. foreach ($sxe->parametros->paises->pais as $pais)
  37. {
  38.    
  39.     echo'<option value="'.$pais->codigo_pais.'"';
  40.     if (strcmp($pais->codigo_pais, $_GET['paises'])==0)
  41.     {
  42.     echo ' selected="selected">';
  43.     }  
  44.     else
  45.     {
  46.     echo ">";
  47.     }
  48.     echo $pais->nombre_pais;
  49.     echo'</option>';
  50. }
  51. echo'</select>';
  52. ?>
Este es el resultado (ver por ejemplo españa):
http://www.goodfly.es/index.php/hoteles/integracion
  #2 (permalink)  
Antiguo 14/01/2013, 07:50
 
Fecha de Ingreso: septiembre-2012
Ubicación: Argentina
Mensajes: 144
Antigüedad: 12 años, 2 meses
Puntos: 12
Respuesta: Problemas Ñ y acentos con utf8_ encode

Buenos dias!!

Te dejo el siguiente enlance donde en el foro se hablo del mismo tema

http://www.forosdelweb.com/f91/n-codigo-html-598280/

Saludos!
  #3 (permalink)  
Antiguo 14/01/2013, 07:52
 
Fecha de Ingreso: septiembre-2012
Ubicación: Argentina
Mensajes: 144
Antigüedad: 12 años, 2 meses
Puntos: 12
Respuesta: Problemas Ñ y acentos con utf8_ encode

Te dejo este tambien por cualqueir cosa! :)

http://www.forosdelweb.com/f91/como-...mi-web-730590/
  #4 (permalink)  
Antiguo 14/01/2013, 20:58
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 15 años, 1 mes
Puntos: 12
Respuesta: Problemas Ñ y acentos con utf8_ encode

Hola pablo_exeg, tendrias que usar expresiones regulares. Hace poco soluciones el tema. Hay una funcion que se llama preg_replace, que realiza una búsqueda y sustitución de una expresión regular. (http://php.net/manual/es/function.preg-replace.php)...

Te paso una funcion que yo uso...


Código PHP:
function setLinks($txt) {
 
$tex preg_replace('`(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&amp;//=]+)`i''<a rel="external" href="\\1">\\1</a>'$txt);
$tex preg_replace('`([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&amp;//=]+)`i''\\1<a rel="external" href="http://\\2">\\2</a>'$tex);
$tex preg_replace('`([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})`i''<a rel="external" href="mailto:\\1">\\1</a>'$tex); 
 
return 
$tex;

Pero nose como se vera esto en xml! pruebalo y me dices....


Saludos
__________________
Zreep

Etiquetas: encode, utf-8
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:17.