Ergebnis 1 bis 6 von 6
  1. #1
    Fortgeschrittener
    Registriert seit
    14.07.2007
    Beiträge
    31

    Standard [PHP] automatischer URL-Vervollständiger

    Hallo,

    da es aus meinem Titel nicht ganz eindeutig wird, hier die Erläuterung:

    Nehmen wir an, ich habe die Website: www.meineseite.de
    Mittels der Funktion file_get_contents() möchte ich die Seite www.extern.de
    einbinden.

    Das Problem sind folgende:

    Wenn Bilder/ Links (a href) geladen werden sollen, dann werden sie beispielsweiße über <img src="bilder/bild.jpg" /> (statt: www.extern.de/bilder/bild.jpg) geladen, sprich: Die Bilder, die sich auf der externen Seite befinden, können nicht geladen werden, da die Funktion die externe Seite derartig eibindet, als ob sie sich lokal befinden würde.
    ___Ich denke, dass diese Beispiel es erkennen lässt, wieso ich zur Funktion weitere Maßnahmen unternehmen muss.

    Weiterhin stellt sich mir die Frage, wie ein Link geladen werden soll. Problem: Die Funktion sollte die Seite so einbinden wie ein Iframe, sprich: Beim Anklicken eines Links sollte die darauffolgende Seite sich immernoch von dem Design meiner Seite umgeben sein.

    ...jetzt stellt sich die Frage, wieso ich nicht ein IFrame benutze:
    Das liegt daran, weil es nicht W3C konform ist. Ebenso besteht hierbei das Problem, dass es nur eine feste Größe (Höhe) hat, sprich: Wenn ich in dem IFrame einen Link anklicke und die zu ladende Seite nur noch die Höhe 600px statt 1200px hat, dann entsteht unten drunter ein gewisser Leerraum, der als störend empfunden wird.

  2. #2
    Der `Toastflüsterer` Avatar von AlterHacker
    Registriert seit
    27.09.2008
    Beiträge
    690

    Standard

    Hey,

    Du könntest beispielweise per Regexp's nach 'src="[^http\:\/\/]/'
    und href=... suchen und dann halt http://www.extern.url/ davorhängen.

    (ich weiß jetzt nicht ob oben das mit dem [^http:\/\/] richtig ist, regexp ist für mich immer murks pur, musste testen

    PHP: preg_replace - Manual sollte dir dabei weiterhelfen.



    MfG

    Security is an illusion.
    Cheater : 8=o
    Normaluser : 8=======o
    Ich : 8================o

    BM: (4|2|0)

  3. #3
    Meister des Grills Avatar von c4pone
    Registriert seit
    08.11.2006
    Beiträge
    167

    Standard

    würde es nicht ausreichen (src|href)=" zu benutzen und dann durch src="externe.url.de\ oder href="externe.url.de\ zu ersetzen ?
    Zitat Zitat von Barney Stinson
    “Think of me like Yoda, but instead of being little and green I wear suits and I'm awesome. I'm your bro—I'm Broda!”

  4. #4
    Fortgeschrittener
    Registriert seit
    14.07.2007
    Beiträge
    31

    Standard

    Hey Leute Vielen Dank.

    So blöd wie ich muss man auch sein^^.

    Ich danke euch beiden füre eure Hilfe.

    Aber ich muss nochmal nachhaken, da ich die PHP-Grundlagen zwar kenne, aber lange nicht mehr damit zu tun gehabt habe.

    Also:
    Da die Funktion file_get_contents() in einem String herausgelesen wird, kann ich doch diese als Variable abspeichern, richtig?

    Wenn ich das getan habe, kann ich mittels preg_replace() in der String-Variable nach den gewünschten href suchen und das Gewünschte dranhängen?

    Jetzt habe ich noch eine Frage:
    Der auszulesende Inhalt beinhaltet ja Links. Ich will nun, dass diese Links beiim Anklicken des Besuchers meiner Website zwar geladen werden, aber wie gesagt auf meiner Seite mit meinem Design umgeben bleiben; kann ich dann wie folgt vorgehen(?):
    An jedem href setze ich meine Seite heran, also index.php. Der urprüngliche Link wird als Variable drangehängt, also letztlich sollte es so aussehen:
    index.php?seite=extern&link=beispiel/bsp-extern.htm
    Erläuterung: Die Variable seite dient nur dazu, dass bei diesem Vorhandensein der URL-String der gewünschten Seite ausgegeben wird.
    Also Bsp.: Meiner PHP-Seite ist bekannt, dass wenn $_GET["seite"]=extern ist, dann wird der URL-String www.externe-seite.de ausgegeben (usw. usf., an sich Grundlagen Pippifax mit Schleifen und Verzweigungen)

    Die Variable link ist jene, die ursprünglich durch die Funktion file_get_contents() ausgelesen wurde.

    Da mein Link in der String-Variable so aussieht...
    ... index.php?seite=extern&link=beispiel/bsp-extern.htm ...
    ...sollte beim Neuladen der index.php die folgende Funktion so aussehen...
    ... file_get_contents("www.externe-seite.de/beispiel/bsp-extern.htm") ...
    ...oder?
    ...Ich hoffe, dass ich verständlich genug war und meine Gliederung übersichtlich ist.
    Ich frage all dies deshalb weil ich jetzt schlafen gehe(n muss), somit keine Zeit zum überprüfen habe und danach erst nach einer Woche dran arbeiten kann (weil ich gleich in den Urlaub fahre^^)

  5. #5
    Gesperrt
    Registriert seit
    23.05.2010
    Beiträge
    14

    Standard

    Zitat Zitat von c4pone Beitrag anzeigen
    würde es nicht ausreichen (src|href)=" zu benutzen und dann durch src="externe.url.de\ oder href="externe.url.de\ zu ersetzen ?
    genau das hätte ich auch gefragt! is doch so oder?

  6. #6
    Meister des Grills Avatar von c4pone
    Registriert seit
    08.11.2006
    Beiträge
    167

    Standard

    Simple HTML DOM Parser ist die Antwort
    Browse PHP Simple HTML DOM Parser Files on SourceForge.net

    Code:
    $html = new simple_html_dom();  
    $html->load_file("externpage.de/blaba/freehach.html"); 
    $hrefs = $html->find("href")
    
    foreach($hrefs as $href)
    {
    //Nur als Beispiel :)
       $href."/index.php";
    }
    Geändert von c4pone (26.05.2010 um 15:43 Uhr)
    Zitat Zitat von Barney Stinson
    “Think of me like Yoda, but instead of being little and green I wear suits and I'm awesome. I'm your bro—I'm Broda!”

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •