PUT methode ondersteuning
De
PUT
methode
ondersteuning
is
sterk
veranderd
tussen
PHP
3
en
PHP
4
In
PHP
4
,
wordt
aangeraden
om
mbv
de
standaard
input
stream
de
inhoud
van
de
HTTP
PUT
te
lezen
.
Voorbeeld
18-4
.
Opslaan
van
HTTP
PUT
bestanden
met
PHP
4
?php
/
*
PUT
data
komt
binnen
via
de
stdin
stream
*
/
$putdata
=
fopen(
"php
:
/
/stdin"
,"r")
;
/
*
Open
een
bestand
om
naar
te
schrijven
*
/
$fp
=
fopen("myputfile.ext"
,"w")
;
/
*
Lees
de
data
1kb
per
keer
,
en
schrijf
deze
daarna
weg
*
/
while
($data
=
fread($putdata,1024)
)
fwrite($fp,$data)
;
/
*
Sluit
alles
af
*
/
fclose($fp)
;
fclose($putdata)
;
?
|
|
Opmerking
:
De
uitleg
hieronder
geld
alleen
voor
PHP
3
.
PHP
ondersteunt
ook
de
HTTP
PUT
methode
welke
gebruikt
wordt
door
o.a
.
Netscape
Composer
en
W3C
Amaya
.
PUT
aanvragen
zijn
veel
simpeler
dan
een
bestand
uploaden
en
zien
er
ongeveer
als
volgt
uit
:
Dit
betekent
normaal
gezien
dat
de
server
het
bestand
ook
als
/
pad
/
filename.html
wilt
opslaan
.
Dit
is
natuurlijk
geen
goed
idee
omdat
je
niet
wilt
dat
anderen
bestanden
overschrijven
in
je
web
tree
.
Om
zo'
n
'request
'
te
verwerken
vertel
je
je
server
eerst
met
wat
voor
PHP
script
je
dit
request
wilt
verwerken
.
Met
Apache
kun
je
dit
doen
met
het
Script
Met
Apache
kun
je
dit
doen
met
het
Script
directive
.
Het
kan
ongeveer
overal
in
je
configuratie
bestand
geplaatst
worden
.
Een
standaard
plaats
hiervoor
is
bijvoorbeeld
een
Directory
blok
.
Een
enkele
regel
als
voorbeeld
:
Dit
vertelt
Apache
om
alle
PUT
requests
waarvoor
URIs
die
overeenkomen
met
de
context
waarin
deze
regel
geplaatst
is
,
naar
het
put.php
script
te
sturen
.
We
gaan
er
vanuit
dat
je
de
juist
mime-headers
heb
gebruikt
om
PHP
met
de
.php
extensie
te
laten
werken
en
dat
PHP
actief
is
.
In
je
'
put.php
'
zou
je
dan
iets
als
volgt
neer
zetten
:
Dit
kopieert
het
bestand
naar
de
locatie
welke
gevraagd
werd
in
het
request
.
Waarschijnlijk
zal
je
nog
enige
tests
uitvoeren
op
het
bestand
voordat
je
het
bestand
daadwerkelijk
kopieert
.
De
enige
truc
hier
is
dat
PHP
het
bestand
opslaat
in
een
tijdelijk
bestand
zoals
bij
de
POST-methode
.
Zogauw
het
request
is
afgehandeld
word
het
tijdelijke
bestand
verwijderd
.
Let
dus
op
dat
je
script
het
tijdelijke
bestand
verplaatst
of
hernoemd
.
De
naam
van
dit
tijdelijke
bestand
is
opgeslagen
in
de
variable
$PHP_PUT_FILENAME
en
je
kunt
de
voorgestelde
locatie
vinden
in
$REQUEST_URI
(
Dit
kan
anders
zijn
bij
niet-Apache
web
servers
)
.
Dit
is
nogmaals
een
suggestie
van
de
gebruiker
.
Je
hoeft
deze
suggestie
niet
te
gebruiken
,
je
kunt
bijvoorbeeld
alle
bestanden
in
een
speciale
uploads
directory
plaatsen
.