PHP, Dateiexistenz überprüfen

hi, wie in meinem anderen thema vielleicht schon bekanntgeworden, bastele ich gerade eine hp für nen anderen typen!
bin gerade dabei, ein bilduploader zu bauen, der in nem kalender integriert ist! (bissl schwierig das zu erklären, werde den link wenns fertig ist mal posten, dann wisst ihr im nachhinein was ich meinte ;)

aber jetzt zu meiner frage (bezieht es net auf mein upload-projekt sonst wirds zu kompliziert...):

folgendes:

stellt euch vor, ihr habt ne seite vor euch mit mehreren links alle links sollen auf verscheidene bilder verweisen.

nur die bilder werden nach und nach hochgeladen. jedoch die links dafür sieht schon sichtbar!

soweit alle kein problem, denn wenn man auf ein link klickt, wo das bild noch net existiert kommt der bekannte fehler "HTTP 404 - Datei nicht gefunden"!

das möchte ich aber net!



so, ist es möglich, mit PHP zu überprüfen, ob das bild vorhanden ist oder net und wenn ja soll es angezeigt werden (auch verständlich) aber wenn es net vorhanden ist soll net der fehler kommen sondern z.b. ein ersatzbild oder ein text wie: "Bild noch net vorhanden" !?

mit dem was ich suche muss man also ein verzeichnis durchscannen müssen, welches nach der datei sucht und wenn es die net findet ein ersatzbild oder fehler anzeigen!?

IST DAS MÖGLICH? UND WENN JA WIE??

wäre super cool, es könnte mir jemand helfen!!
 
@sunstepper
Danke!!!!

doch jetzt hab ich ein zweites problem:

PHP:
$pic = "01/01.jpg";
$er  = "error.php";

if (file_exists($pic)) {
print $pic;
} else {
print $er;
}

echo    "<a href='hier rein'>$pic</a>";

wie stelle ich es an, dass der if-tag unten in dem link (wo: "hier rein" steht)angezeigt wird?
wenn ich den normal reinschreibe funzt das net!

kann mir bitte nochmal jemand weiterhelfen??
 
PHP:
<?php

$pic = "01/01.jpg";
$er = "error.php";

if(file_exists($pic))
    echo "<a href='hier rein'><img src="$pic"></a>";
else
    echo $er;
?>
 
danke ranger, das ist nett!

jedoch hatte ich das vorher auch!


schön wäre es jedoch, wenn ich das alles so kurz wie möglich fasseb könte und das ginge mit der variante die ich noch suche!


gibt es eine möglichkeit, diesen ganzen if-tag in eine variable zu packen??

weil wenn ich den if-tag in einer variable hab, kann ich ohne probleme
<a href="<?=$variable?>">bla</a>
schreiben!

so würd ich das gern haben, jedoch weiß ich net wie!?
 
Meinst du das? Ansonsten musst du nochmal genau erklären, was du willst.

<?php
//..
echo '<a href="'.$pic.'"><img src="'.$pic.'"></img></a>';
?>

Gruß
 
hehe! bin immer ein bisschen kompliziert!

also....

stell dir einen link (<a href...) mit zwei möglichkeiten vor:
1. möglichkeit: das bild existiert und wird auch geladen
2. möglichkeit: das bild existiert net und dafür wird die error.php geladen!

also theoretisch so (nur das das net geht also nur bildlich betrachten):

<a href="bild.jpg/error.php">Link</a> (wenn das bild existiert wird das bild geladen, wenn das bild nicht existiert wird die error.php geladen

damit das das überprüfen der existanz mit php klappt braucht man den "if-tag"
PHP:
if (file_exists($pic)) {
print $pic;
} else {
print $er;
}

und ich möchte wissen, ob es möglich ist diesen "if-tag" in eine variable zu packen, damit ich dann im link folgendes angeben kann:

PHP:
echo "<a href=$if_tag>Link</a>";

die variable $if_tag soll den kompletten "if-tag" (wie ich oben gezeigt habe) beinhalten!

geht diese möglichkeit??

bei fragen bitte fragen ich antworte gern, denn mir ist das sehr wichtig, da es einem projekt dient!

danke im vorraus!
 
so was ? habs nich getestet aber müsste klappen
PHP:
 <a href=<? file_exists("01/01.jpg") ? print "\"01/01.jpg\"" : print "\"error.php\""; ?>>01/01.jpg</a>

mfg
püppi
 
Du kannst eine Funktion schreiben.
Sowas zum Beispiel:

Code:
<?php
$error = 'link/to/error.jpg';

function showPic($path) {
	if(file_exists($path)) return $path;
	else return $error;
} 

echo '<a href="'.showPic('01.jpg').'">click</a>';
?>

Gruß

Edit: Tja, im Habo gehts immer ziemlich stressig zu... :O
 
hi,
danke!!! habt mir sehr geholfen! es klappt jetzt!
zwar auf nem weg, den ich schon probiert hatte und der zuvor net geklappt hat aber jetzt gehts wunderbar! muss an dem forum hier liegen! *grins*

thema kann geschlossen werden!
 
Zurück
Oben