Zo
lang
de
ondersteuning
voor
"
URL
fopen
wrapper
"
actief
is
wanneer
je
PHP
configureert
(is
standaard
actief
tenzij
je
expliciet
de
--disable-url-fopen-wrapper
optie
gebruikt
(voor
versies
tot
en
met
4.0.3
)
of
allow_url_fopen
zet
to
"off
"
(voor
nieuwere
versies
)
kun
je
HTTP
en
FTP
urls
gebruiken
met
de
meeste
functies
die
standaard
gezien
een
bestandsnaam
als
argument
vereisen
,
dit
werkt
ook
met
de
require(
)
en
include(
)
functies
.
Opmerking
:
Op
het
Windows
platform
kun
je
geen
remote
bestanden
gebruiken
als
argument
in
de
include(
)
en
require(
)
functies
.
Je
kunt
dit
bijvoorbeeld
gebruiken
om
een
bestand
te
openen
op
een
andere
webserver
,
de
output
verwerken
om
de
data
te
krijgen
die
jij
wilt
hebben
en
vervolgens
deze
data
in
een
database
query
gebruiken
of
om
simpel
weg
deze
data
weer
te
geven
in
je
eigen
website-stijl
.
Voorbeeld
19-1
.
De
titel
van
een
remote
pagina
op
halen
.
?php
$bestand
=
fopen
(
"http
:
/
/www.php.net
/
"
,
"r")
;
if
(!$bestand
)
{
echo
"
p
Kon
remote
bestand
niet
open.\n"
;
exit
;
}
while
(!feof
($bestand)
)
{
$regel
=
fgets
($bestand
,
1024)
;
/
*
dit
werkt
alleen
als
de
titel
en
title
en
/
title
op
1
regel
staan
*
/
if
(eregi
(
"
title
(.*
)
/
title
"
,
$regel
,
$matches)
)
{
$titel
=
$matches[1]
;
break
;
}
}
fclose($bestand)
;
?
|
|
Je
kunt
ook
naar
bestanden
schrijven
op
een
FTP
server
als
je
teminste
de
juiste
rechten
hebt
voor
deze
operatie
en
zolang
het
bestand
nog
niet
bestaat
op
de
FTP
server
.
Om
in
te
loggen
als
een
user
anders
dan
'
anonymous
'
moet
je
je
gebruikersnaam
en
mogelijk
je
paswoord
opgeven
in
de
URL
,
dit
gaat
op
deze
manier
:
'ftp
:
/
/gebruikersnaam:paswoord@ftp.mijnserver.nl
/
pad
/
naar
/
bestand
'
Op
deze
manier
kan
je
ook
over
HTTP
toegang
krijgen
tot
bestanden
die
'Basic
Authentication
'
vereisen
.
Voorbeeld
19-2
.
Data
opslaan
op
een
andere
server
?php
$bestand
=
fopen
(
"ftp
:
/
/ftp.php.net
/
incoming
/
outputfile"
,
"w")
;
if
(!$bestand
)
{
echo
"
p
Kon
remote
bestand
niet
openen
om
naar
te
schrijven\n
/
p
"
;
exit
;
}
/
*
Schrijf
data
weg
*
/
fputs
($bestand
,
"$HTTP_USER_AGENT\n")
;
fclose
($bestand)
;
?
|
|
Opmerking
:
Je
kunt
het
idee
krijgen
om
deze
techniek
te
gebruiken
om
te
schrijven
naar
een
log
op
een
andere
server
,
maar
zoals
eerder
gezegd
kan
je
alleen
schrijven
naar
bestanden
die
nog
niet
bestaan
.
Om
'
distributed
logging
'
mogelijk
te
maken
zou
je
moeten
kijken
naar
syslog(
)
.