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

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

Susan Sarandon
Freigeben: 2024-11-02 00:32:31
Original
876 Leute haben es durchsucht

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

Nachahmung der automatischen Linkgenerierung von Stack Overflow mit PHP

Die benutzerfreundliche Funktion zur automatischen Verknüpfung von Stack Overflow verbessert die Benutzereinbindung und die Zugänglichkeit von Informationen. In diesem Artikel wird eine von dieser Funktion inspirierte PHP-Funktion vorgestellt, die URLs nahtlos in Hyperlink-Inhalte umwandelt.

Die bereitgestellte Funktion verwendet ein robustes Regex-Muster, um URLs zu identifizieren. Anschließend werden wesentliche Komponenten aus der URL extrahiert, beispielsweise die Domäne und der Pfad. Durch die Kürzung übermäßig langer URLs wird eine optisch ansprechende und prägnante Darstellung gewährleistet.

Funktionsimplementierung:

<code class="php">function auto_link_text($text)
{
    // Daring Fireball's URL-matching regex pattern
    $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`!()\[\]{};:\'".,<>?«»“”‘’]))';

    // Regex callback function for URL processing
    $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) . "&amp;hellip;";
        }

        return sprintf(\'<a rel="nofollow" href="%s">%s</a>\', $url, $text);
    ');

    return preg_replace_callback($pattern, $callback, $text);
}</code>
Nach dem Login kopieren

Verwendungsbeispiel:

<code class="php">$input_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";

$output_text = auto_link_text($input_text);</code>
Nach dem Login kopieren

Eingabetext:

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
Nach dem Login kopieren

Ausgabetext:

<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/&hellip;</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/&hellip;</a>

<a rel="nofollow" href="http://pt.php.net/manual/en/function.base-convert.php?wtf=hehe#52450">pt.php.net/manual/en/&hellip;</a></code>
Nach dem Login kopieren

Diese benutzerdefinierte PHP-Funktion emuliert effektiv die Funktion zur automatischen Verknüpfung von Stack Overflow, die URLs in Hyperlinks umwandelt, um die Lesbarkeit und Benutzererfahrung zu verbessern.

Das obige ist der detaillierte Inhalt vonWie ahme ich das Auto-Link-Verhalten von Stack Overflow mit 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