PDA

Bekijk Volledige Versie : PHP vraag



Will van der Heijden
16/09/03, 10:30
Hallo,

ik heb het volgende probleem:
Ik heb een MySQL database met o.a. een tabel met leden van een vereniging.
In deze tabel wordt ook de geboortedatum bijgehouden en op de site van de
vereniging wordt een lijstje getoond van de leden die de huidige dag jarig
zijn.

Van de meeste leden is ook een foto gemaakt en deze staat ergens op schijf.
Deze is wel toegankelijk via Internet, maar niet op de dezelfde server als
waar het PHP script staat.

Nu wil ik de jarige laten zien als link naar de foto, maar alleen als de
foto bestaat. Bestaat de foto niet, dan moet gewoon de naam worden getoond
en niet als link.

Mijn probleem is dat ik wil testen of de foto bestaat, maar ik weet niet
hoe. Ik dacht eerst aan is_file, maar dat zal wel voor serverside files
gelden en dat lukte me dus niet. Daarna probeerde ik fsockopen, maar ook dat
lukt me niet. Is er een functie of werkwijze in PHP om dit op te lossen?

--
groeten,

Will

Hans
16/09/03, 11:30
On Tue, 16 Sep 2003 10:11:14 +0200,
Will van der Heijden <w.heijden@uvt.nl> wrote:

> Nu wil ik de jarige laten zien als link naar de foto, maar alleen als de
> foto bestaat. Bestaat de foto niet, dan moet gewoon de naam worden getoond
> en niet als link.
>
> Mijn probleem is dat ik wil testen of de foto bestaat, maar ik weet niet
> hoe. Ik dacht eerst aan is_file, maar dat zal wel voor serverside files
> gelden en dat lukte me dus niet. Daarna probeerde ik fsockopen, maar ook dat
> lukt me niet. Is er een functie of werkwijze in PHP om dit op te lossen?

<http://nl2.php.net/manual/en/function.file-exists.php>

Groet,

Hans

--
http://spamikaze.nl.linux.org/

Rene Pijlman
16/09/03, 12:00
Will van der Heijden:
>Van de meeste leden is ook een foto gemaakt en deze staat ergens op schijf.
>Deze is wel toegankelijk via Internet, maar niet op de dezelfde server als
>waar het PHP script staat.
>
>Nu wil ik de jarige laten zien als link naar de foto, maar alleen als de
>foto bestaat. Bestaat de foto niet, dan moet gewoon de naam worden getoond
>en niet als link.
>
>Mijn probleem is dat ik wil testen of de foto bestaat, maar ik weet niet
>hoe.

Ik heb dit zelf nooit gedaan, maar ik zou hiermee beginnen:
http://nl.php.net/manual/en/features.remote-files.php

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

Daniel Tryba
16/09/03, 12:30
Hans <nomailwanted@e35203.upc-e.chello.nl> wrote:
>> Mijn probleem is dat ik wil testen of de foto bestaat, maar ik weet niet
>> hoe. Ik dacht eerst aan is_file, maar dat zal wel voor serverside files
>> gelden en dat lukte me dus niet. Daarna probeerde ik fsockopen, maar ook dat
>> lukt me niet. Is er een functie of werkwijze in PHP om dit op te lossen?
>
> <http://nl2.php.net/manual/en/function.file-exists.php>

Er stond ook nog:
'Van de meeste leden is ook een foto gemaakt en deze staat ergens op
schijf. Deze is wel toegankelijk via Internet, maar niet op de dezelfde
server als waar het PHP script staat.'

En voor file_exists() geldt:
'This function will not work on remote files as the file to be examined
must be accessible via the servers filesystem.'

OP zal gewoon met fockopen tewerk moeten gaan, in het geval van http
gebruik makend van HEAD en de geretouneerde headers scannen op status
200 dan wel een andere. Dus OP laat maar eens zien wat je al geprobeerd
hebt...

--

Daniel Tryba

Hans
16/09/03, 13:00
On Tue, 16 Sep 2003 10:20:52 +0000 (UTC),
Daniel Tryba <news_nl.internet.www.server-side@canopus.nl> wrote:
> Hans <nomailwanted@e35203.upc-e.chello.nl> wrote:

