Als file niet bestaat dan andere foto weergeven

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Web Ontwikkelaar PHP, Nijmegen

Contactpersoon Roel Kavelaar rkavelaarATsearch-consult.nl 0243528815 0644949337 Organisatie Jong, gezond en sterk groeiende bedrijf dat webbased multimedia oplossingen bouwt in de omgeving Nijmegen. Het bedrijf bouwt voor klanten o.a. geavanceerde websites, webwinkels, webapplicaties en specifieke webbased software. Het bedrijf ontwikkelt en onderhoudt ook verschillende bekende Nederlandse websites. Op dit moment hebben zij een groeiende en brede klantenkring opgebouwd. Met betrekking tot programmeer-, onderhoud-, ontwerp-werkzaamheden wordt een PHP ontwikkelaar gezocht met kennis van contentmanagementsysteemen en frameworks. Locatie Nijmegen Verantwoordelijkheden (Her)Ontwerpen en (her)ontwikkelen in PHP ten behoeve van websites voor klanten, project klussen, onderhoud en specifieke klantwensen (Her)Ontwerpen en (her)ontwikkelen in PHP, PHP

Bekijk vacature »

Kees Mulder

Kees Mulder

27/03/2013 11:45:15
Quote Anchor link
Ik heb in mijn tabel een foto staan. Als hij deze niet kan vinden op de website dan moet hij een standaard foto laten zien alleen doet hij dat niet.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$filename
= "http://".$_SERVER['SERVER_NAME']."/img-nieuws/thumb/".$row['nieuws_foto']."";
    
if (!file_exists($filename)) {
        echo '<img src="http://".$_SERVER['SERVER_NAME']."img-nieuws/thumb/nieuws_foto.png">';
}

    else{
            echo "<img src=\"".$filename."\" alt=\"test\">";

    }

?>

Gewijzigd op 27/03/2013 11:45:42 door Kees Mulder
 
PHP hulp

PHP hulp

20/05/2019 13:52:07
Honeypot
 
- Mark -

- Mark -

27/03/2013 12:17:30
Quote Anchor link
Dat komt door regel 5.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

    $filename
= 'http://'.$_SERVER['SERVER_NAME'].'/img-nieuws/thumb/'.$row['nieuws_foto'];
    
    if (!file_exists($filename)) {

        echo '<img src="http://'.$_SERVER['SERVER_NAME'].'img-nieuws/thumb/nieuws_foto.png">';
    }

    else{

        echo '<img src="'.$filename.'" alt="test">';
    }

?>
 
Kees Mulder

Kees Mulder

27/03/2013 12:27:32
Quote Anchor link
Ik heb je script overgenomen maar hij blijft de foto niet vinden op de server ondanks dat ze er wel staan. Waar kan het nog anders aan liggen? Zou het evt. kunnen omdat het een png is ipv van jpg file.
Gewijzigd op 27/03/2013 12:28:11 door Kees Mulder
 
Ward van der Put
Moderator

Ward van der Put

27/03/2013 12:33:44
Quote Anchor link
Er ontbreekt een slash na de hostnaam in:

$_SERVER['SERVER_NAME'].'img-nieuws/thumb/nieuws_foto.png"
 
Kees Mulder

Kees Mulder

27/03/2013 12:36:09
Quote Anchor link
Die heb ik ook al aangepast maar dat geeft niet de oplossing. Het lijkt dat hier ergens wat fout zit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
    $filename
= 'http://'.$_SERVER['SERVER_NAME'].'/img-nieuws/thumb/'.$row['nieuws_foto'];
    
    if (!file_exists($filename))
?>
 
Ward van der Put
Moderator

Ward van der Put

27/03/2013 12:41:52
Quote Anchor link
Klopt: je controleert nu met file_exists() een URL in $filename. Dit moet een lokaal pad worden.

Je kunt het overigens ook aan de webserver overlaten door een 404 af te vangen met een aparte afbeelding.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
# In .htaccess voor Apache
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule \.(gif|jpe?g|png) /img-nieuws/thumb/nieuws_foto.png [NC,L]
 
Kees Mulder

Kees Mulder

27/03/2013 12:51:38
Quote Anchor link
Ik probeer nu het volgende om het te testen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo file_exists("http://www.website.nl/img-nieuws/thumb/nieuws_foto.png") ? "true" : "false";
?>


En dan geeft hij aan "falsche". Als ik de regel in chrome invul staat de foto er gewoon...
Gewijzigd op 27/03/2013 12:53:28 door Kees Mulder
 
Ozzie PHP

Ozzie PHP

27/03/2013 14:39:04
Quote Anchor link
Het is niet "falsche" maar false.

De functie file_exists verwacht een lokaal pad en niet een URL (http://www. ...). Jij moet dus in plaats van een URL het lokale pad van de afbeelding gebruiken. Ik weet niet of je op een eigen server of shared host draait, maar een lokaal pad is zoiets als "/home/kees/public_html/img-nieuws/thumb/nieuws_foto.png".

Ik kan vanuit hier het pad natuurlijk niet zien, maar de document root kun je achterhalen met $_SERVER['DOCUMENT_ROOT']. Je zou dit eens kunnen proberen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo file_exists($_SERVER['DOCUMENT_ROOT'] . '/img-nieuws/thumb/nieuws_foto.png') ? 'true' : 'false';
?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.