PHP - Tự tạo hyperlink, email link trong chuỗi

Đoạn code sau tự động tìm link hoặc email trong chuỗi truyền vào và tạo thành link

<?php
/*
 * Tạo link và embed lại vào str
 * $attributes ví dụ: array("target"=&gt;"_blank","rel"=&gt;"nofollow") -&gt; thêm vào thuộc tính của link
 */
function autolink($str, $attributes=array()) {
    $attrs = '';
    if(empty($attributes)) $attributes = array("target"=&gt;"_blank","rel"=&gt;"nofollow");
    foreach ($attributes as $attribute =&gt; $value) {
        $attrs .= " {$attribute}=\"{$value}\"";
    }
    $link_pattern = "/((http)|(https))+(:\/\/)([a-zA-Z0-9_-]+)(\.|\/{1})([A-z0-9\_\-\.\/\?\=\&amp;\#\%\(\)]{0,}[A-z0-9\#\=\/])/";

    $str = preg_replace($link_pattern, '&lt;a href="$1$4$5$6$7"'.$attrs.'&gt;$1$4$5$6$7&lt;/a&gt;', $str);

    //Detect and create email
    $mail_pattern = "/([A-z0-9_-]+\@[A-z0-9_-]+\.)([A-z0-9\_\-\.]{1,}[A-z])/";


    $str = preg_replace($mail_pattern, '&lt;a href="mailto:$1$2"&gt;$1$2&lt;/a&gt;', $str);

    return $str;
}
?>

Origin post at https://archive.camratus.com/2014/07/16/tu-tao-hyperlink-email-link-trong-chuoi/

Tags:
#php #coding