Gibt es eine Variable die die URL enthält?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gibt es eine Variable die die URL enthält?

    Moinsen!

    Ich habe ein Problem mit relativen Pfaden.
    Vor kurzem habe ich begonnen, die Web-Site unseres Vereins umzugestalten. Der Aufbau der Seite ist wie folgt:
    Ein Banner oben und ein Menü links. Der Inhalt der Seite soll im restlichem Teil des Bildschirms angezeigt werden.
    Klick man einen Menüpunkt an, wird die index Seite neu geladen, die die Position des Banners und des Menüs enthält und der Inhalt wird per include an die richtige Position gesetzt. Das funktioniert auch!
    Nun benutze ich allerdings einige Seiten unserer alten Web-Site, die Bilder enthalten mit relativen Pfadangaben. Diese Bilder werden natürlich nicht angezeigt. Nun müßte ich also, in alllen alten Seiten die relativen Pfade durch absolute ersetzen. Das wäre viel arbeit.
    Nun meine Frage:
    Gibt es eine Möglichkeit, diese relativen Pfade beizubehalten???
    Ich suche so etwas wie eine Variable, die den Pfad enthält aus dem die Bilder geladen werden. Irgendwoher muss doch das Image-Tag wissen, wie der Rest des Pfades lautet. Dieser Pfad steht ja normalerweise in der Url.
    Um das Problem noch einmal zu verdeutlichen:
    Meine index befindet sich im ROOT Verzeichnis und wird bei jeder Menü auswahl neu geladen und der Inhalt wird mit include hinzugefügt.
    Die Bilder dieser includetetn Dateien befinden sich in anderen Verzeichnissen und sind relativ angegeben.
    URL : www.domainname.de/index.php4
    Das Bild einer includetetn Datei befindet sich wo anders z.B in www.domianname.de/Verzeichnis/Bilder/
    im image-Tag steht: <img src='Bild.jpg'>
    Kann ich dem Image nun sagen Das Bild befindet sich nicht im Verzeichnis www.domianname.de/(da ja index neu geladen wurde) sindern im Verzeichnis www.domianname.de/Verzeichnis/Bilder/
    Ich hoffe, ihr versteht wo rauf ich hinaus willl

    Danke schon mal im vorraus

  • #2
    in der "includierten" (was ein wort) Datei,

    chdir("Verzeichnis/Bilder/");



    Bin mir nicht sicher, aber ich meine ich hab das irgendwo schonmal gelesen

    www.php.net/chdir

    Kommentar


    • #3
      Original geschrieben von Skaschy
      in der "includierten" (was ein wort) Datei,

      chdir("Verzeichnis/Bilder/");



      Bin mir nicht sicher, aber ich meine ich hab das irgendwo schonmal gelesen

      www.php.net/chdir
      schwachsinn, das wechselt nur auf dem server das verzeichnis.

      du musst das schon im imagetag anpassen. z.B. könntest du eine variable anlegen in der du das imageverzeichnis reinspeicherst und dann in alle imagetags mit dieser variable + dateiname arbeiten...
      Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
      var_dump(), print_r(), debug_backtrace und echo.
      Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
      Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
      Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

      Kommentar


      • #4
        mit anderen Worten so:

        PHP-Code:
        $dir='/verzeichnis/bilder/';
        <img src="<?= $dir?>bild1.jpg" alt="bild1">
        Unabhängig davon in welcher Ebene das Script gestartet wird, springt er stets in den Docroot und dann in die jeweiligen Verzeichnisse hinein.
        Damit wurde aus relativ nun absolut.

        Sofern wie vermutet die Bilder stets immer wie geschildert liegen
        [color=blue]MfG Payne_of_Death[/color]

        [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
        [color=red]Merke:[/color]
        [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

        Murphy`s Importanst LAWS
        Jede Lösung bringt nur neue Probleme
        Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
        In jedem kleinen Problem steckt ein großes, das gern raus moechte.

        Kommentar


        • #5
          Irgendwoher muss doch das Image-Tag wissen, wie der Rest des Pfades lautet. Dieser Pfad steht ja normalerweise in der Url.
          Nein, das Image-Tag weiß nur das was eben drinsteht (z.B. eben der relative Pfad), sonst nichts. Den Rest macht der Browser. Wenn er z.B. eine html-Seite von www.domain.de/seite.htm lädt und diese Seite enthält ein Image-tag das das Bild bild.jpg anzeigen soll, dann bildet der Browser eine absolute Url daraus -> www.domain.de/bild.jpg und versucht es von dort zu laden.

          Wenn du die alten Dateien mit include() einbildest dürfte es IMHO schwierig werden, da müsstest schon alle includierten Dateien irgendwie bearbeiten (wie Payne_of_Death es sagt) dann könntest aber auch gleich die richtigen Pfade bzw. komplette Url's eintragen, außer ich überseh da grad was.

          Eine Vorgehensweise die mir dazu einfallen würde wäre in etwa:

          deine index.php
          PHP-Code:
          <?php

          function parse_included_file($file)
          {
          $pfad explode("/",$file);
          array_pop($pfad);
          $pfad implode("/",$pfad); 
          $replace "img src='".$pfad;

          $file implode("",file($file));
          $file str_replace("img src='",$pfad,$file);
          echo 
          $file;
          }

          parse_included_file("dein_verzeichnis/deine_seite.html");

          ?>
          Die Funktion einmal in deine Index.php integrieren, anstelle von include(), verwendest du aber parse_included_file();

          Code ist ungetestet und könnte noch buggy sein, aber vom Prinzip her sollte es hinkommen.

          Gruss
          Quetschi
          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
          Schön - etwas Geschichte kann ja nicht schaden.
          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

          Kommentar


          • #6
            ohne wirklich gelesen zu haben, werfe ich auch mal mod_rewrite in den raum.

            Kommentar


            • #7
              Vielen Dank für eure Antworten. Ich werde mal testen, was am besten zu meinem Script passt. Das mit der Funktion, die die html-seite anpasst klingt gut, aber dauert, dass nicht länger, bis die Seite dann vollständig geladen ist?
              Egal ich versuchs mal.
              Also nochmals vielen Dank!!!!!!

              Kommentar


              • #8
                Warum verwendest du nicht:

                $_SERVER['PHP_SELF']

                Allerdinsg nur auf Apache servern verwendbar!

                oder schau dir sonst noch an was es da nettes drinne gibt!

                echo "<pre>";
                print_r($_SERVER);
                echo "</pre>";

                LG


                Edit:


                Wo habe ich den den ausgegraben?? Ist ja uralt! Und sowas steht auf der 1 Seite bei den neuen einträgen.


                Zuletzt geändert von schnikemike; 16.03.2007, 20:50.

                Kommentar


                • #9
                  Carnifex, kennst du http://de.selfhtml.org/html/kopfdaten/basis.htm ?

                  Original geschrieben von schnikemike
                  Warum verwendest du nicht:

                  $_SERVER['PHP_SELF']

                  Allerdinsg nur auf Apache servern verwendbar!
                  zum einen hat das nichts mit der frage zu tun, zum anderen - woher hast du den unfug mit "nur apache"? lass mich raten - schlaue internet-seiten berichten über "todessichere" beobachtungen?

                  ot: ok, 2 jahre zu spät...

                  Kommentar

                  Lädt...
                  X