php
  • include-path
  • 2012-06-19 81 views 0 likes 
    0

    我正在处理一个奇怪的PHP问题。PHP:找不到包含文件

    在我的剧本,我有以下几点:

    $includeRoot = '/home/mydomain/include/'; 
    include_once $includeRoot."table_names.inc"; 
    
    echo $usersTbl; 
    

    输出端产生了什么。 $ usersTbl在table_names.inc中定义如下:

    $usersTbl = 'users'; 
    

    此代码在另一个脚本中正常工作。我试过如下:

    更改include_once到require_once

    的问题似乎并没有成为该代码无法找到该文件。如果我做到以下几点:

    echo (file_get_contents($includeRoot."table_names.inc")); 
    

    它实际上呼应了文件内容。我在这里没有看到什么?

    +1

    (1)为什么'_once'?它是否包含函数定义/是否包含在内? (2)文件是否以'<?php'开头? – Wrikken

    +0

    它是file_get_contents()而不是file_get_content()。你看看是否有任何PHP错误? –

    +0

    曾经是因为它还包含一些其他文件,所以这是为了确保如果这些其他文件包含某些相同的文件,则不会有关于重新声明的函数的投诉。所有文件都以<?php开头,它们全部关闭?> – EastsideDeveloper

    回答

    1

    为了帮助调试问题,请尝试以下操作:

    if(file_exists($includeRoot . "table_names.inc")) { 
        die("Include file exists!") ; 
    } else { 
        die("Include file does not exist!") ; 
    } 
    

    至少会告诉你,如果文件和文件路径实际存在。如果文件确实存在,那么问题可能出现在您的实际包含文件中。如果它不存在,那么请仔细检查你的路径。

    您可能还希望确保错误报告完全是在和倾倒到屏幕上:

    error_reporting(E_ALL); 
    ini_set('display_errors','On'); 
    
    +0

    我已经知道该文件存在,看到如果我这样做: – EastsideDeveloper

    +0

    echo(file_get_contents(includeRoot。“table_names.inc”));它回应了文件的内容。我已经试过if file_exists,它告诉我它存在。我会仔细检查错误报告。 – EastsideDeveloper

    +0

    这听起来很奇怪,但问题自行消失。我做的唯一事情就是把错误报告给ALL。在过去的8个小时里,我一直在为这个问题扯掉我的头发。我没有向所有人报告错误,但仍然有效。我不明白。我应该担心服务器上的病毒吗? – EastsideDeveloper

    相关问题