Heim > Artikel > Backend-Entwicklung > Wie kann man die Auto-Link-Funktionalität von Stack Overflow in PHP nachahmen?
Nachahmung der Auto-Link-Funktion von Stack Overflow
Um Webinhalte zu verbessern, sollten Sie die Simulation der automatischen Link-Funktion von Stack Overflow in Betracht ziehen. Diese Funktion ermöglicht die Umwandlung einfacher URLs in optisch ansprechende Hyperlinks.
Implementierung in PHP
Hier ist eine PHP-Funktion, die vom Verhalten von Stack Overflow inspiriert ist:
<code class="php">function auto_link_text($text) { // URL matching regex pattern from Daring Fireball $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`!()\[\]{};:\'".,<>?«»“”‘’]))'; $callback = create_function('$matches', ' $url = array_shift($matches); $url_parts = parse_url($url); $text = parse_url($url, PHP_URL_HOST) . parse_url($url, PHP_URL_PATH); $text = preg_replace("/^www./", "", $text); $last = -(strlen(strrchr($text, "/"))) + 1; if ($last < 0) { $text = substr($text, 0, $last) . "&hellip;"; } return sprintf(\'<a rel="nofollow" href="%s">%s</a>\', $url, $text); '); return preg_replace_callback($pattern, $callback, $text); }</code>
Beispielverwendung
Betrachten Sie den folgenden Eingabetext:
<code class="text">This is my text. I wonder if you know about asking questions on StackOverflow: Check This out http://www.stackoverflow.com/questions/1925455/how-to-mimic-stackoverflow-auto-link-behavior Also, base_convert php function? http://pt.php.net/manual/en/function.base-convert.php#52450 http://pt.php.net/manual/en/function.base-convert.php?wtf=hehe#52450</code>
Mit der Funktion auto_link_text wird dieser Text transformiert:
<code class="html">This is my text. I wonder if you know about asking questions on StackOverflow: Check This out <a rel="nofollow" href="http://www.stackoverflow.com/questions/1925455/how-to-mimic-stackoverflow-auto-link-behavior">stackoverflow.com/questions/1925455/…</a> Also, base_convert php function? <a rel="nofollow" href="http://pt.php.net/manual/en/function.base-convert.php#52450">pt.php.net/manual/en/…</a> <a rel="nofollow" href="http://pt.php.net/manual/en/function.base-convert.php?wtf=hehe#52450">pt.php.net/manual/en/…</a></code>
Anpassung
Sie können das Verknüpfungsverhalten anpassen, indem Sie die Rückruffunktion ändern. Sie könnten zum Beispiel:
Durch Optimierung der Implementierung können Sie eine benutzerdefinierte Lösung für die automatische Verknüpfung erstellen, die Ihren spezifischen Anforderungen entspricht.
Das obige ist der detaillierte Inhalt vonWie kann man die Auto-Link-Funktionalität von Stack Overflow in PHP nachahmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!