flo*_*eft 5 php regex hyperlink preg-replace hashtag
我正在使用php preg_replace()将任何在其前面带有#标签符号的单词转换为超链接.
所以类似于:#austin将成为:<a href="/tag/austin">#austin</a>
这是我的正则表达式.
preg_replace('/\B#(\w*[A-Za-z_]+\w*)/', '<a href="/tag/$1">$0</a>', $text);
我的问题是:如果有任何大写字母,href值将保留它们,但我希望href值始终完全小写.
输入:#Austin
不应该成为:<a href="/tag/Austin">#Austin</a>
它应该成为:<a href="/tag/austin">#Austin</a>
我怎样才能修改我的正则表达式来创建这些结果?
以下是使用preg_replace_callback@faileN建议的示例:
$string = '#Austin';
function hashtag_to_link($matches)
{
return '<a href="/tag/' . strtolower($matches[1]) . '">' . $matches[0] . '</a>';
}
echo preg_replace_callback('/\B#(\w*[a-z_]+\w*)/i', 'hashtag_to_link', $string);
// output: <a href="/tag/austin">#Austin</a>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3527 次 |
| 最近记录: |