[php] Kijken of een plaatje bestaat, maar dan op andere serv

Pagina: 1
Acties:
  • 75 views sinds 30-01-2008

  • Bender
  • Registratie: Augustus 2000
  • Laatst online: 17-08 16:09
Ik zoek dus aan manier om te kunnen kijken of een plaatje bestaat.
Met file_exists() is niet mogelijk om bestanden te checken op andere servers dus, de oplossingen die er staan is of te uitgebreid, of het werkt niet.

fopen() doet het om een of andere vage reden niet, en vraag me af of dat ewl slim is, eerst een compleet plaatje in een var zetten om alleen te kijken of het bestaat.

Iemand een idee?

Verwijderd

Je kan met sockets een HTTP connectie maken, en een GET doen op de URL van het plaatje. Als je een status code 500 200 krijgt, bestaat het, anders niet.

HTH :)

[ Voor 5% gewijzigd door Verwijderd op 16-12-2002 00:46 ]


Verwijderd

je kan ook getimagesize gebruiken... is er misschien niet helemaal voor bedoeld maar die kan wel remote plaatjes de width en de height opvragen... dan weet je ook gelijk of ie bestaat of niet en of het wel een plaatje is of niet :)

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Combinatie van basisfunctionaliteit:
1) Open een link naar het plaatje
2) Haal de HTTP header binnen
3) Als de headercode zich in de 200 bevindt is het goed
Als het in de 300 zit, dan staat de pic niet daar (redirect)
Als het in de 400 zit dan is er een fout aan uw kant (vaak verkeerde locatie)
Als het in de 500 zit is het een fout bij de pichoster
Meer info in de HTTP rfc of [google=http error codes]

MrX schreef op 16 december 2002 @ 00:12:

Je kan met sockets een HTTP connectie maken, en een GET doen op de URL van het plaatje. Als je een status code 500 krijgt, bestaat het, anders niet.

HTH :)
500 is "Internal Server Error" als ik me niet vergis :)

[ Voor 28% gewijzigd door Glimi op 16-12-2002 00:16 ]


  • Bender
  • Registratie: Augustus 2000
  • Laatst online: 17-08 16:09
Verwijderd schreef op 16 december 2002 @ 00:13:
je kan ook getimagesize gebruiken... is er misschien niet helemaal voor bedoeld maar die kan wel remote plaatjes de width en de height opvragen... dan weet je ook gelijk of ie bestaat of niet en of het wel een plaatje is of niet :)
die werkte dus niet, had ik nl al geprobeerd..

en ipv uitleg te geven hoe het moet, wat ik zelf ook kan bedenken :)
heb ik liever een functie :)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Glimi schreef op 16 december 2002 @ 00:15:
3) Als de headercode zich in de 200 bevindt is het goed
Als het in de 300 zit, dan staat de pic niet daar (redirect)
Idd, ofwel een tijdelijke, ofwel een permanente redirect (en nog wel wat andere dingen, zie de RFC)
Als het in de 400 zit dan is er een fout aan uw kant (vaak verkeerde locatie)
Of een fout wachtwoord, of gewoon geen permissie, of een foute request gestuurd, en nog een paar nauwelijks gebruikte dingen.
Als het in de 500 zit is het een fout bij de pichoster
Meer info in de HTTP rfc of [google=http error codes]

500 is "Internal Server Error" als ik me niet vergis :)

Nopes, je vergist je niet :)
Bij een 500 krijg je echter het plaatje ook niet hoor :P Maar is dat niet echt een waarde die je krijgt als ie gewoon niet bestaat en als je die melding krijgt, kan het plaatje nog prima wel bestaan :)

Verwijderd

Triloxigen schreef op 16 december 2002 @ 00:19:
[...]


die werkte dus niet, had ik nl al geprobeerd..

en ipv uitleg te geven hoe het moet, wat ik zelf ook kan bedenken :)
heb ik liever een functie :)
Als je fopen EN getimagesize niet werken werkt PHP ook niet echt goed he?

En voor de functie moet je maar in de manual kijken of zelf schrijven.... lijtk beetje op script request

  • Bender
  • Registratie: Augustus 2000
  • Laatst online: 17-08 16:09
Ohw, ik wil ook headercodes vermeiden..
want het plaatje http://photo.triloxigen.nl/carolien/vlechtjes_achteren.jpg is bijv. een 404 maar er staat wel wat achter..

