【问题标题】:parse a string and convert into link in PHP解析字符串并转换为 PHP 中的链接
【发布时间】:2015-02-05 07:58:10
【问题描述】:

我需要解析像@[123456:name] 这样的字符串,以及我想要得到的像 <a href="link/12345/">name</a>。有没有简单的方法来做到这一点?就像在 facebook 中我们标记某人。我需要像fb那样使用php创建链接

【问题讨论】:

  • 你有没有尝试过?
  • 我尝试使用 preg_replace 但它不适用于多个实例

标签: php regex preg-replace preg-match


【解决方案1】:

你需要使用preg_replace函数。

$re = "/@\\[([^:]+):([^\\]]+)]/m";
$str = "@[123456:name]";
$subst = "<a href=\"link/\1/\">\2</a>";

$result = preg_replace($re, $subst, $str);

DEMO

【讨论】:

  • 这个字符串呢? $string = "@[1234343:first] 和测试是测试@[1234343:second]";它不工作
【解决方案2】:

使用preg_replace:

preg_replace('/@\[([0-9]*):(.*)\]/', '<a href="link/\1/">\2</a>', $string);

【讨论】:

  • 当有多个像这样的实例 $string = "@[1234343:first] 并且测试是 test @[1234343:second]" 时它将如何工作;
猜你喜欢
  • 2021-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-09
相关资源
最近更新 更多