【问题标题】:PHP: change [img]src[/img] to <img src="src" alt="src" > with regular expressionPHP:使用正则表达式将 [img]src[/img] 更改为 <img src="src" alt="src" >
【发布时间】:2013-02-07 21:22:54
【问题描述】:

我想用正则表达式将[img]src[/img] 更改为&lt;img src="src" alt="src" &gt;

我发现了一些将&lt;img src=""&gt; 转换为[img][/img] 的示例,但不是我的情况。

谢谢!

【问题讨论】:

标签: php regex preg-replace


【解决方案1】:

我相信这篇文章会帮助您解决问题...

http://thesinkfiles.hubpages.com/hub/Regex-for-BBCode-in-PHP

function parseCode($txt)
{
   // these functions will clean the code first
   $ret = strip_tags($txt);

   // code replacements
   $ret = preg_replace('#\[b\](.+)\[\/b\]#iUs', '<b>$1</b>', $ret);
   $ret = preg_replace('#\[link\=(.+)\](.+)\[\/link\]#iUs', '<a href="$1">$2</a>', $ret);
   $ret = preg_replace('#\[img\](.+)\[\/img\]#iUs', '<img src="$1" alt="Image" />', $ret); 
   $ret = preg_replace('#\[quote\=(.+)\](.+)\[\/quote]#iUs', '<div class="quote">$2</div><div class="quote-by">By: $1</div>', $ret);


   // return parsed string
   return $ret;
}

【讨论】:

    【解决方案2】:
    $ret = preg_replace('#\[img\](.+)\[\/img\]#iUs', '<img src="$1" alt="img">', $ret);
    

    但一般来说,您需要一个专用的 phpBB 脚本或 phpBB 类。 甚至 PHP 本身也有 BBCode 文本处理器:http://www.php.net/manual/en/book.bbcode.php

    【讨论】:

      【解决方案3】:

      你可以测试一下

       $str= preg_replace('~\[img\](.*)\[\/img\]~si', '<img src="$1" alt="$1">', $str);
      

      【讨论】:

      • 请记住,您需要在此命令之前清理$str 以避免严重的安全漏洞。 (htmlentities($str))
      • @Yogu 好的。但我不想再回答这个问题了
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多