php preg_match替换结果重复

时间:2013-11-16 10:32:15

标签: php preg-replace preg-match-all

我是preg_match模式的新手,所以如果有人可以帮我处理下一个情况,我会很高兴:

我需要替换那些字符串:

[popup="about"]about me[/popup]

<a href="#PopupAbout"  data-plugin-options='{"type":"inline", preloader: false}'>about me</a>

我尝试了$pattern = '/\[popup="(.*?)"\](.*?)\[\/popup\]/';,但它没有给我预期的结果,它给出了重复的结果。我怎样才能以一种简单的方式取而代之!

问候!

2 个答案:

答案 0 :(得分:1)

怎么样:

$str = preg_replace('~\[popup="about"\](.+?)\[/popup\]'~, 
   "<a href=\"#PopupAbout\" data-plugin-options='{\"type\":\"inline\", preloader: false}'>$1</a>",
   $str);

答案 1 :(得分:0)

试试这个:

preg_match("/\[popup="(.*)"\](.*?)\[\/popup\]/", $input_line, $output_array);

我得到了这个结果:

Array
(
    [0] => [popup="about"]about me[/popup]
    [1] => about
    [2] => about me
)

您可以在线测试:http://www.phpliveregex.com/