1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Frage: URL ersetzen

  • maciek
  • 10. Juli 2004 um 18:59
  • Unerledigt
  • maciek
    16
    maciek
    Mitglied
    Punkte
    2.805
    Beiträge
    434
    • 10. Juli 2004 um 18:59
    • #1

    folgende Aufgabenstellung: Ich möchte in einem Text alle URLs (also "Wörter", die mit http:// oder www. beginnen) ersetzen. Und zwar das ganze in einen <a href="..."> usw. Tag ersetzen (ich hoffe, es ist klar, was gemeint ist). Und zwar sollen alle die mit http:// anfangen in einem neuen Fenster aufgehen und alle anderen nicht.

    Frageee: Hat jemand ein fertiges PHP-Skript, das soetwas tut? Bevor ich mich nämlich länger damit beschäftige, wollte ich mal fragen, ob es mir nicht einer von Euch geben könnte. :grinning_squinting_face:

    Thanx.

    *** Make it idiot proof, and someone will build a better idiot. ***

  • Murmel
    7
    Murmel
    Mitglied
    Reaktionen
    1
    Punkte
    541
    Beiträge
    102
    • 10. Juli 2004 um 19:48
    • #2

    Ist zwar nicht von mir aber ich glaub, das Skript sollte es tun, auch gleich mit e-mails.

    Code
    [size=10]
    [size=10][size=10]if (!function_exists(urlparse)) {
     
    function urlparse($post) {
     
    $urlSA = array(
     
    "/([^]_a-z0-9-=\"'\/])((https?|ed2k|unreal|ftp|gopher|news|telnet):\/\/|www\.)([^ \r\n\(\)\*\^\$!`\''\|\[\]\{\};<>]*)/si",
     
    "/^((https?|ed2k|unreal|ftp|gopher|news|telnet):\/\/|www\.)([^ \r\n\(\)\*\^\$!`\''\|\[\]\{\};<>]*)/si"
     
    );
     
    $urlRA = array(
     
    "\\1[url='http:////2//4']\\2\\4[/url]",
     
    "[url='http:////1//3']\\1\\3[/url]"
     
    );
     
    $emailSA = array(
     
    "/([ \n\r\t])([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4}))/si",
     
    "/^([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4}))/si"
     
    );
     
    $emailRA = array(
     
    "\\1\\2",
     
    "\\0"
     
    );
     
    $text = preg_replace($urlSA, $urlRA, $post);
     
    if (strpos($text, "@")) {
     
    $text = preg_replace($emailSA, $emailRA, $text);
     
    }
     
    return $text;
     
    }
     
    }
     
    [/size]
    [/size][/size]
    Alles anzeigen



    (Das hats mir jetzt ein bisschen seltsam formatiert, aber mit copy&paste sollts schon gehn)

    edit: den Mittelteil ändert das Forum ständig, ich versuchs hier nochmal auszuschreiben:

    Code
    [size=10]"\\1(url)\\2\\4(/url)",
     
    "(url)\\1\\3(/url)"
     
    [/size]



    und weiter unten

    Code
    [size=10]"\\1(email)\\2(/email)",
     
    "(email)\\0(/email)"



    [/size](bei beiden statt den runden Klammern eckige)

    Falls es nicht geht kann ichs dir als txt attachen, so geht nix verloren durchs Forum.

    Hmmm bin mir jetzt gar nicht sicher ob das Skript dein Problem löst, aber es geht zumindest irgendwie in die Richtung. Ich glaub es ersetzt durch (url)text(url) aber ein paar kleine Änderungen und das sollt gehn.

    lG,
    Murmel

    "Rimasi turbato. Avevo sempre creduto che la logica fosse un'arma universale, e mi accorgevo ora di come la sua validità dipendesse dal modo in cui la si usava."
    - Umberto Eco "Il nome della rosa"

    - - -
    MARCELONA - mein persönlicher Beitrag zu der Schwemme an Auslandssemester-Blogs - - -

    Wichtige Links: Prüfungsterminkalender - Mitschriftentauschbörse - Vowi - Linguistik Wiki - Linguistik Forum

  • bimbo
    15
    bimbo
    Mitglied
    Reaktionen
    15
    Punkte
    2.320
    Beiträge
    390
    • 10. Juli 2004 um 19:49
    • #3

    fertiges skript kann ich dir keines anbieten, es dürfte aber _echt_ keien schwierigkeit werden das zu realisieren.

    ich hab ein skript, das ich bei einem web-projekt von mir verwende, es ersetzt "[open]BLAH.PHP[/open]" aus einem beliebigen text duch den text, wobei BLAH.PHP an jeder Stelle im Text included wird. das müsstest einfach anpassen können.

    gibts auf meiner HP zum download.
    [edit] mein dolles skript funkt doch net so richtig[/edit]

    LVA Erfahrungsberichte: http://vowi.fsinf.at/

  • wuz_thomas
    12
    wuz_thomas
    Mitglied
    Reaktionen
    1
    Punkte
    1.501
    Beiträge
    195
    • 13. Juli 2004 um 14:09
    • #4

    voila:

    Code
    function html_activate_links($str) {
    $str = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '<a href="[url='file://1/']\\1[/url]" target="_blank">\\1</a>', $str);
    $str = eregi_replace('([[:space:]()[{}])([url='http://www.[-a-zA-Z0-9@:%_/+.~#?&//=]+)'"]www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)'[/url], '\\1<a href="[url='http:////2']http://\\2[/url]" target="_blank">\\2</a>', $str);
    $str = eregi_replace('([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})','<a href=\"mailto:\\1\">\\1</a>', $str);
    return $str;
    }
  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung