Heim > Backend-Entwicklung > PHP-Tutorial > Wie ahme ich das Auto-Link-Verhalten von Stack Overflow in PHP nach?

Wie ahme ich das Auto-Link-Verhalten von Stack Overflow in PHP nach?

Barbara Streisand
Freigeben: 2024-10-29 20:14:03
Original
834 Leute haben es durchsucht

How to Mimic Stack Overflow's Auto-Link Behavior in PHP?

Nachahmung des Auto-Link-Verhaltens von Stack Overflow in PHP

Viele Stack Overflow-Benutzer haben ihre Bewunderung für die automatische Linkfunktion der Plattform zum Ausdruck gebracht. In diesem Artikel wird untersucht, wie Sie ein solches Verhalten in PHP reproduzieren können, sodass Sie URLs in optisch ansprechende Links in Ihrem eigenen Text umwandeln können.

Der Auto-Link-Regex

Das Folgende Die PHP-Funktion verwendet ein reguläres Ausdrucksmuster von Daring Fireball, um URLs im Text zu identifizieren:

<code class="php">function auto_link_text($text)
{
   $pattern  = '(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'"",<>?«»“”‘’]))';
...
}</code>
Nach dem Login kopieren

Formatieren der Links

Sobald eine URL identifiziert wurde, analysiert die Funktion sie um den Host und den Pfad zu extrahieren. Aus diesen Informationen wird dann der Linktext erstellt, der dem Benutzer angezeigt wird:

<code class="php">...
$text       = parse_url($url, PHP_URL_HOST) . parse_url($url, PHP_URL_PATH);
$text       = preg_replace("/^www./", "", $text);
$last       = -(strlen(strrchr($text, "/"))) + 1;
...</code>
Nach dem Login kopieren

Verwendungsbeispiel

Um die Funktion zu nutzen, übergeben Sie einfach Ihren Text als Argument hinzufügen:

<code class="php">$text = "...";
$linked_text = auto_link_text($text);</code>
Nach dem Login kopieren

Ausgabe

Die Funktion gibt den Eingabetext mit in HTML-Links umgewandelten URLs zurück:

Input: This is my text. Check This out http://www.stackoverflow.com/questions/1925455/how-to-mimic-stackoverflow-auto-link-behavior

Output: This is my text. Check This out <a href="http://www.stackoverflow.com/questions/1925455/how-to-mimic-stackoverflow-auto-link-behavior">stackoverflow.com/questions/1925455/...</a>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie ahme ich das Auto-Link-Verhalten von Stack Overflow in PHP nach?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage