2015-06-29 3 views
0

Я работаю над вызовом клиента nusoap, для веб-службы я использую последнюю библиотеку nusoap.php.PHP. Проблемы с Wamp и xml для вызова клиента nusoap

Когда я сделал структуру XML Я использую это:

$string =<<<XML<?xml version='1.0'?><cliente> 
    <nombre>$posts['nombre']</nombre> 
    <apellido>$posts['apellido']</apellido> 
    <calle>$posts['direccion']</calle> 
    <altura>$posts['altura']</altura> 
    <pisodto>$posts['pisodto']</pisodto> 
    <localidad>$posts['localidad']</localidad> 
    <provincia>$posts['provincia']</provincia> 
    <partido>$posts['partido']</partido> 
    <telefono>$posts['telefono']</telefono> 
    <celular>$posts['celular']</celular> 
    <email>$posts['email']</email> 
</cliente> 
XML; 

Но по какой-то причине WAMP не нравится, и я всегда получаю эту ошибку:

Parse error: syntax error, unexpected '<<' (T_SL) in G:\wamp\www\bsmart\PHPtoXML2\enviarxml.php on line 98

Вот полный код

date_default_timezone_set('America/Argentina/Buenos_Aires'); 
require_once 'assets/clases/nusoap/nusoap.php'; 
$wsdl = "http://ws.maxirest.com/wsclientes/wscli06896.php?WSDL"; 
$cliente = new nusoap_client($wsdl); 
$produccion = false; //Cambiar a verdadero por producction 
$endpoint = $wsdl; 

//print_r($_POST); 

$posts = $_POST; 

if ($produccion == false) { 
    $posts['nombre'] = 
     $posts['apellido'] = 
      $posts['direccion'] = 
        $posts['pisodto'] = 
         $posts['localidad'] = 
          $posts['partido'] = 
           $posts['provincia'] = 
            $posts['telefono'] = 
             $posts['celular'] = 
              $posts['altura'] = 
               $posts['email'] = 
                  "PRUEBA"; 
} 


$string =<<<XML<?xml version='1.0'?><cliente> 
    <nombre>$posts['nombre']</nombre> 
    <apellido>$posts['apellido']</apellido> 
    <calle>$posts['direccion']</calle> 
    <altura>$posts['altura']</altura> 
    <pisodto>$posts['pisodto']</pisodto> 
    <localidad>$posts['localidad']</localidad> 
    <provincia>$posts['provincia']</provincia> 
    <partido>$posts['partido']</partido> 
    <telefono>$posts['telefono']</telefono> 
    <celular>$posts['celular']</celular> 
    <email>$posts['email']</email> 
</cliente> 
XML; 

$param = array('cXml' => $string, 'clave' => "123ClubMilaMREST5"); 

$client = new nusoap_client($wsdl);//Ruta donde se encuentra nuestro servicio para consumirlo 

$resultado = $client->call('AltaSolicitud',$param); 

//Codigo para debugear y ver la respuesta y posibles errores, comentar cuando se comprueba que está correcto el servicio y la llamada 
$err = $client->getError(); 
if ($err) { 
    echo '<p><b>Constructor error: ' . $err . '</b></p>'; 
} 
echo '<h2>Request</h2>'; 
echo '<pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>'; 
echo '<h2>Response</h2>'; 
echo '<pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>'; 
echo htmlspecialchars($client->response, ENT_QUOTES) . '</b></p>'; 
echo '<p><b>Debug: <br>'; 
echo htmlspecialchars($client->debug_str, ENT_QUOTES) .'</b></p>'; 
//Comentar hasta aquí 

if($client->fault) 
{ 
    echo "FAULT: <p>Code: (".$client->faultcode.")</p>"; 
    echo "String: ".$client->faultstring; 
} 
else 
{ 
    var_dump ($resultado); 
} 

Я думаю, может быть, библиотека может отсутствовать, но я не уверен, любая помощь будет очень признательна, спасибо заранее.

+0

На самом деле это просто ошибка синтаксиса PHP поэтому его не по вине WampServer, его опечатка – RiggsFolly

+0

Это, и '$ posts' переменная цепочки, как это неправильно. –

+0

* Не тип RAILS, мы искали, а Сэм? * - @JayBlanchard –

ответ

3

После XML вы должны иметь разрыв строки.

$string = <<<XML 
       ^
line break mandatory, it marks the end of the "XML" mark (heredoc identifier). 

Для получения подробной информации см. PHP Heredoc String Syntax.

Дополнительно строки строки массива внутри строки не указаны.

Полный пример:

$string = <<<XML 
    <?xml version='1.0'?><cliente> 
    <nombre>$posts[nombre]</nombre> 
    <apellido>$posts[apellido]</apellido> 
    <calle>$posts[direccion]</calle> 
    <altura>$posts[altura]</altura> 
    <pisodto>$posts[pisodto]</pisodto> 
    <localidad>$posts[localidad]</localidad> 
    <provincia>$posts[provincia]</provincia> 
    <partido>$posts[partido]</partido> 
    <telefono>$posts[telefono]</telefono> 
    <celular>$posts[celular]</celular> 
    <email>$posts[email]</email> 
</cliente> 
XML; 
+0

По какой-то причине теперь ошибка теперь отмечает, где столбчатые переменные: –

+0

Ну, вы исправили первую ошибку, и теперь она перешла к следующей. Там вы идете, Джей уже исправил следующую ошибку: – RiggsFolly

+0

Amm где? Спасибо за ваш ответ –