PHP生成html 实现预览

前端页面传参

{
    
    volist name="$list" id="v"}
			<tr class="text-c">
				<td><img src="/public/uploads/{
      
      $v.img}" style="width: 119px;"></td>
				<td>{
    
    $v.addtime|date="Y-m-d H:i:s",###}</td>
				<td class="td-manage"> 
					<a title="编辑" href="javascript:;" onclick="admin_edit('编辑','{:url(\'edit\',array(\'id\'=>$v[\'id\']))}\')','1','800','500')" class="ml-5" style="text-decoration:none">
						<i class="Hui-iconfont">&#xe6df;</i>
					</a> 
					<a title="删除" href="javascript:;" onclick="admin_del({
      
      $v.id})" class="ml-5" style="text-decoration:none">
						<i class="Hui-iconfont">&#xe6e2;</i>
					</a>
					<a title="生成" href="javascript:;" onclick="admin_upload({
      
      $v.id})" class="ml-5" style="text-decoration:none">
						<i class="Hui-iconfont">&#xe642;</i>
					</a>
					{
    
    if condition="$v.url neq '' "}
						<a title="预览" href="www.域名/public/{
      
      $v.url}" class="ml-5" style="text-decoration:none">
							<i class="Hui-iconfont">&#xe695;</i>
						</a>
					{
    
    else/}
					{
    
    /if}
				</td>				
			</tr>
{
    
    /volist}

执行ajax

//执行生成请求
function admin_upload(id){
    
    
	layer.confirm('确认要生成吗?',function(index){
    
    
		$.ajax({
    
    
			type: 'POST',
			url: '{:url(\'admin/fromadd/up\')}',
			dataType: 'json',
			data:{
    
    id:id},
			success: function(data){
    
    
				if(data.code == 200){
    
    
					layer.msg('已生成到服务器!', {
    
    
						icon: 6,
						time: 1000
					},function(){
    
    
						document.location.reload();//当前页面
					});
				}else{
    
    
					layer.msg('生成失败!', {
    
    
						icon: 5,
						time: 1000
					});
				}				
			},
			error:function(data) {
    
    
				console.log(data.msg);
			},
		});
	});
}

PHP接受并生成返回

	//开始生成html
    public function up(){
    
    
	    header("Content-type: text/html; charset=utf-8");  //声明utf8 防止文件乱码
	    $id = input('id');  //获取当前指向的id
	    $info = Db::table('code_add')->where('id',$id)->find();  //根据当前id查询数据库的一条记录
	
	    $cardid = $info['cardid']; //定义要替换的数据变量 $cardid 为数据库的 $cardid
	    $title = $info['title'];  //定义要替换的数据变量 $title 为数据库的 $title
	    $text = $info['text'];  //定义要替换的数据变量 $text 为数据库的 $text
	    $img = $info['img'];  //定义要替换的数据变量 $img 为数据库的 $img
	
	    $path = '../temp.html';    //定义模板文件变量   
	    $fp = fopen($path,"r");   //r 以只读方式打开模板文件 将文件指针指向文件头   
	    $str = fread($fp,filesize($path)); //读取整个文件
	
	    $str = str_replace("{cardid}",$cardid,$str);  //替换变量 把模板文件中的{cardid}替换为 $cardid
	    $str = str_replace("{title}",$title,$str);   //替换变量 把模板文件中的{title}替换为 $title
	    $str = str_replace("{text}",$text,$str);    //替换变量 把模板文件中的{text}替换为 $text
	    $str = str_replace("{img}",$img,$str);     //替换变量 把模板文件中的{img}替换为 $img
	
	    fclose($fp);  //关闭打开的文件
	    
	    $t = date('YmdHis');  //获取当前时间戳并转换格式
	    $newpath = '../code/'.$t.'.html';  //拼接新的文件路径
	    $handle = fopen($newpath,"w");  //写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建
	    fwrite($handle,$str);  //fwrite() 函数将内容写入一个打开的文件中
	    fclose($handle);  //fclose() 函数关闭一个打开文件
	    
	    Db::table('code_add')->where('id',input('id'))->update(['url' => $newpath]);  //生成操作 往数据库插入 url 字段 提供预览
	
	    if($newpath){
    
           //返回执行ajax
	        return json(['code'=>200,'msg'=>'ok']);
	    }else{
    
    
	        return json(['code'=>500,'msg'=>'no']);
	    }        
    }

猜你喜欢

转载自blog.csdn.net/weixin_45557228/article/details/114968889
今日推荐