欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP生成html 生成预览

程序员文章站 2022-05-26 23:45:51
...

前端页面传参

{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']);
	    }        
    }

相关标签: php