【发布时间】:2015-02-26 22:01:30
【问题描述】:
我开发了一个在 Linux 上完美运行的网站,但是当我尝试在 Windows 生产服务器上运行它时,php 脚本不起作用。这行之后代码中的所有内容都没有做任何事情:
require_once __DIR__ . DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR . 'returner.php';
我认为问题可能与文件的路径有关,所以我修改了代码以使用 DIR 和 DIRECTORY_SEPARATOR 以避免路径出现任何问题。我使用 file_exists 测试了路径是否正常工作并且找到了文件,但是当我尝试在 Windows 服务器上运行它时,我的代码仍然没有执行任何操作。
/index.php 包括 /lib/returner.php
/lib/returner.php 包括 /lib/login.php
代码:
index.php:
...
div class="container" role="main">
<?php
require_once __DIR__ . DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR . 'returner.php';
echo '<div class="page-header">';
echo '<h1>' . returnSede() . '</h1>';
...
returner.php:
...
<?php
require_once __DIR__ . DIRECTORY_SEPARATOR . 'login.php';
$sede = $_POST['selectSede'];
...
【问题讨论】:
-
windows 有 dir 分隔符 '\' 和 linux '/'
-
开启错误报告并阅读您的日志。
-
@Eugen php 会在需要时翻译它们。我通常只使用
/,它工作正常。另外,OP 正在使用预定义的常量 DIRECTORY_SEPARATOR,这应该可以解决这个问题。
标签: php linux windows path require-once