我有一台运行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开始执行,但是因为没有明显的原因而在......中失去了几百行。
好奇,如果有人之前见过这个,并且碰巧知道修复?会很好。感谢。
答案 0 :(得分:2)
IIS和Apache是两种不同的野兽。为了您自己的理智,请努力使您的开发环境贴近您的部署环境。
答案 1 :(得分:1)
我怀疑问题可能是您的PHP脚本使用short tags <?
但PHP配置是这样的,它不接受短标记并且需要完整标记<?php
。
您可以更改php.ini
并将short_open_tag
设置为1
,也可以修改脚本以使用完整的开放标记。我建议使用完整的开放标记,因为短标记存在带有PHP扩展的XML文件的问题。
您还需要检查短回声<?=
,并将其替换为<?php echo
。
你可以试试一些正则表达式:
/<?([^p])/<?php$1/g
/<?= /<?php echo /g