2

我有一个运行 IIS7 的 Web 服务器,我刚刚更新到 PHP 5.3。我有两个似乎运行良好的站点,它们都使用了少量的 PHP。我目前在这台服务器上测试的版本大概使用了很多……更多。

我遇到的问题是在我的测试服务器(本地 XAMPP 安装)上,我的页面加载正常。当我将它推送到我的服务器并在浏览器中点击页面时,我得到以下信息:

Id ) return true; } return false; } public static function PrintSelector($SelectionArray) { if( !isset($SelectionArray)) { Page::WriteLine("
No selections are available.

"); } else { $FoundViewer = false; foreach($SelectionArray as $Selection) { if( $Selection->IsViewing()) { $ViewerSelection = $Selection; $FoundViewer = true; } } if( $FoundViewer ) { Page::WriteLine("Show / Hide " . get_class($Selection) . " Selections"); $ViewerSelection->PrintOverview(); Page::WriteLine("
"); } Page::WriteLine("\n"); foreach($SelectionArray as $Selection) if( $Selection->IsSelectable() && !$Selection->IsViewing()) $Selection->PrintSelection(); Page::WriteLine("
\n"); if( $FoundViewer ) Page::WriteLine("
"); } } } ?>

这只是我的新网站的一些底层代码。

经过进一步调查,我跑到我的其他网站之一并得到这个:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>AGP Credential Manager</title>

<link rel="stylesheet" href="styles.css" type="text/css" />

<script type="text/javascript">

function submitPageForm()

{

  document.forms["pageForm"].submit();

}



function submitForm(formName)

{

  document.forms[formName].submit();

}

</script>



<script language="javascript">

  function toggleDiv(divid){

    if(document.getElementById(divid).style.display == 'none'){

      document.getElementById(divid).style.display = 'block';

    }else{

      document.getElementById(divid).style.display = 'none';

    }

  }

</script></head>

<body>

<div id="wrap">

    <div class="header">

        <!-- TITLE -->

        <h1><a href="#">AGP Credential Manager</a></h1>

        <!-- END TITLE -->

    </div>

    <div id="nav">

        <ul>    

            <!-- MENU -->

在源代码中。而且我敢肯定你可以推测,我的前端并不多。似乎 PHP 开始执行,但在...中失败了几百行,原因不明。

好奇是否有人以前见过这个并且碰巧知道修复?会很好。谢谢。

4

2 回答 2

2

IIS 和 Apache 是两种不同的野兽。为了您自己的理智,请努力使您的开发环境接近您的部署环境。

于 2012-04-10T22:13:14.270 回答
1

我怀疑问题可能是您的 PHP 脚本使用短标签 <?,但 PHP 配置是这样的,它不接受短标签并需要完整标签<?php

您可以更改php.ini并设置short_open_tag1修改脚本以使用完整的打开标记。我建议使用完整的打开标签,因为短标签在带有 PHP 扩展的 XML 文件中存在问题。

您还需要检查短回声,<?=并将其替换为<?php echo.

您可以尝试一些正则表达式:

/<?([^p])/<?php$1/g
/<?= /<?php echo /g
于 2012-04-10T22:34:29.193 回答