php require()不适用于相对或完整

时间:2016-08-16 15:55:31

标签: php require

我对require()命令有一个奇怪的问题,它根本不起作用并给我一个奇怪的错误..是的我100%肯定我把正确的道路 我尝试使用相对路径和完整路径,以及使用include()include_once()require()require_once(),但无济于事。 我测试了文件的存在,它确实存在..这对我没有意义! 我还没有看到其他人在论坛上遇到与此相同的问题,我也尝试使用全局变量,如$_SERVER["DOCUMENT_ROOT"]和其他路径,但这对我来说仍然不起作用。

程序是: HTML按钮 - > ajax调用“addcomments.php” - >页面需要“ajax.php” - >错误

addcomments.php页面:

//set path
$path = "g:/appserv/www/y4project/scripts/php/funcs/";

//check directory 
print_r(scandir($path));

//check if php file exists
if(file_exists($path."ajax.php"))
    echo "######### IT EXISTS!!! ##########";
else echo "@@@@@@ NO! @@@@@@@@";

//require it
require($path."ajax.php");

错误:

Array ( 
    [0] => . 
    [1] => .. 
    [2] => account.php 
    [3] => ajax.php 
    [4] => main.php 
    [5] => service.php ) 

######### IT EXISTS!!! ##########

Warning: require(1) [function.require]: failed to open stream: No such file or directory in G:\AppServ\www\y4project\scripts\AJAX\addcomments.php on line 10

Fatal error: require() [function.require]: Failed opening required '1' (include_path='.;C:\php5\pear') in G:\AppServ\www\y4project\scripts\AJAX\addcomments.php on line 10

我也试过像“../php/funcs/ajax.php”这样的相对路径,同样的问题.. scandir()file_exists()都找到它但require()失败了!

非常感谢您的帮助!

修改

我刚刚对它进行了测试以确定,从一个不同的测试页面需要它并使用了一个函数并且它可以正常工作,但仍然无法使用AJAX调用的“addcomments.php”页面。

另一个编辑

我还检查了PHP require_once()require()的文档,我仍然看不到问题!

这可能是某种路径错误或安全措施,其中AJAX调用脚本无法调用其他脚本吗?但这没有意义吗? 我也没有在文档中读到任何关于它的内容 我甚至尝试过要求HTML页面,但仍然没有工作。

我迷路了..

1 个答案:

答案 0 :(得分:0)

您可以尝试使用这种方式:

        numColumns = Convert.ToInt32(Math.Ceiling(143 / 10));
        numRows = Convert.ToInt32(Math.Ceiling(216 / 15));
        for(int i = 0; i < numColumns + 1; i++)
        {
            ColumnDefinition col = new ColumnDefinition();
            if(i == 0)
            {
                col.Width = new GridLength(gridHeaderOffset);
            }
            else if(i < numColumns)
            {
                col.Width = new GridLength(1,GridUnitType.Auto);
            }
            else
            {
                col.Width = new GridLength(Math.Round( (143 % 10), 2), GridUnitType.Star);
            }
            grid.ColumnDefinitions.Add(col);
        }