Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    5

    recuperare output in xml

    ciao a tutti,
    ho la necessità di recuperare e stampare a video file xml recuperati da chiamate a server remoti tipo questa:
    https://host/pagina.php?param1=Info&param2=GET&username=user&pa ssword=xxxxxx
    come gia detto il link restituisce un putput in xml, se ci accedo direttamente da beowser riesco a vederlo ma tentando sia con fopen che con fsockopen mi da errore.
    Ho provato a cercare nel forum ma non sono riuscito a trovare nulla

    potete aiutarmi?

    grazie mille in anticipo

    saluto
    have a nice day

  2. #2
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Immagino che con fopen ti apra il file php e non il risultato xml.

    Credo che l'unica soluzione sia crare un file al volo con il contenuto xml e poi aprirlo con fopen ma non te lo assicuro

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    5
    ciao Graboid,
    questa la porzione di codice che utilizzo

    $file = fopen($url, "r");

    while(!feof($file)) {
    $data = $data . fgets($file, 4096);
    }
    fclose ($file);

    e questi i messaggi di ritorno
    Warning: fopen(): php_network_getaddresses: gethostbyname failed in c:\program files\easyphp1-8\www\test_wsc.php on line 28

    Warning: fopen(http://www.php.net): failed to open stream: No error in c:\program files\easyphp1-8\www\test_wsc.php on line 28

    Warning: feof(): supplied argument is not a valid stream resource in c:\program files\easyphp1-8\www\test_wsc.php on line 30

    Warning: fgets(): supplied argument is not a valid stream resource in c:\program files\easyphp1-8\www\test_wsc.php on line 31

    le ultime due linee si ripetono all'infinito perchè il codice nn esce più dal ciclo while

    hai qualche consiglio?
    posso usare qualche altra funzione?

    grazie mille
    have a nice day

  4. #4
    Con quel metodo non ci riuscirai mai.

    Prova ad sare cURL per fare una chiamata GET al server esterno e ad usare DOM per navigare l'albero XML.

    Se usi php4 le librerie per il DOM si chiamano domxml, non sono standardizzate al DOM W3G, (e di default non sono installate) se usi php5 le librerie sono le DOM, precise allo standard W3G, e sono di default.
    Anche le librerie cURL non sono di default in php4.

    Cmq trovi dell' ottima documentazione in www.php.net

    Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    5
    bel casino...
    non riesco nemmero a istallarlo su win 2000
    have a nice day

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    5
    questi gli step che ho seguito per far si che dal mio pc potessi usare cUrl a beneficio di chi, come me, ha poca dimestichezza con le estensioni

    potete scaricare ilpacchetto da questo indirizzo:
    http://curl.haxx.se/latest.cgi?curl=...devel-ssl-sspi

    dal manuale di www.php.net
    Nota agli utenti Win32: Per abilitare questo modulo in ambiente Windows, occorre copiare libeay32.dll e ssleay32.dll dalla cartella delle DLL del pacchetto PHP/Win32 nella cartella SYSTEM32 della propria macchina Windows. (Es: C:\WINNT\SYSTEM32 o C:\WINDOWS\SYSTEM)
    ma si sono scordati di scrivere che per farlo funzionare bisogna abilitare la relativa voce nel php.ini
    aprire il file e cercare extension=php_curl.dll
    togliere i due punti ( e salvare

    sembra scontato ma mi ci è voluto un pò per capirlo

    spero che vi sia di aiuto
    have a nice day

  7. #7
    Utente di HTML.it L'avatar di maxmito
    Registrato dal
    Nov 2001
    Messaggi
    188
    Ciao ragazzi vedo che in qualche modo la discussione mi può interessare...
    Allora io tramite questo script invio (usando curl) dei dati in post ad un server https, che mi ridà come risultato un XML:

    Codice PHP:
    $req="";
    foreach (
    $_POST as $key => $value) {
        
    $value urlencode(stripslashes($value));
        
    $req.="&$key=$value";
    }
    $url "https://indirizzo/script.php";
    $ch curl_init();
    $rescurl_setopt ($chCURLOPT_URL$url);
    curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
    curl_setopt ($chCURLOPT_HEADER0);
    curl_setopt($chCURLOPT_POST1);
    curl_setopt($chCURLOPT_POSTFIELDS$req);
    curl_setopt ($chCURLOPT_RETURNTRANSFER1);
    $xyz curl_exec ($ch);
    curl_close ($ch); 
    Il mio problema è che non riesco a parsare l'xml che mi ritorna perchè non è un file ma una stringa.. quindi utilizzando qualsiasi parser ottengo questo errore:

    Warning: feof(): supplied argument is not a valid stream resource in /home/../../parserxml.php on line 87

    Warning: fread(): supplied argument is not a valid stream resource in /home/../../parserxml.php on line 87

    come posso fare in modo che curl mi ritorna un file XML e non una stringa con dentro del XML?
    Spero di essere stato abbastanza chiaro.......

  8. #8
    Utente di HTML.it L'avatar di maxmito
    Registrato dal
    Nov 2001
    Messaggi
    188
    Ho trovato questa soluzione momentanea se a qualcuno può servire....... dopo aver ricevuto in risposta la stringa (che contiene formato xml) la scrivo in un file.... e dopo la do in pasto al parser xml... per ora funziona.. e andrò avanti cosi ma se si riuscirebbe ad avere in output dal curl gia un file non sarebbe male!

    la scrivo in un file:
    $file="file.xml";
    $apro=fopen($file,"w");
    fwrite($apro,$xyz(è la variabile che contiene la stringa xml di risposta));
    fclose($apro);

    ciao!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.