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"></i>
</a>
<a title="删除" href="javascript:;" onclick="admin_del({$v.id})" class="ml-5" style="text-decoration:none">
<i class="Hui-iconfont"></i>
</a>
<a title="生成" href="javascript:;" onclick="admin_upload({$v.id})" class="ml-5" style="text-decoration:none">
<i class="Hui-iconfont"></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"></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']);
}
}
上一篇: 动物园打架的家伙