完美解决phpdoc导出文档中@package的warning及Error的错误_php技巧_脚本之家

by admin on 2019年11月26日

不久前在编辑PHPDoc的导出文书档案的时候开掘七个很烦躁的不当,纵然那一个warning不是什么主要错误,可是望着接连几日来十分不适的。于是就去互联网找了众多相关的材料,但是苦闷的是不驾驭是自己用的PHPDoc版本太新,照旧说非常多人都没碰着这些标题,反正正是从没有关的那些材质找到,只是找到了一些从PHPDocumentor官方网倒出来的有关@package的应用注意事项,然后就只可以一条一条检查,看了四个本子又八个本子,总算是被作者化解了。

原本我导出为 XLSX 格式,用的是

error_reporting 设定错误音讯回报的级差

正文实例陈诉了PHPExcel导出2002和二零零五的excel文书档案功效。分享给我们供我们参谋,具体如下:

笔者在PHP项目里需要把多少导出为Excel,而且数据中含有普通话.互连网海高校致明白一下可是使用PHPExcel,但是相对作者的供给,那么些框架太复杂了.于是要么想找找简单做法.互连网开掘实际上最简便易行能够如此写,但难题是这种做法汉语的编码不可信赖..复制代码 代码如下:
某些同学会想到header参加字符集复制代码
代码如下:header(“Content-type:application/vnd.ms-excel;charset=UTF-8”);难题:
这里只是告诉浏览器要选怎么字符集查看,最后本身的要求照旧要生成xls文件.
当然.有个别同学还大概会想到用iconv转码.复制代码 代码如下:echo
iconv(“当前编码”,”GB18030″,”此博客来源于javaeye,by jason”);难题:
这样文件里的汉字编码就GB18030,不过Excel这么明白用怎么样编码张开呢?只可以完全信任OS私下认可.不过假若遇上繁体BIG5如此办,还是会乱码.
所以如故不可相信.
终极本身使用phpMyAdmin的做法.用HTMLExcel,
HTML大家相比较熟谙,格式如下.复制代码
代码如下:

还要开采该方案得以缓和@package之类相关的荒诞提醒:

$objWriter = IOFactory::createWriter($objPHPExcel, 'Excel2007');

2047本身记得应该是E_ALL。

require_once 'common/excel/PHPExcel.php';require_once 'common/excel/phpExcel/Writer/Excel2007.php';require_once 'common/excel/phpExcel/Writer/Excel5.php';include_once 'common/excel/phpExcel/IOFactory.php';$objExcel = new PHPExcel();//设置属性 (这段代码无关紧要,其中的内容可以替换为你需要的)$objExcel->getProperties;$objExcel->getProperties()->setLastModifiedBy;$objExcel->getProperties()->setTitle("Office 2003 XLS Test Document");$objExcel->getProperties()->setSubject("Office 2003 XLS Test Document");$objExcel->getProperties()->setDescription("Test document for Office 2003 XLS, generated using PHP classes.");$objExcel->getProperties()->setKeywords("office 2003 openxml php");$objExcel->getProperties()->setCategory;$objExcel->setActiveSheetIndex;$i=0;//表头$k1="编号";$k2="推广代码";$k3="访问来源";$k4="IP";$k5="访问时间";$objExcel->getActiveSheet()->setCellValue;$objExcel->getActiveSheet()->setCellValue;$objExcel->getActiveSheet()->setCellValue;$objExcel->getActiveSheet()->setCellValue;$objExcel->getActiveSheet()->setCellValue;//debug;foreach($links_list as $k=>$v) { $u1=$i+2; /*----------写入内容-------------*/ $objExcel->getActiveSheet()->setCellValue; $objExcel->getActiveSheet()->setCellValue; $objExcel->getActiveSheet()->setCellValue('c'.$u1, $v["referer"]); $objExcel->getActiveSheet()->setCellValue; $objExcel->getActiveSheet()->setCellValue('e'.$u1, $v["dateline"]); $i++;}// 高置列的宽度$objExcel->getActiveSheet()->getColumnDimension;$objExcel->getActiveSheet()->getColumnDimension;$objExcel->getActiveSheet()->getColumnDimension;$objExcel->getActiveSheet()->getColumnDimension;$objExcel->getActiveSheet()->getColumnDimension;$objExcel->getActiveSheet->setOddHeader('&L&BPersonal cash register&RPrinted on &D');$objExcel->getActiveSheet->setOddFooter('&L&B' . $objExcel->getProperties . '&RPage &P of &N');// 设置页方向和规模$objExcel->getActiveSheet->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT);$objExcel->getActiveSheet->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);$objExcel->setActiveSheetIndex;$timestamp = time { //导出excel2007文档 header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="links_out'.$timestamp.'.xlsx"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007'); $objWriter->save; exit;} else { //导出excel2003文档 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="links_out'.$timestamp.'.xls"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter; $objWriter->save; exit;}
1234 Robbin会吐口水
5678 javaeye网站

