PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wenn bild existiert, dann anzeigen


Wichu
09.01.2004, 12:31:31
Hi,

habe folgendes Problem, ich möchte haben, dass mein Script prüft ob das Bild existiert, und wenn ja, es auch ausgiebt, nur funktioniert es nicht, er gibt mir einfach nichts aus :(

if(file_exists("../pics/member/$pic"))
echo "<img src="pics/member/$pic">";

ist es wichtig, ob $pic nur aus "test" besteht oder "test.jpg"?

EyeDacor
09.01.2004, 13:27:20
dateiendung muss mit angegeben werden (könnte ja auch ne gif oder txt sein oder sonst was)

und frag, ob file_exists auch true zurückgibt.

Wichu
09.01.2004, 13:29:11
also:

if(file_exists("../pics/member/$pic") == 1)
echo "<img src="pics/member/$pic">";


oder?

DaddyCool
09.01.2004, 13:39:21
Original geschrieben von EyeDacor
und frag, ob file_exists auch true zurückgibt. [/B]
unnötig, file_exists() kann nur true und false zurückgeben und wie er es in seinem ersten Beispiel hat ist es korrekt, alles andere wäre doppelt gemoppelt.

"if" testet immer ob der Wert zwischen den Klammern true oder false ist, und true ist nunmal true, daran ändert auch eine extra Überprüfung nichts.

@Wichu
Die Dateiendung muss immer mit dazu, denn es gibt auch dateien mit anderen bzw. gar keinen Endungen. file_exists() wüsste nicht welche du meinst, deswegen reagiert er nur wenn alles stimmt. Dazu gehört auch die Groß- und Kleinschreibung, d.h. File.txt und file.txt sind für file_exists() zwei unterschiedliche Dateien.

Wichu
09.01.2004, 13:47:14
um z.Bsp. .jpg dranzuhängen, müsste ich nur

$pic = $pic.".jpg";

oder?

meikel (†)
09.01.2004, 15:38:11
Original geschrieben von Wichu
ich möchte haben, dass mein Script prüft ob das Bild existiert, und wenn ja, es auch ausgiebt, nur funktioniert es nicht, er gibt mir einfach nichts aus :(
if(file_exists("../pics/member/$pic"))
echo "<img src="pics/member/$pic">";

Das Script ist korrekt.

EDIT: Leider war das doch falsch. Richtig ist:
echo "<img src="../pics/member/$pic">";


ist es wichtig, ob $pic nur aus "test" besteht oder "test.jpg"?Ja.

$pic .= '.jpg';
if(file_exists("../pics/member/$pic"))
echo "<img src="../pics/member/$pic">";

Wichu
09.01.2004, 16:12:57
$pic .= '.jpg';
if(file_exists("../pics/member/$pic"))
echo "<img src="pics/member/$pic">hideho";
else
echo "$pic";


Ausgabe:
xxx.jpg :(

chris17
09.01.2004, 16:17:17
Hi Wichu,

vergleiche mal ganz genau die beiden Pfadangaben ;)
In der <img src=""> fehlt "../ "

Wichu
09.01.2004, 16:18:05
IDIOT, IDIOT, IDIOT ...

bin ich DUMM:

$pic .= '.jpg';
if(file_exists("pics/member/$pic"))
echo "<img src="pics/member/$pic">hideho";
else
echo "$pic";

nicht (ohne ../)$pic .= '.jpg';
if(file_exists("pics/member/$pic"))
echo "<img src="pics/member/$pic">hideho";
else
echo "$pic";

feuervogel
09.01.2004, 16:19:33
$pic .= '.jpg';

if(file_exists("../pics/member/$pic"))

echo "<img src="../pics/member/$pic">";

else

echo "$pic";

immer gleiche dateinpfade verwenden:)

nomic
09.01.2004, 18:33:00
Man kann die geschweiften Klammern weglassen?

Wieder was gelernt :)

chris17
09.01.2004, 18:39:29
Man kann die geschweiften Klammern weglassen?
Vorsicht, nur wenn nach if/else eine einzige Anweisung/Zeile kommt. -> http://selfphp.info/funktionsreferenz/kontroll_mechanismen/if.php

Carsten25
20.03.2004, 00:35:53
Hallo,

ich nutze auch diese Funktion um zu checken ob die Grafik vorhanden ist. Nun ist es aber bei mir so das die Dateiendung einmal groß und einmal klein geschrieben ist. (z.B. .jpg, .JPG, .gif usw). Dann wird natürlich die Grafik nicht erkannt. Gibt es irgendeine Möglichkeit die Funktion ohne Dateiendung zu nutzen oder das diese verschiedene Schreibweisen der Dateiendung erkennt?

Gruß
Carsten

meikel (†)
20.03.2004, 01:44:35
Original geschrieben von Carsten25
ich nutze auch diese Funktion um zu checken ob die Grafik vorhanden ist. Nun ist es aber bei mir so das die Dateiendung einmal groß und einmal klein geschrieben ist. (z.B. .jpg, .JPG, .gif usw). Dann wird natürlich die Grafik nicht erkannt.
Jou, Linux macht bekanntlich Unterschiede zwischen großen und kleinen Buchstaben.

Gibt es irgendeine Möglichkeit die Funktion ohne Dateiendung zu nutzen
Nein.

oder das diese verschiedene Schreibweisen der Dateiendung erkennt?
Nein.

Für Linux sind Bild.GIF und bILD.giF zwei unterschiedliche Dateien. Du solltest beim Upload eben darauf achten, daß alle Dateinamen durchgängig kleingeschrieben werden. Dann hast Du weniger Streß beim Suchen...

Carsten25
20.03.2004, 09:08:17
Danke Meikel, ich weiss selber das Linux einen unterschied zwischen groß und Kleinschreibung macht. Es geht ja auch um verschiedene Dateiendungen. Diese Dateien werden durch eine perl Script hochgeladen und von image::magick verarbeitet wo ich nur ungern dran rumfuschen möchte.

Deshalb hatte ich eigentich gedacht das es eine ergänzente Funktion in php gibt mit der man ähnlich wie file_exists überprüfen kann ob diese Datei mit dem Namen yx existstiert und gleichzeitig die Dateiendung zur weiteren verarbeitungen ausgibt.

Ich habe in einem anderen Forum den Tipp bekommen ich soll mir was mit "glob" zusammenbasteln. Finde aber leider nur wenige Informationen zu dieser Funktion. In der php manual ist diese auch nur in englisch verfügbar. In der Funktionsliste von selfphp ist sie auch nich vorhanden. Hat sie von euch schon mal jemand verwendet?

Gruß
Carsten