Jeg skal lave et PHP-baseret website for en ven, der har sit site
hostet hos enavn.dk. De bruger angiveligt PHP 4.1.3 på deres servere.
Jeg er nu i gang med de indledende tests, såsom at finde ud af, hvad
jeg kan og ikke kan på deres server.
Én af mine funktioner bruger GetImageSize() for at udtrække
IPTC-felterne fra et JPEG-billede. Imidlertid får jeg følgende warning
på skærmen, når jeg kalder funktionen:
"Warning: Call-time pass-by-reference has been deprecated - argument
passed by value; If you would like to pass it by reference, modify the
declaration of getimagesize(). If you would like to enable call-time
pass-by-reference, you can set allow_call_time_pass_reference to true
in your INI file. However, future versions may not support this any
longer."
Se, det har jeg jo aldrig hørt noget om. Faktisk står der jo på
http://www.php.net/manual/en/function.getimagesize.php at funktionens
andet parameter skal være en reference.
Det pudsige er bare, at funktionen i min kode virker - jeg får faktisk
hentet IPTC-data ud af billedet og over i reference-variablen.
Men jeg kan ikke fjerne warning'en ved f.eks. at sætte et @ foran
GetImageSize(), det er nemlig inkluderingen af den inklude-fil, der
indeholder funktion, der genererer fejlmeddelelsen.
Derimod kan jeg undertrykke den famøse warning ved at skrive
@include_once("navn-paa-includefil")
Et forsøg på at ændre ini-filen via
ini_set("allow_call_time_pass_reference",TRUE); bliver ignoreret af
systemet, men andre ini-settings kan jeg godt ændre.
Men er ' Call-time pass-by-reference' virkelig 'deprecated', som
advarslen skriver?
--
Jens Tønnesen -
http://www.pressefoto.dk