Anfrage wird falsch beantwortet?
Dschingis Khan
- php
0 ChrisB0 Dschingis Khan0 dedlfix0 Dschingis Khan1 Tom
Hallo!
Hoffe wieder einmal auf Unterstützung aus diesen Kreisen. Habe auf einer Seite eine einfache PHP Anfrage verwendet ob eine Datei existiert oder nicht. Leider wird immer die else-Variante ausgeführt also das falsche Bild angezeigt,auch wenn die Datei vorhanden wäre. Kann mir jemand sagen ob mein Code korrekt ist?
<?php
$filename = 'http://beispiel.ch/joomla16/images/teamfotos/ca.jpg';
if (file_exists($filename)) {
echo "<img src='$filename'/> ";
} else {
echo "<img src='http://beispiel.ch/joomla16/images/teamfotos/folgt.jpg'/>";
}
?>
Besten Dank für eure Hilfe!
Hi,
$filename = 'http://beispiel.ch/joomla16/images/teamfotos/ca.jpg';
if (file_exists($filename)) {
Lesen bildet:
[file_exists](http://www.php.net/manual/en/function.file-exists.php): “As of PHP 5.0.0, this function can also be used with \*some\* URL wrappers. Refer to Supported Protocols and Wrappers to determine which wrappers support stat() family of functionality.”
[Supported Protocols and Wrappers – HTTP](http://www.php.net/manual/en/wrappers.http.php): “Supports stat(): No”
Alternativ-Vorschläge für die Abfrage, ob ein HTTP-URL „existiert“, finden sich in den Nutzerkommentaren zu file\_exists.
MfG ChrisB
--
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
Schliesse ich daraus fälschlicherweise dass es so gehen sollte:
<?php
$filename = '/joomla16/images/teamfotos/ca.jpg';
if (file_exists($filename)) {
echo "<img src='$filename'/> ";
} else {
echo "<img src='/joomla16/images/teamfotos/folgt.jpg'/>";
}
?>
klappt nämlich auch net..
Tach!
$filename = '/joomla16/images/teamfotos/ca.jpg';
if (file_exists($filename)) {
Die untere Grende des Dateisystems ist nicht das DocumentRoot.
echo "<img src='/joomla16/images/teamfotos/folgt.jpg'/>";
Und das DocumentRoot wird sicher nicht das Root-Verzeichnis vom Server sein.
Oder anders: Dateisystemfunktionen gehen vom Root-Verzeichnis aus, Verweise im Netz vom DocumentRoot.
dedlfix.
Danke dir! Hab's nun wie folgt geändert und nun läufts:
<?php
$filename = '/home/beispiel/www/beispiel.ch/joomla16/images/teamfotos/ca.jpg';
if (file_exists($filename)) {
echo "<img src='/joomla16/images/teamfotos/ca.jpg'/> ";
} else {
echo "<img src='/joomla16/images/teamfotos/folgt.jpg'/>";
}
?>
Gruss
Hello,
Danke dir! Hab's nun wie folgt geändert und nun läufts:
<?php
$filename = '/home/beispiel/www/beispiel.ch/joomla16/images/teamfotos/ca.jpg';if (file_exists($filename)) {
echo "<img src='/joomla16/images/teamfotos/ca.jpg'/> ";
} else {
echo "<img src='/joomla16/images/teamfotos/folgt.jpg'/>";
}
?>
Und wenn Du mit dem Projekt umziehst in ein anderes Verzeichnis, dann musst Du wieder alles nachbessern.
$filename = $\_SERVER['DOCUMENT\_ROOT] . '/joomla16/images/teamfotos/ca.jpg';
oder sicherer, weil auch manche Einrichtungen den POSUIX-Standard einhalten, dass Verzeichnisse immer mit abschließendem Verzeichnistrenner anzugeben sind:
$filename = rtrim($\_SERVER['DOCUMENT\_ROOT], '/') . '/joomla16/images/teamfotos/ca.jpg';
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
![](http://selfhtml.bitworks.de/Virencheck.gif)
--
☻\_
/▌
/ \ Nur selber lernen macht schlau
<http://bergpost.annerschbarrich.de>