现身的标题:

报错,郁结就纠葛在,在开荒情形和测量检验情况都没难点,放在生产条件一直 500
错误。

php.ini 文件中有过多配置安装。您应该已经安装好协调的php.ini
文件并把它座落合适的目录中,就如在 Linux 上设置PHP 和 Apache 2
的文书档案表达中所示的这样。在调解PHP
应用程序时,应当知道八个布局变量。上边是那七个变量及其暗中同意值:

更加多关于PHP相关内容感兴趣的读者可查看本站专项论题:《php操作office文书档案本事计算(富含word,excel,access,ppt)》、《PHP数组操作本事大全》、《php排序算法总括》、《PHP常用遍历算法与手艺总计》、《PHP数据结构与算法教程》、《php程序设总计法总计》、《PHP数学生运动算本事总计》、《php正则表明式用法计算》、《PHP运算与运算符用法总括》、《php字符串用法总括》及《php平淡无奇数据库操作才能汇总》

那下能够直接echo了,又不必要iconv转码,只要设置好HTML里的Content-type,是还是不是有美观的痛感呢?
当然header照旧要增多复制代码
代码如下:header(“Content-type:application/vnd.ms-excel”);
header(“Content-Disposition:attachment;filename=export_data.xls”);
好几小经历和各位同学分享一下..

1、no @package tag was used in a DocBlock for XXXXXXXXXXX

新生自身改成导出 XLS 格式,

display_errors = Offerror_reporting = E_ALL

但愿本文所述对我们PHP程序设计具备利于。

2、XXXXXX has no page-level DocBlock, use @package in the first DocBlock
to create one

$objWriter = IOFactory::createWriter($objPHPExcel, 'Excel5');

E_ALL能从不良编码推行到无毒提示到不可信的保有音信。E_ALL
对于开拓进度来讲多少太细,因为它在显示器上为部分麻烦事也体现提醒,会搞糟浏览器的出口

