Tom: Pfade und URLs und Aliasverzeichnisse ineinander überführen

Beitrag lesen

Hello,

ich benötige mal etwas Denkhilfe:

Ein Script erzeugt auf dem Server aus Bildern Thumbs und legt diese in einem für den PHP-Prozess zugänglichen Verzeichnis ab.

Nun soll die vollständige URL zu den Thumbs ermittelt werden, wenn das Zielverzsichnis innerhalb der DocRoot liegt. Anderenfalls soll eben nur false zurückgegeben werden.

Bisher bin ich hier angekommen:

function get_url($path,$protocol='http://')
{
  $url = false;

## Dokument Root richtig stellen
  $doc_root = $_SERVER['DOCUMENT_ROOT'];
  if (substr($doc_root,-1) != "/")
  {
    $doc_root .= '/';
  }

## liegt der Phad innerhalb der Document-Root?
  $realpath = realpath($path);

if (strpos($realpath,$doc_root)===0)
  {
    $ressource = substr($realpath,strlen($doc_root));
    $url = $protocol.$_SERVER['HTTP_HOST'].'/'.$ressource;
  }
  return $url;
}

Leider funktioniert das so nicht, wenn es sich z.B. un ein UserDir handelt. Wenn also z.B.

http://www.bitworks.de/~tschmieder/bilder/min_abf1233d.jpg

die vollständige URL zum Ergebnis wäre, bekomme ich das nicht aufgelöst und es fällt mir auch absolut nicht ein, wie ich das machen könnte.

Das Script würde dann z.B. in

/home/tschmieder/public_html/test/bildgalerie/
entsprechend:
   http://www.bitworks.de/~tschmieder/test/bildgalerie/

liegen.

Das Problem dabei ist, dass der absolute Pfad hier nicht innerhalb der Dokument-Root für den VirtHost liegt.

Ob die resultierende URL schlussendlich wirklich HTTP-accessible ist, soll hier vorerst nicht geprüft werden. Das kommt dann später ;-))

Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau