【问题标题】:PHP code in drupal pages treating > as ?>drupal页面中的PHP代码将>视为?>
【发布时间】:2010-05-14 19:38:52
【问题描述】:

在处理现有的 Drupal 站点时,我注意到一个奇怪的故障,它导致任何带有 > 的 PHP 运算符都像 ?> 标记一样工作。这发生在我创建的具有“PHP 代码”的“输入格式”的 Drupal 页面中。

比如这行代码
foreach($array as $key => $value){
导致打印出来的页面非常破损
$value){

有人知道是什么原因造成的吗?我的开发环境是 XAMPP。 Drupal 版本是 6.15。 PHP版本是5.2.9。

更新:短标签已关闭,当 PHP 被重写以使其不包含 > 字符时,它按预期工作。我必须进行更多测试才能获得更多信息。

【问题讨论】:

  • PHP 代码是否被解析过?是否有任何来自 PHP 的错误消息(因为 PHP 代码已损坏)?

标签: php drupal


【解决方案1】:

检查您的 php.ini 是否启用了短标签。如果没有,请确保您始终以 <?php 开始每个 php 块

【讨论】:

  • 无论您的 php.ini 设置如何,您都应该这样做,以确保将来不会将站点移动到其他服务器。
【解决方案2】:

如果您查看源代码,我敢打赌您会在其中看到 foreach 的其余部分。它将> 视为HTML 结束分隔符(它在脚本的前面找到了<)。确保正在解析 PHP。如果它没有被解析,看看是不是因为脚本需要短标签。如果脚本使用长标签,请确保 PHP 本身已启动并在 Web 服务器中正常运行。

【讨论】:

  • 这似乎与发生的事情大同小异。我认为页面崩溃了,因此 PHP 的其余部分被作为页面的其余部分发送。为了确认这一点,我无法让它再次发生。
【解决方案3】:

你确定foreach()前面有<?php吗?有些服务器需要<?php 而不仅仅是<?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 2016-02-20
    相关资源
    最近更新 更多