3、ECRUISERRO奔驰M级: XXXX can not have @package
tag。。。。(具体的提醒我记不清了,大题的情致是这里的文书档案不可能动用@package标签卡塔尔

主题素材化解了,具体怎么待有空了切磋下!!!

所以不建议选择2047,最棒把暗许值改为:error_reporting = E_ALL &
~E_NOTICE

现身上诉难点的主要缘由是:页面级的文书档案块注释深入深入分析错误

以上那篇PHPExcel在linux境遇下导出报500荒诞的解决方法正是笔者分享给大家的全体内容了,希望能给我们叁个参阅,也指望我们多都赐教脚本之家。

PHP.ini中display_errors = Off失效的解决

一定要是文件中的第三个文书档案块注释,况且有@package标签

问题:

该文档快注释之后假使是跟着生机勃勃段PHP代码或是class类申明,必得用文书档案块注释隔开分离(也便是说页面级文书档案块注释之后无法跟着代码片段卡塔 尔(阿拉伯语:قطر‎

PHP设置文件php.ini中不言而喻已经安装display_errors =
Off,但是在运转进程中,网页上如故会现出错误音讯。

举例说情状:

解决:

案例一:  复制代码 代码如下: /** * 这个是一个页面级文档块注释 *@package haha * */ class test { } 以上的情况就会出现上述2的错误信息 解决该案例的方案是给class重新声明一个文档块注释 复制代码 代码如下: /** * 这个是一个页面级文档块注释 *@package haha * */ /** * 我是test类 */ class test { } *********************************************** 案例二: 复制代码 代码如下: /** * 这个是一个页面级文档块注释 */ /** * 这个是一个页面级文档块注释 *@package haha * */ class test { } 会出现如上问题中的1/2的情况。 解决方案也是如案例一的解决方案一样 *********************************************** 案例三:  复制代码 代码如下: /** * 这个是一个页面级文档块注释 *@package haha * */ define; 就会出现如上所说的情况3Error。 解决方案也是如出一则: 复制代码 代码如下: /** * 这个是一个页面级文档块注释 *@package haha */ /** * 我是常量 */ define; 

经查log_errors=
On,据官方的布道,当以此log_errors设置为On,那么必需钦定error_log文件,假使没钦命大概钦命的文书并未权限写入,那么依然会输出到正规的输出门路,那么也就使得display_errors
那个钦点的Off失效,错误音讯还是打字与印刷了出去。于是将log_errors =
Off,难点就一举成功了。

若果所写的文书档案块正确,就不会冒出@package相关的荒谬了。

一再看看error_reporting直意为:设定错误音讯回报的阶段。

注:

value constant 1 E_ERROR 2 E_WARNING 4 E_PARSE 8 E_NOTICE 16
E_CORE_ERROR 32 E_CORE_WARNING 64 E_COMPILE_ERROR 128
E_COMPILE_WARNING 256 E_USER_ERROR 512 E_USER_WARNING 1024
E_USER_NOTICE 2047 E_ALL 2048 E_STRICT 然而7=1+2+4

1、在讲明中供给注意,任何不是/**
*/类型的笺注都不会被PHPDoc所深入分析。况兼/**
*/中的多行注释前边不是以*开头的批注行也不会被分析。

不畏出错开上下班时间显得1 E_ERROR 2 E_WARNING 4 E_PARSE

2、假诺注明了标签却从未提交相关的价签必选项就能够爆发一个Error新闻,比方@var
后边未有变量,@return前面未有回去类型,都将会现出Error错误。解决情势正是增加补充完整,或是若无的话就移除。

以上那篇php关闭warning难点的消除措施正是小编分享给我们的全部内容了,希望能给大家多个参照他事他说加以考查,也希望大家多多照看脚本之家。

其余,提供贰个命令行格局下的下令文件实践,自动实行Doc文书档案生成:

@Rem: 命令行格式自动导出PHPDoc文档 @Rem: author: 肖肖 x_824@sina.com @echo off @echo ******************************************************************************* @echo 自动导出文档使用说明: @echo 需要安装命令行的PHPDOCumentor,安装方式是用pear安装pear install PhpDocumentor即可 @echo 1、option:设置导出文档的格式,命令行格式支持四种格式:默认为第一种格式 @echo ###1】、HTML:frames:default @echo ###2】、HTML:Smarty:default @echo ###3】、CHM:default:default @echo ###4】、PDF:default:default @echo 2、dir:需要执行导出文档的目录、 @echo 3、outputDir: 导出的文档存放目录 @echo 4、title:导出的文档的标题 @echo ******************************************************************************* @set option=HTML:frames:default @set dir=D:\PHPAPP\test @set outputDir=D:\PHPAPP\doc @set title=PHPWindDoc @phpdoc -d %dir% -o %option% -ti %title% -t %outputDir% @echo 欢迎使用!导出成功 @pause 

注:该命令需求安装命令行下的PHPDocumentor包,安装方式用pear安装。

如上那篇完美化解phpdoc导出文书档案中@package的warning及Error的荒唐正是我分享给我们的全体内容了,希望能给我们一个参阅,也可望我们多都赐教脚本之家。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图