0

是否可以像我尝试做的那样使用 php 创建自定义标签

$str="[code] Code will goes here [/code]"
echo preg_replace("<div style='background-color:yellow;padding:5px'>$1</div>","/\[code\](.+)\[\/code\]/i",$str);

所以 [code] 将是我的自定义标签

4

3 回答 3

0

是的,这最终是可能的。

实际上,您正在寻找的是一个 bbcode 解析器,对吗?

如果是这种情况,请查看:StringParser_BBCode

于 2012-04-24T11:32:08.470 回答
0

试试这个代码:

$str = "[code] Code goes here, and it can safely contain <html> tags [/code]";
echo preg_replace_callback(
  '#\[code\](.+?)\[/code\]#i',
  function($matches) {
    return "<div style='background-color:yellow;padding:5px'>".htmlspecialchars(trim($matches[1]))."</div>";
  },
  $str
);

...或对于 PHP < 5.3:

function bbcode_code_tag($matches) {
  return "<div style='background-color:yellow;padding:5px'>".htmlspecialchars(trim($matches[1]))."</div>";
}

$str = "[code] Code goes here, and it can safely contain <html> tags [/code]";
echo preg_replace_callback('#\[code\](.+?)\[/code\]#i', 'bbcode_code_tag', $str);
于 2012-04-24T11:39:26.210 回答
0

你是如此接近:

$str = "[code] Code will goes here [/code]";

//Pattern, Replacement, Original String

echo preg_replace(
    "/\[code\](.*?)\[\/code\]/",
    '<div style="background-color:yellow;padding:5px">$1</div>',
    $str
);
于 2012-04-24T11:44:48.150 回答