我正在尝试将网址上的preg_replace
用于HTML格式的图片,并将其转换为BBCode。
来自:<img src="http://website.com/char/sign/Name+Surname.png">
收件人:[sign]Name+Surname[/sign]
注意:png文件的文件名可以只是Name
,它可以包含中间名,例如:Name+Middlename+Surname
,它也可以包含-
和%2527
之类的Carl-Philips
或Bob+Mc%2527Donalds
所以这是我迄今为止尝试过的,但它没有做任何事情。我做错了什么?
$source = array(
'#\<img src=\"http\:\/\/website.com\/char\/sign\/\>(.+).png\>#isU'
);
$new = array(
'[sign]$1[/sign]'
);
$text = preg_replace($source, $new, $text);
答案 0 :(得分:1)
您将来应该使用解析器(How do you parse and process HTML/XML in PHP?)。你的正则表达式中有一些拼写错误。
这应该可以实现你的目标:
<div class="parent">
<div class="left box">
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
</div>
<div class="right box"></div>
</div>
演示(使用正则表达式的解释):https://regex101.com/r/sT6aG9/1
PHP示例:
/<img src="http:\/\/website\.com\/char\/sign\/(.+?)\.png">/
输出:
$source = '/<img src="http:\/\/website\.com\/char\/sign\/(.+?)\.png">/';
$new = '[sign]$1[/sign]';
$text = '<img src="http://website.com/char/sign/Name+Surname.png">, <img src="http://website.com/char/sign/Bob-Robinson.png">, <img src="http://website.com/char/sign/Michael%2527Ross.png">';
$text = preg_replace($source, $new, $text);
echo $text;
PHP演示:http://3v4l.org/WC5oJ