Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 文件\u放置\u内容不返回值_Php_Laravel - Fatal编程技术网

Php 文件\u放置\u内容不返回值

Php 文件\u放置\u内容不返回值,php,laravel,Php,Laravel,我在使用文件内容时遇到问题。我想我可以在laravel/php中做类似的事情 $response = new stdClass(); $key = generateKey(); // generates a 32 bit key $dir = "/mnt/my-usb"; if (file_put_contents($dir . "/" . "key", $key) === true) { $response->status = "Fail"; $response->

我在使用文件内容时遇到问题。我想我可以在laravel/php中做类似的事情

$response = new stdClass();
$key = generateKey(); // generates a 32 bit key
$dir = "/mnt/my-usb";
if (file_put_contents($dir . "/" . "key", $key) === true) {
    $response->status = "Fail";
    $response->message = "Some user facing message that describes the error";
    return Response::json($response, 500);
}
所以我想我可以检查状态代码文件的内容,并返回一条正确的错误消息。但是,当我单步执行这段代码时,一旦它到达if语句,如果出现故障,它就永远不会进入if语句。我不知道为什么。我在没有===真的情况下尝试了它,得到了相同的结果。我以为file\u put\u contents会返回某种错误代码,我可以查找这些代码并创建一条面向用户的消息,但它只是自动返回,我无法创建一个响应以发送回客户端。有什么想法吗?提前谢谢

检查手册:

此函数返回写入文件的字节数,失败时返回FALSE


意思是:文件内容将永远不会返回
TRUE
。但是,它将返回
false
,因此如果坚持使用布尔值,则需要使用:

if (file_put_contents($dir . "/" . "key", $key) !== false) {
    // reset of code
}

此外,还有多个示例介绍如何使
文件\u放入\u内容
以“静默方式死亡”(即测试文件是否可以打开,检查文件夹是否可写等)

尝试将完整路径添加到文件路径,如下所示:

/home/Site_Name/public_html/

此函数返回写入文件的字节数,失败时返回FALSE。
file\u put\u contents
出错时返回
FALSE
。您正在测试
true
。另外,
$key
以前是否作为目录存在?如果没有,则需要先使用
mkdir()
创建该目录,然后才能遍历该目录并放置内容。