PHP,更改目录不起作用

时间:2016-12-21 06:23:59

标签: php linux

PHP版本:5.4.16

我在Centos Linux机器上运行Apache服务器,我的PHP代码更改目录不起作用。我的最终目标是尝试读取位于不同目录但不会读取文件的文件。我的第一次尝试是

$filename=("/home/tom/notes/test_notes.txt");
$file = fopen( $filename, "r" );

这不起作用,所以我用这个问题的答案解决了这个问题:Reading a file in a different directory php

$filename=(__DIR__."/home/tom/notes/test_notes.txt");
$file = fopen( $filename, "r" );

但那也不会读取文件,然后我检查它是否可以读取同一目录中的文本文件并且工作正常,我决定将目录更改为文本文件所在的位置可以正常工作。

我使用此代码进行了此操作,但它不会更改目录:

echo getcwd();
chdir("/home/tom/notes");
echo getcwd();

它返回:

/var/www/html
/var/www/html

(没有换行符..)

该目录在shell中有效为cd / home / tom / notes,正常工作

知道什么是不允许它更改目录? 或者还有其他更好的方法来读取位于另一个目录中的文件吗?

(我使用此代码查看是否打开文件)

if( $file == false )
{
echo "ERROR: Unable to open file";
}

1 个答案:

答案 0 :(得分:1)

我不确定您的chdir()代码有什么问题必须有一些警告如果失败,请参阅文档here尝试调试代码如下所示,启用error reporting

echo getcwd();
$response = chdir("/home/tom/notes");
var_dump($response);
echo getcwd();

要阅读该文件,请参阅下面的示例。 More Details

<?php
$myfile = fopen("/path/of/your/file", "r") or die("Unable to open file!");
echo fread($myfile,filesize("webdictionary.txt"));
fclose($myfile);
?>