Ver Mensaje Individual
  #7 (permalink)  
Antiguo 26/02/2016, 13:36
zerobathory
 
Fecha de Ingreso: enero-2012
Mensajes: 55
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Como invocar un webservice en php??

Cita:
Iniciado por abrahamhs Ver Mensaje
Te recomiendo remover el BOM de los archivos XML. La codificacion debe ser utf8 sin BOM. Los caracteres del BOM a veces tiran la conexion. Los xml suelen traer caracteres que no pueden viajar por internet por lo que recomiendo que se codifique el archivo en base64 y en el server se decodifiquen para leerlos. Yo hice esto para una prueba y me funciona y hasta mando el pdf:

<html>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/>
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate"/>
<meta http-equiv="Pragma" content="nocache"/>
<script type="text/javascript">
</script>
<body>....

Muchas muchas muchas pero muchas gracias, pude arreglar mi problema con lo que tu me pones, modificando y arreglando el codigo para adaptarlo mis necesidades, al fin pude y realmente me ayudaste mucho... ASi quedó... Y espero que gente de la comunidad que tenga que entregar en soriana les sirva...

Código PHP:
<html>
    <head>
        <title>Puto soriana</title>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/>
        <meta http-equiv="Cache-Control" content="no-cache, must-revalidate"/>
        <meta http-equiv="Pragma" content="nocache"/>
    </head>
    <body>
        <form action="index.php" method="POST" enctype="multipart/form-data" accept-charset="UTF-8">
            <label>Enviar</label><input type="file" name="xml" accept="application/xml">
            <button type="submit">Enviar</button>
        </form>
        <?php
    
if(isset($_FILES['xml'])){
        function 
remove_utf8_bom($text){
            
$bom pack('H*','EFBBBF');
            
$text preg_replace("/^$bom/"''$text);
            return 
$text;
        }
        
$url="http://serviciosweb.soriana.com/RecibeCfd/wseDocRecibo.asmx?wsdl";
        
$xml=$_FILES['xml'];
        
$rutaxml=$_FILES['xml']["tmp_name"];
        
$strContenidoXml remove_utf8_bom(file_get_contents($rutaxml));
        
$parametros=array();
        
$parametros['XMLCFD']=$strContenidoXml;
        
ini_set("soap.wsdl_cache_enabled""0");
        
$client=new SoapClient($url);
        
$resultado$client->RecibeCFD($parametros);
        echo 
"<textarea style='width: 400px;' rows='20'>".$resultado->RecibeCFDResult."</textarea>";
    }
?>
    </body>
</html>