php根据新闻id号获取新闻的详细内容,并把图片的相对路径换成绝对路

<?php
  $username="";//数据库用户名
  $userpass="";//数据库密码
  $dbhost="";//主机地址
  $dbdatabase="";//数据库名称
  $id=$_REQUEST['id'];//获取新闻id号
  //生成一个连接
  $db_connect=mysql_connect($dbhost,$username,$userpass) or die("Unable to connect to the MySQL");


  //选择一个需要操作的数据库
  mysql_select_db($dbdatabase,$db_connect);
  //转换编码
  mysql_query("set names 'utf8'");


  


   //执行MySQL语句
  $result=mysql_query("select title,create_time,content,hits from 表名称where id=$id");
  
 // $row=mysql_fetch_row($result);


  $json="";
  //定义好一个数组。php中array相当于一个数据字典。
  $data=array();
  //定义一个类,用到存放从数据库中取出的数据。
  class User
  {
  public $title;
  public $create_time;
    public $content;
    public $hits;
  }


  while($row=mysql_fetch_array($result,MYSQL_ASSOC))
  {
  $user=new User();
  $user->title=$row["title"];
  $user->create_time=$row["create_time"];
    $user->hits=$row["hits"];
    /*$user->content=urlencode($row["content"]);*/
    $user->content=replaceImagSrc($row["content"]);//把新闻详细内容中图片的相对路径换成绝对路径
    
  $data[]=$user;
    //print_r($user);
  }
  //取整个图片代码 
/*preg_match('/<img(.[^<]*)src="?(.[^<"]*)"?(.[^<|/]*)/?>/is',$user->content,$matches); 
echo $matches[0];*/
  //print_r($data);
  //把数据转换为JSON数据
  //arrayRecursive($data, 'urlencode', true);
  $json=json_encode($data);
  echo ($json);
  //提取数据
 // $row=mysql_fetch_row($result);




  //把数据库中存储图片的相对路径换成绝对路径
  function replaceImagSrc($content){
    //获得img src的数组
    $flag = preg_match_all("/<img.*?src=[\\\'| \\\"](.*?(?:[\.gif|\.jpg]))[\\\'|\\\"].*?[\/]?>/",$content,$getPicPath);
    if($flag){
      for($i = 0 ; $i < count($getPicPath[1]) ; $i++){
        if(strpos($getPicPath[1][$i], "http") === false){ //如果不存在http,则加上路径
          $newsrc = "http://服务器ip地址".$getPicPath[1][$i];
          $content = str_replace($getPicPath[1][$i],$newsrc,$content); //替换
        }
      }
      return $content;
    }else{ //$content中没有img的src
      return $content;
    }
  }
?>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值