是否有任何PHP代码在IIS上不起作用


Is there any PHP code that does not work on IIS?

如果这是一篇重复的帖子,我很抱歉,但经过一番搜索,我没有找到我要找的东西。

是否有不适用于IIS7的PHP代码(语法)?

不,PHP语法在每个平台上都完全相同,即使在web服务器之外也是如此。

当然,在特定于平台的代码和变量方面可能存在一些小的差异。一个很好的例子是PHP的$_SERVER超全局,它在IIS 上没有完全填充

如果安装了标准PHP和PHP模块,答案是否定的。

同时考虑此处的警告http://php.net/manual/en/function.file.php如果您想使用file函数从url中读取。尽管这不是一个很可能的情况,但我已经面对了它。

区块报价一个很好的例子是PHP的$_SERVER超全局,它在IIS 上没有完全填充

你可以用类似的东西来解决这个问题

function setRequestURI() {
    //Sets $_SERVER['REQUEST_URI'] for IIS
    if (!isset($_SERVER['REQUEST_URI']) || !$_SERVER['REQUEST_URI']) {
        if (!($_SERVER['REQUEST_URI'] = @$_SERVER['PHP_SELF']))  {
            $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'];
        }
        if (isset( $_SERVER['QUERY_STRING'])) {
            $_SERVER['REQUEST_URI'] .= '?'.$_SERVER['QUERY_STRING'];
        }
    }
}

PCNTL在windows环境中无法工作。

http://www.php.net/manual/en/pcntl.installation.php

我认为PHP不依赖于操作系统。您同样可以在任何平台上运行PHP脚本,在web服务器上安装运行PHP脚本所需的适当模块。