Visualizzazione risultati 1 fino 3 di 3

Discussione: fopen, fsockopen

  1. #1
    Guest

    Question fopen, fsockopen

    Qualcuno sa spiegarmi in parole semplici la differenza tra queste due funzioni? Quando usare una o l'altra?
    Francamente non l'ho capito. Pare funzionino entrambe per lo stesso scopo!

    Per esempio se voglio aprire un file.php su un sito esterno e salvarne l'output in una variabile quale delle due funzioni è meglio usare?
    Grazie.

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    La funzione fopen permette di aprire (per poi leggere o scrivere) files locali o risorse esterne di cui consci l'URI; la funzione fsockopen va invece usata per aprire un socket, una connessione TCP.

  3. #3
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    edit: preceduto ma, vabbeh, ho scritto di più

    Originariamente fopen() apre un file su disco, in lettura o scrittura. Può essere utilizzato quindi per leggere e scrivere file sul tuo spazio web.

    Versioni recenti del php estendono il concetto di "file" rendendo possibile aprire, in sola lettura, diversi tipi di risorse di rete, fra cui pagine http situate su altri server. In seguito a questa estensione, è possibile usare fopen (ma anche file_get_contents et al) con indirizzi di pagine web.

    Codice PHP:
    <pre><?= file_get_contents('http://www.wordpress.com/'); ?></pre>
    fsockopen() invece apre un socket, ovvero una connessione TCP o simile con un server su internet, specificato da un protocollo, un hostname ed una porta.

    Una volta collegato al servizio remoto, puoi comunicare bidirezionalmente con esso. Se ti collegassi ad un server web, potresti richiedere una pagina con GET index.html ad esempio. Il tutto però sarebbe equivalente ad una singola chiamata a file_get_contents, che nel tuo caso dovrebbe essere più che sufficiente.

    Ricordarti fra le altre cose che per leggere file da siti esterni devi attivare le connessioni server2server, a meno che non sia incluso nella lista dei siti già abilitati di default.
    Ultima modifica di dreadnaut : 17-05-2011 alle ore 00.47.04

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •