url unter view.php anzeigen

Hallo community,
man wollte gerne ein dynamisches script erzeugen Dies ist auch gut gelungen. Die funktion:
es guckt in einen ordner und zeigt bilder untereinander darunter die URL zum kopieren an.

script:
Code:
 <?php
$domain = "URL";
$dir = "./"; 
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
		$Dateiinfo    = pathinfo("/$dir/$file");
		$endung       = ".".$Dateiinfo["extension"]."";
		$Datei        = basename($file, $endung);
		$komplett     = substr($dir,2);
		if($Datei !== "." AND $endung == ".jpg" OR $endung == ".jpeg" OR $endung == ".png" OR $endung == ".gif"){
		echo "<img src=\"$dir/$file\"><br><textarea>$domain/$komplett/$file</textarea><br><br>\n"; 
		}
		}
        closedir($dh);
    }
} else {
echo "Das Verzeichnis $dir existiert nicht. "; 
}
?>

mein problem, wie mache ich es dass er mir die url auch dynamisch ausgibt?
also, so, dass man das script in jedes verzeichniss des server legen kann und immer
die richtige url zu jedem bild angezeigt bekommt?

ich denke es ist sicher ganz einfach, aber daher ich ein neuling bin und so nicht fündig wurde ...

Gruß
Anducar
 
dafür bietet PHP die variable $_SERVER['DOCUMENT_ROOT']!
dieses zeigt immer auf das wurzelverzeichneis der seite.

ich hätte dann sowas in der art gemacht:
Code:
<?php
$domain = "URL";
$dir = $_SERVER['DOCUMENT_ROOT'] . "/";
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
 
hi, ne da habe ich nicht richtig beschrieben.
also.:
Code:
$domain = "URL";
URL wird mit der Url des server ersetzt, um die links anzuzeigen, ich will es aber so haben das er die URL automatisch erkennt. und ich das script somit ohne es zu bearbeiten zu müssen einfach inen verzeichniss rein kopiere
und die url dynamisch hält.

hofe so war es verständlich

Anducar

//edit villeicht kann man das auch ganz anders machen?
 
Du kannst dir die aktuell aufgerufene URL aus dem Array $_SERVER zusammenbauen.
Das sieht z.B. so aus:
PHP:
<?php
$domain = 'http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . '/';
...
?>
Wenn du irgendwelche exotischen Server-Einstellungen (https, anderer Port) hast, musst du das noch extra beruecksichtigen.

mfg, metax.
 
Ich frage mich gerade, wie du auf 4 Slashes kommst ...
probier's mal so:
PHP:
<?php
$domain = $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . '/';
$dir = "./"; 
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
		$Dateiinfo    = pathinfo("/$dir/$file");
		$endung       = ".".$Dateiinfo["extension"]."";
		$Datei        = basename($file, $endung);
		$komplett     = substr($dir,2);
		$kompletteurl = 'http://' . preg_replace('#/+#', '/', $domain . $komplett . file);
		if($Datei !== "." AND $endung == ".jpg" OR $endung == ".jpeg" OR $endung == ".png" OR $endung == ".gif"){
		echo "<img src=\"$dir/$file\"><br><textarea>$kompletteurl</textarea><br><br>\n"; 
		}
		}
        closedir($dh);
    }
} else {
echo "Das Verzeichnis $dir existiert nicht. "; 
}
?>
Die zusaetzliche Funktion entfernt alle mehrfach-Slashes aus dem Pfad.

mfg, metax.
 
ich hatte
Code:
$domain = $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . '/';
einfach kopiert gehabt, da hätte ich auch selber drauf kommen können.

dein letzter post das script geht so wie ich es mir vorgstellt habe.
damit ist das thema wohl erledigt

Danke Vielmals


//edit:
Sorry, es ist mir was ganz wichtiges aufgefallen, unter den bildern wird nur die seiten url
angezeigt http://xxx.de , aber, nicht die volle url des bildes z.b. http://xxx.de/im/animation/baluderbaer.png

das war ja das was ich eigentlich haben wollte, da muss es doch noch eine andere möglichkeit geben , oder?


/////EDIT: weiss man hier keiner mehr was?
oder habe ich nicht richtig gefragt/beschrieben?
 
Zurück
Oben