Dus dan krijg je al gezeik :p

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 23:39

.oisyn

Moderator Devschuur®

Demotivational Speaker

[rml][ php] controleren of een externe file bestaat2[/rml]
[rml][ PHP] check if file exist[/rml]

misschien iets voor in de FAQ? :)

[ Voor 10% gewijzigd door .oisyn op 16-12-2002 00:26 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Bender
  • Registratie: Augustus 2000
  • Laatst online: 17-08 16:09
Verwijderd schreef op 16 December 2002 @ 00:24:
[...]

Als je fopen EN getimagesize niet werken werkt PHP ook niet echt goed he?

En voor de functie moet je maar in de manual kijken of zelf schrijven.... lijtk beetje op script request
getimagesize is bedoeld voor lokaal de maten te kijken..
fopen is daar eigenlijk ook bedoeld..

En ik zoek in het manual, clown, alleen er staat niks in wat ik kan gebruiken zo..
Ik kan moeilijk letterlijk alle 2370 pagina gaan bekijken he :X

  • Bender
  • Registratie: Augustus 2000
  • Laatst online: 17-08 16:09
het vage is dus, die bovenste werkt helemaal niet, ipv werkt niet prettig..
dat is dus een probleem al :/
Warning: fopen("http://www.tweakers.net/", "r") - No such file or directory in /home/triloxigen/www/temp/test.php on line 2
url/file bestaat niet

[ Voor 22% gewijzigd door Bender op 16-12-2002 00:28 ]


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Triloxigen schreef op 16 december 2002 @ 00:25:
Ohw, ik wil ook headercodes vermeiden..
want het plaatje http://photo.triloxigen.nl/carolien/vlechtjes_achteren.jpg is bijv. een 404 maar er staat wel wat achter..

Dus dan krijg je al gezeik :p
Dan is er iets gruwlijks mis met je webserver :)

Triloxigen schreef op 16 december 2002 @ 00:27:
getimagesize is bedoeld voor lokaal de maten te kijken..
fopen is daar eigenlijk ook bedoeld..
http://www.php.net/manual/en/function.fopen.php
fopen() binds a named resource, specified by filename, to a stream. If filename is of the form "scheme://...", it is assumed to be a URL and PHP will search for a protocol handler (also known as a wrapper) for that scheme. If no wrappers for that protocol are registered, PHP will emit a notice to help you track potential problems in your script and then continue as though filename specifies a regular file.
(..)
If PHP has decided that filename specifies a registered protocol, and that protocol is registered as a network URL, PHP will check to make sure that allow_url_fopen is enabled. If it is switched off, PHP will emit a warning and the fopen call will fail.
Mwoah, volgens mij lees ik toch echt dat fopen() ook bedoeld is voor remote access, via registerd protocols. Tevens staat er ook vermeld wat ervoor kan zorgen dat fopen() geen remote files kan openen. Lees dat even.
En ik zoek in het manual, clown, alleen er staat niks in wat ik kan gebruiken zo..
Ik kan moeilijk letterlijk alle 2370 pagina gaan bekijken he :X

:/ Je hoeft ze echt niet alle xxxx te bekijken, alleen van fopen() was goed genoeg geweest

Verwijderd

Triloxigen schreef op 16 december 2002 @ 00:27:
[...]


getimagesize is bedoeld voor lokaal de maten te kijken..
fopen is daar eigenlijk ook bedoeld..

En ik zoek in het manual, clown, alleen er staat niks in wat ik kan gebruiken zo..
Ik kan moeilijk letterlijk alle 2370 pagina gaan bekijken he :X
Laat deze clown zelf nog even de manual er op openslaan:
http://www.php.net/manual/en/function.getimagesize.php
Example 2. getimagesize (URL)

<?php $size = getimagesize ("http://www.example.com/gifs/logo.gif"); ?>
Zoals je ziet staat het dus wel gewoon in de manual en ik heb je er nog vriendelijk op gewezen ook. D'r is dus iets mis met je webserver, iets wat Glimi ook zegt. Dus ga dat maar even fixen voordat je hier mensen clowns gaat noemen.....
:r

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Mjah, voordat de boel hier gaat volstaan met geflame en :r gaat ie op slot. Iets meer respect voor elkaar zou niemand mistaan :/
Pagina: 1

Dit topic is gesloten.