陌生的事情......很难做出这个"问题"。我有一个用PHP和JavaScrip制作的整个网站。内容以多种方式处理,访问mySQL和文件。一种方法是包含一个构建html字符串的php。为了包含在网站结构中,我做了一个简单的输出缓冲区:
ob_start();
include_once($url);
$output = ob_get_contents();
ob_end_clean();
echo_cont($output);
echo_cont只是将内容存储在以后的正确位置。但是一个简单的"阅读一些照片文件并构建相册的页面已损坏。部分html缺失,奇怪的变化如下:
正在包含其他页面。
我今年开始在这个网站上使用输出缓冲区,我不知道这可能是一个问题还是其他的东西,但是不容易寻找线索,不容易运行网站外的页面,因为它依赖于几个库 - 有点复杂。它接口给我一个编码的文本,后来解码不好。你觉得怎么样?
编辑:echo_cont函数:
$htmlConteudo = '';
function echo_cont($html){
global $htmlConteudo;
$htmlConteudo .= $html;
}
答案 0 :(得分:0)
我决定用贡献者的想法回答我自己的问题,因为问题不是关于php功能,而是我调查的方式 - 并且可能会在你阅读我的答案时发生。
问题是:浏览器中显示的图像是对发送数据的解释,如开发人员窗口中显示的信息。不是原始数据,它是尝试从数据中生成xml / html文档。在这种情况下,原始数据需要先从浏览器解释中看到,并且可以使用这个简单的函数:
function strTag($xmlstr){
$str = str_replace('<', '<', $xmlstr);
$str = str_replace('>', '>', $str);
$str = str_replace(' ', ' ', $str);
return nl2br($str);
}
然后,数据被捕获:
ob_start();
include("www_pc/conteudo_imagens.php");
$output = ob_get_contents();
ob_clean();
echo(strTag($output));
现在是时候接近屏幕并检查所有细节了。就我而言,有一些像这样的标签:
<div style="float:left;width:80px;height:120px;margin:0px 5px 5px 0px;>
你可以看到样式声明结尾处缺少引号(它在深夜编码)。因此,当浏览器尝试重建xml并进行自己的解释时,在尝试查找错误时会混淆分析。我在Safari和Firefox中进行测试,因此不是浏览器故障,而是浏览器AI限制。得看原始代码,AI只在电影中出现!