我正在使用一个基本功能,想知道下面是否是一种从纯文本转换为可点击电话链接的特别有效的方法?
该函数将假设以下纯文本方案:
- 01234 123 456
- 电话: +44 1234 123 456
- +44 (0) 1234 123 456
函数如下:
function pd_convert_tel_number($tel) {
if (substr( $tel, 0, 1 ) === '0') {
$tel = '<a href="tel:+44'.ltrim(str_replace(' ', '', $tel), '0').'">'.$tel.'</a>';
} else if(strpos($tel, '+44') !== false || strpos($tel, '(0)') !== false) {
$tel = '<a href="tel:'.str_replace(array( '(0)', ' ' ), '', $tel).'">'.$tel.'</a>';
} else {
$tel = '<a href="tel:"'.$tel.'">'.$tel.'</a>';
}
return $tel;
}
您可以使用正则表达式。
这会将 href 标签添加到 phonneumber。
https://regex101.com/r/vT9phL/1
$re = '/^(0|+44)(.*)/m';
$str = '01234 123 456
+44 1234 123 456
+44 (0) 1234 123 456';
$subst = '<a href="tel:+44 $2>$2</a>';
$result = preg_replace($re, $subst, $str);
echo $result;
该模式将匹配字符串开头的"0"或+44,并"删除它",然后添加href。
我会创建一个功能,它只是正确格式化电话号码(不添加<a></a>
.然后,我将添加带有格式化电话号码的链接。但是,如果您的函数有效,它似乎还不错。