Dunque, ho fixato la parte in java ma ci sono ancora dei problemi sulla parte in PHP.
Java restituisce sempre la solita String[][].
PHP fa questo:
Codice PHP:
$client = new SoapClient('http://localhost:8080/Libreria/services/Server?wsdl'); $result=array(array());
$result=$client->listaNovita();
var_dump($result);
L'ultima istruzione mi stampa a video
codice:
object(stdClass)#2 (1) { ["return"]=> object(stdClass)#3 (1) { ["array"]=> array(3) { [0]=> string(8) "ciaociao" [1]=> string(9) "ciaaaoooo" [2]=> string(21) "2012-07-25 23:19:59.0" } } }
Mi sto chiedendo ora, come faccio a leggere i valori contenuti in questo oggetto?
Ho provato con diverse soluzioni trovate su internet ma nessuna ha funzionato. Nella maggior parte dei casi si trattata di array associativi e per selezionare il valore facevano
Codice PHP:
$result->'nomecampo'->'nomecampo'
Dato che il mio non è un array associativo ho provato con l'indice ma non funziona e ricevo questo
Notice: Undefined property: stdClass::$0 in /var/www/saed/index.php on line 157 Notice: Trying to get property of non-object in /var/www/saed/index.php on line 157
La riga 157 è questa:
Codice PHP:
if($result->{'0'}->{'0'}=='') {
Questa è una dei miei innumerevoli tentativi di leggere il valore e più o meno ho avuto sempre lo stesso errore.
In che modo posso parserizzare il contenuto che ricevo in $result?
EDIT:
Allora, facendo così
Codice PHP:
var_dump($result->return->array[0]);
ricevo
C'è modo di levare la parte iniziale e le virgolette?
RIEDIT:
Basta fare così:
Codice PHP:
echo $result->return->array[0];
Però come mai tutte le righe restituite da un
Codice PHP:
var_dump($result)
sono uguali alla prima riga dell'array, quando invece la tabella da cui va a prendere i dati java contiene valori differenti?