0

所以我想在php中做这样的事情。如果我有括号 [1995] 中的年份,我希望它将其转换为当年与 1995 年的差值。

类似“事情发生已经[1995]年”之类的东西。

所以它是 2009 年,它会说

“事情发生已经14年了。”

显然,减法部分很容易,但我不知道如何写这个,以便我可以将任何数字放在括号中,php 会输出差异。我将它用于日历,每年有几十个日期保持不变,只是想注意区别。

我想使用类似的东西

preg_replace(array_keys($bbcode), array_values($bbcode), $events)

$bbcode 数组已经有一些这样的项目

"/\[url\=(.*?)\](.*?)\[\/url\]/is" => "<a href='$1' target='_blank'>$2</a>",
4

1 回答 1

0

尝试这样的事情

<?php
$str = "It's been [1995] years sice something...";

$regexp = '/\[(\d+)\]/e';
$replace = 'date("Y", time()) - $1';

echo preg_replace($regexp, $replace, $str);
?>

正则表达式上的e修饰符使替换字符串作为 PHP 执行,而不是简单的字符串。

于 2009-12-11T19:55:58.130 回答