>>> Mijn probleem is dat ik wil testen of de foto bestaat, maar ik weet niet
>>> hoe. Ik dacht eerst aan is_file, maar dat zal wel voor serverside files
>>> gelden en dat lukte me dus niet. Daarna probeerde ik fsockopen, maar ook dat
>>> lukt me niet. Is er een functie of werkwijze in PHP om dit op te lossen?
>>
>> <http://nl2.php.net/manual/en/function.file-exists.php>
>
> Er stond ook nog:
> 'Van de meeste leden is ook een foto gemaakt en deze staat ergens op
> schijf. Deze is wel toegankelijk via Internet, maar niet op de dezelfde
> server als waar het PHP script staat.'
>
> En voor file_exists() geldt:
> 'This function will not work on remote files as the file to be examined
> must be accessible via the servers filesystem.'
>
> OP zal gewoon met fockopen tewerk moeten gaan, in het geval van http
> gebruik makend van HEAD en de geretouneerde headers scannen op status
> 200 dan wel een andere. Dus OP laat maar eens zien wat je al geprobeerd
> hebt...

Ik had wat duidelijker moeten zijn ja. Er staan op die pagina een
voorbeeld waarbij je remote kunt checken of er bepaalde bestanden
aanwezig zijn:

$image_info = @getimagesize("http://$filelocation/$filename");
$type=$image_info[2];
if ($type == 0) {
echo "file doesnt exists";
} else {
echo "the file exists";
}


Hans

--
http://spamikaze.nl.linux.org/

Will van der Heijden
16/09/03, 13:45
<KNIP>

> Ik had wat duidelijker moeten zijn ja. Er staan op die pagina een
> voorbeeld waarbij je remote kunt checken of er bepaalde bestanden
> aanwezig zijn:
>
> $image_info = @getimagesize("http://$filelocation/$filename");
> $type=$image_info[2];
> if ($type == 0) {
> echo "file doesnt exists";
> } else {
> echo "the file exists";
> }

Ja dat voorbeeld heb ik ook gevonden en uitgeprobeerd, en als de file
bestaat geeft ie keurig terug "the file exists", maar als de file niet
bestaat komt er de melding "The server returned aan invalid or unrecognized
response"

Will

Hans
16/09/03, 14:30
On Tue, 16 Sep 2003 13:34:55 +0200,
Will van der Heijden <w.heijden@uvt.nl> wrote:

>> if ($type == 0) {
>> echo "file doesnt exists";
>> } else {
>> echo "the file exists";
>> }
>
> Ja dat voorbeeld heb ik ook gevonden en uitgeprobeerd, en als de file
> bestaat geeft ie keurig terug "the file exists", maar als de file niet
> bestaat komt er de melding "The server returned aan invalid or unrecognized
> response"

if ($type != 0){
echo "file exists";
}

Dit zou het moeten doen denk ik.

Hans

--
http://spamikaze.nl.linux.org/

Will van der Heijden
16/09/03, 17:00
"Hans" <nomailwanted@e35203.upc-e.chello.nl> wrote in message
news:slrnbme00m.6l1.nomailwanted@e35203.upc-e.chello.nl...
> On Tue, 16 Sep 2003 13:34:55 +0200,
> Will van der Heijden <w.heijden@uvt.nl> wrote:
>
> >> if ($type == 0) {
> >> echo "file doesnt exists";
> >> } else {
> >> echo "the file exists";
> >> }
> >
> > Ja dat voorbeeld heb ik ook gevonden en uitgeprobeerd, en als de file
> > bestaat geeft ie keurig terug "the file exists", maar als de file niet
> > bestaat komt er de melding "The server returned aan invalid or
unrecognized
> > response"
>
> if ($type != 0){
> echo "file exists";
> }
>
> Dit zou het moeten doen denk ik.

Maar dat doet het (bij mij) niet. Als de file niet bestaat gaat het mis bij
de aanroep van de functie
@getimagesize("http://$filelocation/$filename");

Will

Hans
16/09/03, 17:45
On Tue, 16 Sep 2003 16:41:43 +0200, Will van der Heijden <w.heijden@uvt.nl> wrote:


> Maar dat doet het (bij mij) niet. Als de file niet bestaat gaat het mis bij
> de aanroep van de functie
> @getimagesize("http://$filelocation/$filename");

