使用php为html创建自定义标记

时间:2012-04-24 11:27:36

标签: php html regex

是否可以使用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]将成为我的自定义标签

3 个答案:

答案 0 :(得分:0)

是的,这最终是可能的。

你看到的实际上是一个bbcode解析器,我是对的吗?

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

答案 1 :(得分: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&lt; 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);

答案 2 :(得分: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
);