【问题标题】:Why is CakePHP inserting a space before my xml layout?为什么 CakePHP 在我的 xml 布局之前插入一个空格?
【发布时间】:2009-09-26 18:27:07
【问题描述】:

我在 CakePHP 中遇到了一个非常令人沮丧的问题,在我的 KML 文件布局的开头不断出现一个空格,导致 Google 地球拒绝 KML 文件!

<?php header("Content-disposition: attachment; filename=area.kml");
header("Content-Type: application/vnd.google-earth.kml+xml kml; charset=utf8");
header("Content-Transfer-Encoding: binary");
header("Pragma: no-cache");
header("Expires: 0");
echo '<?xml version="1.0" encoding="UTF-8"?>';
 ?>
<kml xmlns="http://earth.google.com/kml/2.2">
    <Document>
        <?php echo $content_for_layout ?>
    </Document>
</kml>

对于我得到的输出

" <?xml version="1.0" encoding="UTF-8"?>"

等 请帮忙!

【问题讨论】:

  • 您确定在标头之前没有发送任何字符吗?像控制器类中的尾随空格等?您是否确认过,例如通过尝试发送“位置:example.com”(重定向)标头?

标签: php xml cakephp kml


【解决方案1】:

如果您包含的 php 文件在关闭 ?&gt; 后有一个空格,则可能会发生这种情况。出于这个原因,通常建议您不要包含该标签(例如,在视图中,您 echoing 变量和其他内容除外)。

【讨论】:

  • 调试 2 小时后 ... app_model 中的空间
  • 这里有一些,在我的验证码组件中,php 标签前的空格。我在 ComponentsCollection 中编辑了 init 函数以找到它的位置。
【解决方案2】:

它是 ?> 标记之后和

?>

【讨论】:

    【解决方案3】:

    使用ob_clean ();清理空白

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-23
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多