Ok, tegen de gewoonte in heb ik zelf ook even getest:

$image_info =
@getimagesize("http://spamikaze.is-a-geek.org/images/spamikaze-zsmall.jpg");
print_r ($image_info);
$type=$image_info[2];
if ($type > 0) {
echo "bestaat";
} else {
echo "bestaat niet";
}

Deze code werkt, tenzij je een image van 0 pixels hebt :-) Php vergelijkte
strings in dit voorbeeld en 0 != "0". Die print_r kun je gebruiken om goed
te zien wat er allemaal in een array zit.

Hans
--
http://spamikaze.nl.linux.org/

Daniel Tryba
16/09/03, 21:45
Hans <nomailwanted@e35203.upc-e.chello.nl> wrote:
> $image_info =
> @getimagesize("http://spamikaze.is-a-geek.org/images/spamikaze-zsmall.jpg");
> print_r ($image_info);
> $type=$image_info[2];
> if ($type > 0) {
> echo "bestaat";
> } else {
> echo "bestaat niet";
> }
>
> Deze code werkt, tenzij je een image van 0 pixels hebt :-) Php vergelijkte
> strings in dit voorbeeld en 0 != "0". Die print_r kun je gebruiken om goed
> te zien wat er allemaal in een array zit.

<q src='http://nl2.php.net/getimagesize'>
Some formats may contain no image or may contain multiple images. In
these cases, getimagesize() might not be able to properly determine the
image size. getimagesize() will return zero for width and height in
these cases.
</q>

Beter is het om gewoon de return waarde van getimagesize te checken:
if(@getimagesize($url)!==false)
{
//een geldig plaatje
}
else
{
//een plaatje
}

--

Daniel Tryba

Hans
16/09/03, 22:15
On Tue, 16 Sep 2003 19:44:53 +0000 (UTC), Daniel Tryba <news_nl.internet.www.server-side@canopus.nl> wrote:
> Hans <nomailwanted@e35203.upc-e.chello.nl> wrote:
>>
>> Deze code werkt, tenzij je een image van 0 pixels hebt :-) Php vergelijkte
>> strings in dit voorbeeld en 0 != "0". Die print_r kun je gebruiken om goed
>> te zien wat er allemaal in een array zit.
>
><q src='http://nl2.php.net/getimagesize'>
> Some formats may contain no image or may contain multiple images. In
> these cases, getimagesize() might not be able to properly determine the
> image size. getimagesize() will return zero for width and height in
> these cases.
></q>
>
> Beter is het om gewoon de return waarde van getimagesize te checken:
> if(@getimagesize($url)!==false)
> {
> //een geldig plaatje
> }
> else
> {
> //een plaatje
> }

Kijk, zo leer ik er zelfs nog wat van :-)

Hans


--
http://spamikaze.nl.linux.org/

Will van der Heijden
17/09/03, 10:15
"Daniel Tryba" <news_nl.internet.www.server-side@canopus.nl> wrote in
message news:bk7p7l$bqp$2@news.tue.nl...
> Hans <nomailwanted@e35203.upc-e.chello.nl> wrote:
> > $image_info =
> >
@getimagesize("http://spamikaze.is-a-geek.org/images/spamikaze-zsmall.jpg");
> > print_r ($image_info);
> > $type=$image_info[2];
> > if ($type > 0) {
> > echo "bestaat";
> > } else {
> > echo "bestaat niet";
> > }
> >
> > Deze code werkt, tenzij je een image van 0 pixels hebt :-) Php
vergelijkte
> > strings in dit voorbeeld en 0 != "0". Die print_r kun je gebruiken om
goed
> > te zien wat er allemaal in een array zit.
>
> <q src='http://nl2.php.net/getimagesize'>
> Some formats may contain no image or may contain multiple images. In
> these cases, getimagesize() might not be able to properly determine the
> image size. getimagesize() will return zero for width and height in
> these cases.
> </q>
>
> Beter is het om gewoon de return waarde van getimagesize te checken:
> if(@getimagesize($url)!==false)
> {
> file://een geldig plaatje
> }
> else
> {
> file://een plaatje
> }

Ja dit werkt bij mij ook. Bedankt voor jullie hulp.

Groeten,
Will