PHP取代BBcode标签

时间:2014-05-05 08:39:38

标签: php regex preg-replace

我正致力于创建公告板转换器。我需要PHP来替换/重构以下内容:

[img alt="" src="IMAGE LINK, NOT ENDING IN AN IMAGE FORMAT EXTENSION" style="max-width:100%;"]

要:

[img]IMAGE LINK[/img]

可以删除其他所有内容,例如alt标记。

目前我使用PHP preg_replace(在一个数组中),我正在使用正则表达式来尝试获取链接。但是,我一直在努力寻找一种方法来转换它,因为我之前没有使用正则表达式。

为麻烦道歉,非常感谢! :)

2 个答案:

答案 0 :(得分:3)

我想你需要这样的东西

<?php
$string = '[img alt="" src="IMAGE LINK, NOT ENDING IN AN IMAGE FORMAT EXTENSION" style="max-width:100%;"]';

$matches = array();
print preg_replace('|\[img.*src="(.*)" style.*]|', '[img]$1[/img]', $string);

打印

  

[img]图片链接,没有以图像格式扩展结束[/ img]

答案 1 :(得分:1)

对于你的正则表达式,这是更清洁的

\[img[^\]]+?src="([^"]*)"[^\]]*\]

替换与你一样。

懒惰你需要?,否则你会有意想不到的匹配 例如,第一个答案正则表达式匹配[img src="img1" style] [img 2] [img 3]而不是您想要的