str_replace用于短代码

时间:2017-04-24 18:19:55

标签: php html parsing

不确定如何描述这一点,但我会尽我所能。我试图复制一个类似于结构的短代码来替换某个文本容器中的字符串。有点像Wordpress如何操作短代码。

例如,[text str="hello world" class="text"]将输出为<p class="text">hello world</p>

这是我迄今为止的探索,

<?php

$text = "[hello]";

$String = str_replace(array('[hello]'),array('Hi there!'),$text);
echo $String;

?>

我根据特定字符串替换文字。我怎样才能更具体,并呼吁[text str="hello world" class="text"]之类的内容并将其输出为<p class="text">hello world</p>

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式,例如:

$find = [
    '~\[b\](.*?)\[/b\]~s',
    '~\[size=(.*?)\](.*?)\[/size\]~s'
];

$replace = [
    '<b>$1</b>',
    '<span style="font-size:$1px;">$2</span>'
];

$text = preg_replace($find,$replace,$text);