Gebruik: |
int fopen ( string filename, string mode [, int use_include_path [, resource zcontext]]) |
Uitleg: |
Als filename begint met "http://" (niet hoofdletter gevoelig), wordt er een HTTP 1.0 connectie geopend naar de aangegeven server, de pagina wordt opgevraagd met de HTTP GET methode, en een bestands pointer wordt terug gegeven die aan het begin van de body van de reactie staat. Een 'Host:' kop wordt met de request meegezonden om 'name-based virtual hosts' aan te kunnen.
Vanaf PHP 4.3.0 geldt, dat als je PHP gecompileerd hebt met ondersteuning voor OpenSSL, je "https://" mag gebruiken om een HTTP connectie te openen over SSL.
Let op dat de bestands pointer het alleen mogelijk maakt om de body van de reactie uit te lezen; om de HTTP kop van de reactie te lezen moet je PHP 4.0.5 of later gebruiken; De kop wordt opgeslagen in de $http_response_header variabel. Vanaf PHP 4.3.0 kan de kop ook worden uitgelezen door gebruik te maken van file_get_wrapper_data().
HTTP verbindingen zijn alleen lezen; je kan geen data schrijven of bestanden kopieren naar een HTTP bron.
Eerdere versies dan PHP 4.0.5 behandelen geen HTTP redirects. Om deze reden moeten folder URL's eindigen op een slash (http://www.voorbeeld.com/test/ ipv http://www.voorbeeld.com/test).
Als filename begint met "ftp://" (niet hoofdletter gevoelig), wordt er een ftp connectie geopend naar de aangegeven server en een pointer naar het gevraagde bestand wordt terug gegeven. Als de server geen 'passive mode' ondersteunt, zal dit niet werken. Je kan bestanden voor zowel lezen als schrijven openen (maar niet beide simultaan). Als het remote bestand al bestaat op de ftp server en je probeert hem te openen om te schrijven, dan zal dit niet werken. Als je bestaande files over ftp moet updaten, gebruik ftp_connect().
Als filename "php://stdin", "php://stdout" of "php://stderr" is, dan zal de corresponderende stdio stream worden geopend. (Dit is geintroduceerd in PHP 3.0.13; in eerdere versies moeten bestandsnamen zoals "/dev/stdin" of "/dev/ fd/0" gebruikt worden om de stdio streams op te vragen.)
Als filename begint met iets anders, dan wordt het bestand van het bestands systeem geopend, en een bestands pointer naar de geopende bestand terug gegeven.
Als het openen niet lukt, geeft de functie FALSE terug.
mode mag een van de volgende zijn:
'r' - Openen voor alleen lezen; plaats de bestands pointer aan het begin van het bestand.
'r+' - Openen voor lezen en schrijven; plaats de bestands pointer aan het begin van het bestand.
'w' - Openen voor alleen schrijven; plaats de bestands pointer aan het begin van het bestand en maak het bestand 0 bytes lang. Als het bestand niet bestaat, probeer het aan te maken.
'w+' - Openen voor lezen en schrijven; plaats de bestands pointer aan het begin van het bestand en maak het bestand 0 bytes lang. Als het bestand niet bestaat, probeer het aan te maken.
'a' - Openen voor alleen schrijven; plaats de bestands pointer aan het einde van het bestand. Als het bestand niet bestaat, probeer het aan te maken.
'a+' - Openen voor lezen en schrijven; plaats het bestands pointer aan het einden van de file. Als het bestand niet bestaat, probeer het aan te maken.
Opmerking: De mode mag de letter 'b' bevatten. Dit is alleen handig op systemen die verschil zien tussen binaire en tekst bestand (bijvoorbeeld Windows. Op Unix is het zinloos). Als het niet nodig is, wordt het genegeerd.
De optionele derde use_include_path parameter kan op '1' of TRUE gezet worden; voor als je ook wilt zoeken voor het bestand in include_path.
De optionele vierde zcontext parameter is gebruikt voor gespecifiseerde afstemmings parameters en aanroepen.
|
Voorbeeld: |
<?php
$fp = fopen ("/home/rasmus/file.txt", "r");
$fp = fopen ("/home/rasmus/file.gif", "wb");
$fp = fopen ("http://www.example.com/", "r");
$fp = fopen ("ftp://user:password@example.com/", "w");
// $fp = fopen ("c:\data\info.txt", "r");
// Is fout!
$fp = fopen ("c:\\data\\info.txt", "r");
$fp = fopen ("c:/data/info.txt", "r");
// Zijn beide goed
?>
|
Bijdragen :
|
Er zijn nog geen bijdragen.
|
|
|
|