为什么file_get_contents无法在PHP中运行?

时间:2016-01-20 08:39:53

标签: php

此代码获取内容文件txt:

$str = "c:\\\\表\\t.txt";
$con=file_get_contents( $str);
echo $con;

文件存在于文件夹中:

enter image description here

结果:显示错误:

  

警告:file_get_contents(c:\表\ t.txt):无法打开流:第6行的C:\ xampp \ htdocs \ direction \ test.php中没有此类文件或目录

为什么file_get_contents()无效?

如何读取路径c:\表\ t.txt?

的内容

4 个答案:

答案 0 :(得分:2)

尝试使用urlencode对您的目录名进行编码:

$str = 'c:\\'.urlencode('表').'\t.txt';
$con=file_get_contents( $str);
echo $con;

详细描述here

修改

假设您正在使用UTF-8编码的源文件,您还可以尝试以下其中一种

$str = 'c:\\'.urlencode(mb_convert_encoding('表', 'UTF-16', 'UTF-8')).'\t.txt';
// or just
$str = 'c:\\'.mb_convert_encoding('表', 'UTF-16', 'UTF-8').'\t.txt';

据我所知,较新的(> FAT32)Microsoft文件系统使用UTF-16编码。但这会使您的解决方案在其他(例如Linux)文件系统上失败。

编辑2

您还可以尝试将UTF-8文件名转换为其他编码,例如SJISSJIS-winSJIS-2004JISEUC-JPeucJP-winEUC-JP-2004CP932JIS-ms等。但我不是东亚角色编码方面的专家 - 所以请谨慎对待这些信息。

答案 1 :(得分:1)

试试这个

<?PHP
$con=file_get_contents('./表/t.txt', true);
$con=file_get_contents('./表/t.txt',FILE_USE_INCLUDE_PATH);

echo $con;
?>

答案 2 :(得分:1)

语言: PHP

router.get('/', function(req, res, next) {

修改:

$results = scandir('c:\');
$result will give you all folder name inside c drive.
you can find your folder in $result array.
now you have folder name in $result and now you can go to file.

说明:

$results = scandir('/web');
$results = "/web/$results[21]/t.txt";
$con=file_get_contents( $results);
echo $con;

注意:如果您仍然在文件夹和文件中使用中文字符,则必须将操作系统从窗口更改为ubuntu。

答案 3 :(得分:0)

根据单/

创建路径
$content = file_get_contents("C:/表/t.txt");

您可以在此处详细了解Filesystemhttp://php.net/manual/en/wrappers.file.php