问题:
TCPDF和mPDF错误:某些数据已经输出到浏览器,无法发送PDF文件,我试图用TCPDF修复错误并安装mPDF只是为了在尝试将文档呈现到浏览器时出现同样的错误.我可以保存文档,并在检索时将其显示在浏览器中.
此外,此错误仅在从我的开发服务器切换到主机服务器后出现.在DEV服务器上正常工作(DEV服务器= WAMPSERVER,PROD服务器= Hostgator Linux).
故障排除:
我已经阅读了有关此问题的互联网上的大量其他讨论,我发现没有与空白相关的问题.我已将请求浓缩为以下内容:
<?php
ob_start();
$html = "Hello World";
include("../mpdf.php");
$mpdf=new mPDF();
$mpdf->WriteHTML($html);
$mpdf->Output();
ob_end_clean();
?>
Run Code Online (Sandbox Code Playgroud)
在writeHtml之前使用ob_clean()方法尝试使用TCPDF的相同概念.在所有情况下都是相同的错误(我可以向所有人保证这不是与空白相关的问题 - 我甚至用十六进制查看文件以确保编辑器没有插入奇怪的字符).
可能的线索:
当我将整个mPDF库和类和文件夹移动到public_html文件夹而不是从我的应用程序文件夹(symfony项目)中移动时,我终于能够得到关于发生了什么的线索.在这种情况下,当我将浏览器指向示例页面时,它渲染得很好而没有任何错误(并且它是超快的btw).所以,我知道它有效,而且我知道在代码或安装方面没有与空白相关的问题或任何其他相关问题(在mPDF/TCPDF方面).这让我相信symfony正在插入某种类型的标题(我尝试使用:clearHttpHeaders()),或者我在PROD服务器上的某个地方缺少PHP INI或CONFIG设置.
有没有人知道这里发生了什么?
更新: 流转储:
Request URL:http://www.example.com/mpdf
Request Method:GET
Status Code:200 OK
Request Headers
GET /mpdf HTTP/1.1
Host: www.example.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: __utma=44708724.1463191694.1383759419.1383759419.1383765151.2; __utmz=44708724.1383759419.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); PHPSESSID=9c7c802200b9d8eefe718447755add5f; __utma=1.813547483.1383767260.1385127878.1385130071.38; __utmb=1.7.10.1385130071; __utmc=1; __utmz=1.1383767260.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
Response Headers
Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection:Keep-Alive …Run Code Online (Sandbox Code Playgroud) 我正在使用sfDoctrineGuard和sfForkedDoctrineApply.我编写了一个模块,允许登录用户创建一个子用户,该用户继承了父级的一些配置文件设置.它的工作方式很棒,但是我必须为整个应用程序(在设置中)关闭csrf保护以使其正常工作,因为当它打开时,它(理所当然,我可能会添加)检测到csrf攻击.所以,我需要一种方法来关闭它,或者至少捕获并删除验证.
我尝试过很多技巧,但都没有.包含:
$this->disableLocalCSRFProtection();
Run Code Online (Sandbox Code Playgroud)
在形式.问题是,它是一个自定义表单,正在调用父配置,它正在注入csrf保护.
我已经阅读了一些我认为指向正确方向的解决方案:Symfony 1.4:表单中的CSRF自定义错误消息,但它们没有解决此特定问题.
欢迎提出建议和解决方案.提前致谢.
场景:表可能包含数千条带有时间戳列的记录.但是成千上万的记录可能只有两年的时间戳 - 或者说再一次,也许不是.我正在寻找的是以下数组:
表中存在的年份:数组('0'=>'2012','1'=>'2013')
我可以通过操纵结果得到答案,但我知道它不是非常有效; 特别是有数千条记录.什么是最好的方式?