整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

如何实现html代码与php代码互相转换?

家都知道,PHP是开源的,免费的,所以使用PHP的人数量基数也非常之大。所以许多对于不太懂PHP的人来说,知道如何实现html代码与php互相转换有助于你运用php实现html代码的输出。

(先不讨论这是否是一片小白文,只是分享这样的技巧给需要的人)

一、html代码转换成php代码

首先,使用dreamweaver等类似软件,将需要进行转换的html代码整理出来

其次,使用站长工具里面的html转换功能将html代码转换成php代码,如图所示:

需要转换的html代码

转换后的php代码

最后,将转换的后php代码放置到需要实现的php页面之后,即可实现php输出html代码。

二、如何将php代码转换成html代码

简单解决方法有2种:

方法一:将php页面生成html页面,直接查看html页面的源码,即可得到想要的html代码。

方法二:使用站长工具将php代码转换成html代码。具体详细步骤就不细说了。

想必看到此处,也许有不少人不知道为什么要做html与php的转换吧?html与php有什么作用呢?

一、使用php语言制作网页时,方便输出自己想要的html代码,减少代码的编写量,毕竟我只需要写一遍简单的html代码,即可得到php代码。(当然只是对于php新手来说,或许老手已经习惯了吧)

二、方便看不懂php代码的人也可知道这些php代码具体输出的是什么html代码,其实就是相当于在php代码中剔除了<?php,?>,echo,"",\n等字符而已,便于阅读吧!

三、最重要的一点,只为方便对此有需求的人,对此没有需求的人,其实任何作用都没有!

最后,学习php语言的小白们,如何输出html代码,不放先借用工具查看输出规则哦!有助于加快学习php的进度!当然,涉及数据库方面的输出,也需要用到html代码制作页面样式,所以,学习html代码与php代码如何转换,作用不可忽视!除非你只是纯输出数据库里面的数据而已!

ompdf是一个可以将HTML生成PD并保留样式效果的PHP第三方扩展。

下面就一步步讲解如何使用:

一、通过composer安装

composer require dompdf/dompdf


安装过程

二 、编写测试代码

(1)引用autoload.php

include 'vendor/autoload.php'; 

(2)实例化Dompdf

$dompdf=new \Dompdf\Dompdf();

(3)加载HTML

$dompdf->loadHtml($html); //$html 为HTML字符串

(4)设置纸张和方向

$dompdf->setPaper('A4', 'landscape'); //纸张大小和纸张方向

(5)生成PDF并下载

 $dompdf->render();
$dompdf->stream('数据字典.pdf');

三、导出PDF测试,发现中文乱码了


导出PDF发现中文乱码了

四、解决中文乱了问题

(1)下载支持中文的字体包放到根目录下(和vendor目录同级),这里演示使用的是阿里巴巴的普惠字体(字体格式是ttf的,小编原先下载使用的字体格式是otf格式的无效)

(2)下载dompdf字体安装工具解压到根目录(和vendor目录同级)

下载地址:https://github.com/dompdf/utils

(3)在命令行(CMD定位到根目录)下执行命令

php load_font.php "puhui" Alibaba-PuHuiTi-Light.ttf

执行成功后在路径(vendor\dompdf\dompdf\lib\fonts)下就会出现刚才的字体

(4)在样式文件中指定使用刚才安装的字体

body{font-family:puhui;}

(5)再次导出PDF测试成功


乱码问题解决

坑给你踩完,可行的结果给你探明,让你的方向明确,存在的小问题自行解决)

1、不要考虑前端转pdf了,我已经帮您爬过坑了。

前端转PDF,本质就是把网页通过canvas转成图片,图片转成PDF。

坑1:PDF文件占内存很大,本来应该是500kb的pdf,直接给你转出20M的pdf。
坑2:PDF很模糊,文字重影,各种控制画质的参数都无法解决。
坑3:PDF中其实就是一张图片,文字无法复制。


2、不要考虑后端PHP转PDF了,我已经帮您爬过坑了。

后端转PDF,本质就是用PHP干HTML的事情。

坑1:PHP去写html那种苦,只有苦命人能吃,特别是遇到JS图表等样式,直接生无可恋。
坑2:PHP去干html的事情无法在浏览器上预览,只有写一下导出pdf看效果,一套开发下来,导几百个pdf,这种苦您能吃不?
坑3:还要求你引入字体包等,麻烦死了。

3、不要考虑后端调用HTML转PDF了,我已经帮您爬过坑了。

后端调用HTML转PDF,本质就是PHP是识别HTML,再转出来。

坑1:大部分HTML不支持,不支持css文件,不支持js等图表,只能写行内样式。
坑2:写出来的浏览器预览效果和导出来的PDF不一致,试着去调样式,再导出pdf看效果,一套开发下来,导几百个pdf,这种苦您能吃不?


今天,亮哥从万坑从中爬出来,为广大劳苦程序猿献上一份:终极解决HTML/CSS/JS网页转PDF(高质量)的终极解决方案,请官人怜惜。

1、准备工作:待转网页、服务器环境。

(1)、待转网页:把你要转出的网页样式,用html、css、js排版出来,不用去在乎兼容性,您能想到的效果都支持。如果您是在网站中弹窗页面预览,网页套在ifram中弹窗即可。
(2)、服务器环境:建议使用傻瓜式维护linux的宝塔,如果您是的linux命令高手也可以不用宝塔。


2、安装wkhtmltopdf:在服务器上安装wkhtmltopdf软件。

安装软件过程中可能会出现各种各样的linux提示报错,因为报错多种多样,我没办法给您一一列举,您根据linux的报错去自行爬文档处理,我这里只给一个我探明可行,可用的思路,你顺着思路走即可。

A、 打开服务器终端。

B、下载wkhtmltopdf复制运行命令:

wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm

C、安装wkhtmltopdf复制运行命令:

sudo yum localinstall -y wkhtmltox-0.12.5-1.centos7.x86_64.rpm

D、检测wkhtmltopdf是否安装成功,复制运行命令:

wkhtmltopdf -V

3、用PHP创建一个超出的API接口

function PDF()
    {
        $inputFile = 'https://baidu.com'; //您要转出的网页路径
        $outputFile = ROOT_PATH . 'public/uploads/pdf/xxxx.pdf'; //存放PDF的物理路径
        $url =  '/public/uploads/pdf/xxxx.pdf'; //定义相对路径
        $wkhtmltopdfBinary = '/usr/local/bin/wkhtmltopdf --margin-top 5mm --margin-bottom 5mm --margin-left 5mm --margin-right 5mm'; //wkhtmltopdf命令的路
        $command = $wkhtmltopdfBinary . ' ' . escapeshellarg($inputFile) . ' ' . escapeshellarg($outputFile); //构建命令
        exec($command, $output, $returnCode); //执行命令行

        //执行失败暴露错误,用于debug
        if ($returnCode !== 0) { 
            $obj['output']=$output;
            $obj['returnCode']=$returnCode;
            return $obj;
        };
        //执行成功,如果有数据库操作,请在下面写你的数据操作

    }
}

4、导出效果

写作最后:如果你在操作的过程中遇到问题,私信联系我即可。