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"=>"_blank","rel"=>"nofollow") -> thêm vào thuộc tính của link
*/
function autolink($str, $attributes=array()) {
$attrs = '';
if(empty($attributes)) $attributes = array("target"=>"_blank","rel"=>"nofollow");
foreach ($attributes as $attribute => $value) {
$attrs .= " {$attribute}=\"{$value}\"";
}
$link_pattern = "/((http)|(https))+(:\/\/)([a-zA-Z0-9_-]+)(\.|\/{1})([A-z0-9\_\-\.\/\?\=\&\#\%\(\)]{0,}[A-z0-9\#\=\/])/";
$str = preg_replace($link_pattern, '<a href="$1$4$5$6$7"'.$attrs.'>$1$4$5$6$7</a>', $str);
//Detect and create email
$mail_pattern = "/([A-z0-9_-]+\@[A-z0-9_-]+\.)([A-z0-9\_\-\.]{1,}[A-z])/";
$str = preg_replace($mail_pattern, '<a href="mailto:$1$2">$1$2</a>', $str);
return $str;
}
?>
Origin post at https://archive.camratus.com/2014/07/16/tu-tao-hyperlink-email-link-trong-chuoi/