href mit Domain ergänzen

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

  • href mit Domain ergänzen

    Hallo,

    vielleicht kann mir hier jemand weiterhelfen. Ich lade eine Seite mit file_get_contents($inhalt). $inhalt wird als Parameter übergeben. Im Quelltext sind Links in verschiedenen Schreibweisen. Wenn ein Link keine Domain enthält, soll sie ergänzt werden. Wie kann man sowas umsetzen. Die Möglichkeiten wie ein Link aussehen kann, sind ja nicht gerade wenig. Hier mal ein paar, die mir einfallen:

    href=http://www.domain.de
    href=http://domain.de
    href=http://www.domain.de/
    href=http://domain.de/
    href='http://www.domain.de'
    href='http://domain.de'
    href='http://www.domain.de/'
    href='http://domain.de/'
    href="http://www.domain.de"
    href="http://domain.de"
    href="http://www.domain.de/"
    href="http://domain.de/"
    href=http://www.domain.de/irgendwas
    href=http://domain.de/irgendwas
    href='http://www.domain.de/irgendwas'
    href='http://domain.de/irgendwas'
    href="http://www.domain.de/irgendwas"
    href="http://domain.de/irgendwas"

    Bei solchen Links soll nichts geändert werden. Bin nicht sicher, müsten aber alle Möglichkeiten mit Domain sein.

    href=domain.de
    href='domain.de'
    href="domain.de"
    href=domain.de/irgendwas
    href='domain.de/irgendwas'
    href="domain.de/irgendwas"

    Bei solchen Links soll das http:// ergänzt werden. domain.de kann variabel sein oder auch www.domain.de oder subdomain.domain.de, vielleicht sogar auch domain.de.vu

    href=/irgendwas
    href='/irgendwas'
    href="/irgendwas"

    Hier ist wohl das Sinnvollste einfach den Slash zu entfernen und dann weiter im nächsten Schritt.

    href=irgendwas
    href='irgendwas'
    href="irgendwas"

    Hier soll die als Parameter übergebene $domain und anschließendem Slash (darum vorher löschen) ergänzt werden.
    $domain = "www.domain.de";
    Entweder nach dem = nach dem ' oder dem "


    Wenn alles um die Domain erweitert wurde, sollten alle hrefs so aussehen:

    href=http://www.domain.de/irgendwas
    href='http://www.domain.de/irgendwas'
    href="http://www.domain.de/irgendwas"


    Für mich ist das Ganze unlösbar. Aber vielleicht ja kein Problem für jemanden, der mehr Ahnung hat wie ich. Kann mir sagen, ob das umsetzbar ist? Ich nehme an dafür müste man eine Funktion schreiben. Mir ist das allerdings alles eine Nummer zu hoch.


    Danke schonmal für Antworten

    Gruß Sven

  • #2
    wozu eigentlich?

    Kommentar


    • #3
      RegEx ->

      php/QuakeNet
      php-resource
      Regexp Evaluator

      Kommentar


      • #4
        Original geschrieben von penizillin
        wozu eigentlich?
        Sorry, den Hintergrund hatte ich vergessen zu erwähnen. Ich habe ein Javascript gefunden, daß mir die Höhe eines iFrames automatisch so hoch macht wie die Inhaltsseite hoch ist. Das funktioniert aber nur mit lokalen Dateien. Auf externe Seiten hat window.location keinen Zugriff. Darum will ich externe Seiten lokal machen. Ich rufe z.B. www.amazon.de über http://localhost/blank.php?domain=ww.../www.amazon.de auf. In der blank.php werden alle Links von href="/irgendwas/" nach href="http://localhost/blank.php?domain=www.amazon.de&inhalt=http://www.amazon.de/irgendwas/" umgewandelt. Als erstes bräuchte ich jetzt eine Funktion die mir die Links komplettiert. Also aus href="/irgendwas/" href="http://www.amazon.de/irgendwas/" macht => siehe oben. Wenn ich das hab ist es kein Problem mehr http://localhost/blank.php?domain=www.amazon.de&inhalt= einzufügen. Ersteres ist mir allerdings eine Nummer zu hoch.

        Gruß Sven

        Kommentar


        • #5
          besteht noch die möglichkeit, dich von dieser irren idee abzubringen?

          wozu soll das denn gut sein? durch deinen webserver lässt sich somit jeder mist laden. damit kann man ihm (dem server) schnell schaden. und der traffic-verbrauch steigt ins unermessliche (was dich u.u. auch noch kosten könnte).

          Kommentar


          • #6
            Hm, über irgendwelche Schäden habe ich noch garnicht nachgedacht. Ich will ein kleines Mini CMS anbieten (einfach nur Texte eingeben, Bilder uploaden/einbinden in fertiges Layout) bei dem es die Möglichkeit gibt externe Seiten über ein iFrame zu laden (z.B. könnte man so seinen ebayShop auf die Seite laden. Der Scrollbalken beim iFrame ist halt S....ße. Den hätte ich gern weg. Mit dem erwähnten Javascript sieht man garnicht mehr, daß es eine geframte Seite ist, fand ich ne coole Sache. Geht halt nur mit lokalen Seiten, darum der ganze Aufwand. Mir ist klar, daß das nicht mit allem funktionieren wird. Das muß dann jeder selbst entscheiden inwieweit er die Funktion benutzen will bzw. kann. href= und action= umwandeln wären mal der erste Schritt, um testen zu können wie sich die Sache im Betrieb so verhält. Aber das nur mal so nebenbei.

            Von was für Schäden redest Du, mein Server hat doch nur eine Weiterleitungsfunktion (denke ich mal) Er holt Quelltext von irgendwo ab, wandelt ihn um und schickt ihn zum Client. Hm, naja Traffic; wie wäre das denn bei Downloads, die werden ja dann auch erst von meinem Server geladen und dann um Client geschickt, oder? Da könntest Du recht haben. Aber mit Schäden kann ich erstmal nichts anfangen.


            Gruß Sven



            PS: Kennst Du Dich mit Javascript aus? Vielleicht gibt es ja mit PHP eine Möglichkeit window.location zu faken.

            Kommentar


            • #7
              Original geschrieben von sven2
              Vielleicht gibt es ja mit PHP eine Möglichkeit window.location zu faken.
              PHP-Code:
              header('Location: ...'); 
              oder
              PHP-Code:
              readfile('...'); 

              Kommentar


              • #8
                nein, "faken" kann man nichts. höchstens header() nutzen.

                ich will dich nicht irreführen - ich finde die idee (ganz ehrlich) schlecht und gefährlich und werde dir bei der umsetzung nicht helfen.

                Von was für Schäden redest Du [...]
                deinserver.de/deineseite.php?inhalt=http://example.com/eine_riesen_datei.zip

                solche anfragen kann ich ganz viele pro minute produzieren. wenn kein timeout ausgelöst wird, könnte man damit herrliche dos-angriffe gestalten.

                oder

                deinserver.de/deineseite.php?inhalt=http://example.com/andere_seite.php

                so wird die andere_seite.php niemals was von mir erfahren - dafür aber von deinem webserver.

                außerdem könnte man bei schlecht konfiguriertem server an dateien drankommen, die man gar nicht sehen dürfte.

                Kommentar


                • #9
                  @onemorenerd
                  Nee nee, ganz so einfach ist das nicht.
                  Code:
                  iframehoehe = document.getElementById'getiframe').contentDocument.height;
                  document.getElementById('getiframediv').style.height = iframehoehe+25+'px';
                  Das iFrame hat eine Höhe von 100% und ist von einem Div umgeben. Diesem Div wird die Höhe der Seite aus dem iFrame übergeben. Bei nicht lokalen Seiten hat man aber keinen Zugriff auf das Dokument. Das ist das Problem.

                  @penizillin
                  Aha, ich glaube ich verstehe ungefähr was Du mir sagen willst (bin kein Profi), danke für den Hinweis. Dann werde ich mal die Finger davon lassen.

                  Nachtrag: Kennst Du Webgrab von phpCMS, das funktioniert in der Richtung wie ich mir das gedacht habe. Hab mir den Code aber nicht komplett angesehen.
                  Zuletzt geändert von sven2; 25.08.2005, 00:41.

                  Kommentar

                  Lädt...
                  X