Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] preg_match Link erkennen

Einklappen

Neue Werbung 2019

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

  • chuvak
    hat ein Thema erstellt [Erledigt] preg_match Link erkennen.

    [Erledigt] preg_match Link erkennen

    Ich möchte im Text einen Link erkennen und ihn entsprechend formatieren. Dies funktioniert z.B.:
    PHP-Code:
    $text "http://www.php.de";
    if(
    preg_match("[http://]"$text))
    {    
        echo 
    '<a href=' $text'>Link</a>';

    Wenn der Text aber länger ist wie z.B.:
    PHP-Code:
    $text "Eine Weiterleitung zu http://www.php.de";
    if(
    preg_match("[http://]"$text))
    {    
        echo 
    '<a href=' $text'>Link</a>';

    funktioniert das natürlich nicht mehr.

    Gibt es eine Möglichkeit, dass im Text ausschließlich der Link formatiert, der restliche Text aber in Ruhe gelassen wird?

  • chuvak
    antwortet
    Danke

    Einen Kommentar schreiben:


  • Destruction
    antwortet
    Ein bisschen mitdenken und lesen gehört auch dazu.
    Deine Versuche mit [www] macht überhabt keinen Sinn und zeigt, dass du dich NICHT damit auseinandergesetzt hast!

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    URLS können keine Leerzeichen enthalten. Das sollte Dir weiterhelfen.
    Dies ist eine Ueberleitung zu php.de - das Deutsche PHP-Forum. Hoffentlich funktioniert das auch.
    zeigt dann auch schon das Problem. Wenn der Punkt am Ende nicht zur URL gehört, hast Du kaum Möglichkeiten korrekt zu verlinken. Hier im Board wird das Versucht, dafür treten dann wieder Probleme auf, wenn die URL/URI eben doch mal mit einem Sonderzeichen wie ) endet.

    Einen Kommentar schreiben:


  • chuvak
    antwortet
    Zitat von nikosch Beitrag anzeigen
    Liest Du auch die Antworten? Ehrlich, sowas nervt total.
    Wenn ich nicht die Antworten lesen würde, wäre ich nicht auf preg_replace gekommen.

    Die letzte Antwort von Destruction hat mir aber auch nicht weitergeholfen:
    PHP-Code:
    $zeichenkette "Dies ist eine Ueberleitung zu www.php.de. Hoffentlich funktioniert das auch.";
    echo 
    preg_replace('#(http://)?(www\.)?(.*?)\s#','\\2',$zeichenkette); 
    Ergebnis: www.auch.

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Liest Du auch die Antworten? Ehrlich, sowas nervt total.

    Einen Kommentar schreiben:


  • chuvak
    antwortet
    PHP-Code:
    $zeichenkette "Dies ist eine Ueberleitung zu www.php.de. Hoffentlich funktioniert das auch.";
    $suchmuster "/[www]/i";
    $ersetzung "<a href='http://' . $zeichenkette . '>Link</a>";
    echo 
    preg_replace($suchmuster$ersetzung$zeichenkette); 
    Kommt Folgendes raus: Dies ist eine Ueberleitung zu LinkLinkLink.php.de. Hoffentlich funktioniert das auch.
    Nur das WWW wird ersetzt.

    Einen Kommentar schreiben:


  • Destruction
    antwortet
    PHP-Code:
    preg_replace('#(http://)?(www\.)?(.*?)\s#','\\2',......) 
    Irgendwie sowas sollte das dann werden.

    Einen Kommentar schreiben:


  • chuvak
    antwortet
    Zitat von J_Jara Beitrag anzeigen
    würde ich an deine stelle mit javascript machen

    document.getElementById("linkID").href = http://hier neuer link
    Wie soll denn das gehen? Die Texte kommen alle aus einer DB.
    Destruction hat schon Recht mit preg_replace(). Ich muss die Funktion nur noch anpassen.

    Einen Kommentar schreiben:


  • J_Jara
    antwortet
    würde ich an deine stelle mit javascript machen

    document.getElementById("linkID").href = http://hier neuer link

    Einen Kommentar schreiben:


  • Destruction
    antwortet
    PHP: preg_replace - Manual

    Einen Kommentar schreiben:

Lädt...
X