输出该文本时,将形如  的替换成形如 <img src=pic.php?id=115> 的
在 pic.php 中通过传入的 id 查找并输出图片数据

解决方案 »

  1.   

    $s =<<< TXT
    在这期好声音中,曾在湖南卫视《百变大咖秀》中担任声乐老师的魏雪漫将登场。此外,从下周开始,每位导师都会带着自己的梦想导师参与团队对战,因此,梦想导师人选就成为大家揣测的对象,传言的版本令人目不暇接。 在本周最后出场的四位学员中,歌手魏雪漫可谓是最大牌的学员,她于
    TXT;
    echo preg_replace('/\[img\](\d+)\[\/img\]/', '<img src="pic.php?id=$1">', $s);
    在这期好声音中,曾在湖南卫视《百变大咖秀》中担任声乐老师的魏雪漫将登场。<img src="pic.php?id=115">此外,从下周开始,每位导师都会带着自己的梦想导师参与团队对战,因此,梦想导师人选就成为大家揣测的对象,传言的版本令人目不暇接。 <img src="pic.php?id=119">在本周最后出场的四位学员中,歌手魏雪漫可谓是最大牌的学员,她于<img src="pic.php?id=165">
      

  2.   

    pic.php?id=165读出来是img/110358tp58ocjpmn8paoob.jpg但是<img src="pic.php?id=165"> 图片显示不出来
      

  3.   

    pic.php翻译的图片路径,是否正确?
      

  4.   

    本帖最后由 xuzuning 于 2014-08-25 09:59:45 编辑
      

  5.   

    $s=<<< TXT
    在这期好声音中,曾在湖南卫视《百变大咖秀》中担任声乐老师的魏雪漫将登场。此外,从下周开始,每位导师都会带着自己的梦想导师参与团队对战,因此,梦想导师人选就成为大家揣测的对象,传言的版本令人目不暇接。 在本周最后出场的四位学员中,歌手魏雪漫可谓是最大牌的学员,她于
    TXT;
    $s=preg_replace('/\[img\](\d+)\[\/img\]/', function($r) {
      return '<img src="' . getpicid($r[1]) . '">';
     }, $s);
    echo $s;这是我的pic.php的代码
    错误提示:Parse error: syntax error, unexpected T_FUNCTION 指向$s=preg_replace('/\[img\](\d+)\[\/img\]/', function($r) {这一行
      

  6.   

    你的 php 版本是过少?
      

  7.   

    对不起我晕了
    图片在pic表里,只有id和图片地址两个字段。
    $s=preg_replace('/\[img\](\d+)\[\/img\]/', function($r)  放pic.php里显然不合适。
    但是放在<img src="pic.php?id=165"> 这里有不知道如何连接数据表或是pic.php文件
      

  8.   

    $s=<<< TXT
    在这期好声音中,曾在湖南卫视《百变大咖秀》中担任声乐老师的魏雪漫将登场。此外,从下周开始,每位导师都会带着自己的梦想导师参与团队对战,因此,梦想导师人选就成为大家揣测的对象,传言的版本令人目不暇接。 在本周最后出场的四位学员中,歌手魏雪漫可谓是最大牌的学员,她于
    TXT;
    $s=preg_replace_callback('/\[img\](\d+)\[\/img\]/', function($r) {
      return '<img src="' . getpicid($r[1]) . '">';
     }, $s);
    echo $s;
    function getpicid($id) {
      return $id.'.gif';
    }在这期好声音中,曾在湖南卫视《百变大咖秀》中担任声乐老师的魏雪漫将登场。<img src="115.gif">此外,从下周开始,每位导师都会带着自己的梦想导师参与团队对战,因此,梦想导师人选就成为大家揣测的对象,传言的版本令人目不暇接。 <img src="119.gif">在本周最后出场的四位学员中,歌手魏雪漫可谓是最大牌的学员,她于<img src="165.gif">
      

  9.   

    这样在文本是没有问题但是图片在pic表里,只有id和图片地址两个字段。
    $s=preg_replace('/\[img\](\d+)\[\/img\]/', function($r)  放pic.php里显然不合适。
    但是放在<img src="pic.php?id=165"> 这里有不知道如何连接数据表或是pic.php文件
      

  10.   

    你可在 getpicid 函数里查表获取 id 对应的图片地址
    这样就填到正文里了按原方案,查询不在输出正文时进行。而是在浏览器读取图片是进行的
    你读到图片地址后 readifle('图片地址') 就是输出图片数据了
      

  11.   

    pic.php的代码
    <?
    $result1=mysql_query("SELECT * FROM `pic` where id = '".$_GET['id']."'");
    while($row=mysql_fetch_array($result1)){
    ?> <?
     $str=$row[attachment];
     $str=preg_replace('/\[img\](.+?)\[\/img\]/', function($str) {
      return '<img src="' . getpicid($str[1]) . '">';
     }, $str);
    echo $str;
     ?><?
    }
    ?>show.php的代码<?
    $result1=mysql_query("SELECT * FROM `news` where id = '".$_GET['id']."'");
    while($row=mysql_fetch_array($result1)){
    ?><?
    $str=$row[message];
    $str=preg_replace('/\[img\](\d+)\[\/img\]/', '<img src="pic.php?aid=$1">', $str);
    echo $str;
    ?><?
    }
    ?>
      

  12.   


    原方案。pic.php里我用 echo readifle("img/359z0ycw7c3p6z39c73.jpg"); 前台还是不显示 
      

  13.   


    出现错误提示:Fatal error: Call to undefined function readifle()
      

  14.   


    Warning: readfile() [function.readfile]: open_basedir restriction in effect. File(img/359z0ycw7c3p6z39c73.jpg) is not within the allowed path(s)
      

  15.   

    readfile 要不要先声明一下或引用什么的
      

  16.   

    百度翻译:警告:readfile() [功能]:ReadFile。open_basedir限制效应。(IMG文件/ 359z0ycw7c3p6z39c73。JPG)不在允许的路径(的)
      

  17.   

    我改成这样echo readifle("http://localhost/img/359z0ycw7c3p6z39c73.jpg");  pic.php读出一堆乱码,应该是图片数据了。但是<img src="pic.php?aid=26588">还是不显示图片 就一个红叉
      

  18.   

    我改成这样echo readifle("http://localhost/img/359z0ycw7c3p6z39c73.jpg"); 不报错了。
     pic.php读出一堆乱码,应该是图片数据了。
    但是<img src="pic.php?aid=26588">还是不显示图片 就一个红叉