我想把 [upload=jpg,描图-1.jpg]UploadFile/2010-8/20108423284550632.jpg[/upload]这种ubb 数据 替换成<img src="UploadFile/2010-8/20108423284550632.jpg" border="0" />请问用正则应该怎么写?

解决方案 »

  1.   

    $s=<<<html
    [upload=jpg,描图-1.jpg]UploadFile/2010-8/20108423284550632.jpg[/upload]
    html;
    echo preg_replace('#\[(upload)=[^\]]+\](.*)\[/\1\]#is','<img src="$2" border="0" />',$s);
      

  2.   


    $str = <<<HTML
    [upload=jpg,描图-1.jpg]UploadFile/2010-8/20108423284550632.jpg[/upload]
    HTML;
    $r = array('/\[upload=.*\]/isU', '/\[\/upload\]/isU');
    echo preg_replace($r, array('<img src="', '" />'), $str);
    /**
    输出html:
    <img src="UploadFile/2010-8/20108423284550632.jpg">
    */
      

  3.   

    $str='[upload=jpg,描图-1.jpg]UploadFile/2010-8/20108423284550632.jpg[/upload]';
    $str=preg_replace('/^\[.*\]+(UploadFile.*)\[.*\]/i','<img src="'.'$1'.'" border="0" />',$str);
    echo $str;
      

  4.   

    不好意思 我忘记了[upload=jpg,描图-1.jpg]UploadFile/2010-8/20108423284550632.jpg[/upload]这个前后还有 其他字符 这个是在文章里的
    你好你好你好[upload=jpg,描图-1.jpg]UploadFile/2010-8/20108423284550632.jpg[/upload]你好你好你好
      

  5.   

    那有什么区别吗?$s = <<< TXT
    你好你好你好[upload=jpg,描图-1.jpg]UploadFile/2010-8/20108423284550632.jpg[/upload]你好你好你好
    你好你好你好[upload=jpg,描图-1.jpg]UploadFile/2010-8/20108423284550632.jpg[/upload]你好你好你好
    TXT;echo preg_replace('#\[upload.+\](.+)\[/upload]#sU', '<img src="$1" border="0" />', $s);你好你好你好<img src="UploadFile/2010-8/20108423284550632.jpg" border="0" />你好你好你好
    你好你好你好<img src="UploadFile/2010-8/20108423284550632.jpg" border="0" />你好你好你好
      

  6.   

    <img src="UploadFile/2010-8/20108423284550632.jpg" border="0" />[User:root Time:12:39:48 Path:/home/liangdong/php]$ cat preg.php 
    <?php
    $str = "[upload=jpg,描图-1.jpg]UploadFile/2010-8/20108423284550632.jpg[/upload]";
    $res = preg_replace('/\[upload[^\]]*\]([^\]]*)\[\/upload\]/is', '<img src="\1" border="0" />', $str);
    echo $res;
    ?>
      

  7.   


    $str = <<<string
    [upload=jpg,描图-1.jpg]UploadFile/2010-8/20108423284550632.jpg[/upload]
    string;
    $pattern = "/\[upload=jpg.+\](.+)\[\/upload\]/isU";
    echo preg_replace($pattern, "<img src=\"$1\" border=\"0\" />", $str);
    能达到你的要求