php - 如何将主题标签文本转换为主题标签超链接?

标签 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 的例子,由@failN 推荐:

Demo Link

$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>

关于php - 如何将主题标签文本转换为主题标签超链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6495871/

相关文章:

java - 如何使用Java正则表达式匹配既不包含A也不包含B的字符串?

google-drive-api - URL Scheme : How can I create a link, 这将在 Google Drive 应用程序中打开一个文档

php - 如何将数组展平为值的字符串?

php - 消息系统 - MySql/PHP/Kohana

php - 保存最后执行的 mysql(i) 语句以便再次执行

python - 用于从 HTML 元素捕获 token 的正则表达式

正则表达式 - 用双引号包裹所有整数

javascript - 创建一个超链接,加载一个外部页面,然后是一个 javascript

css - 如何在悬停另一个链接时更改链接的颜色?

PHP preg_match 查找整个单词