给定一个简单的代码,例如:
$file = 'hugefile.jpg';
$bckp_file = 'hugeimage-backup.jpg';
// here comes some manipulation on $bckp_file.
假设的问题是,如果文件很大或很大 - 比如说 jpg - 人们会认为服务器需要一些时间来复制它(我的意思是甚至几毫秒) - 但也有人会假设下一行的执行会快得多.. 所以理论上 - 我可能会在尝试操作尚未创建的文件时出现“没有这样的文件或目录”错误 - 或者更糟 - 开始操作TRUNCATED文件.
我的问题是如何确保 $bckp_file 在操作它的 NEXT 行之前成功创建(或在这种情况下 - 复制)。
我有哪些选项可以“暂停”、“延迟”下一行执行,直到文件创建/复制完成?
现在我只能想到类似的东西
if (!copy($file, $bckp_file)) {
echo "failed to copy $file...\n";
}
这只会提醒我,但不会解决任何问题(就像出现 php 错误一样)
或者
if (copy($file, $bckp_file)) {
// move the manipulation to here ..
}
但这也不是那么有效 - 因为假设副本没有被执行 - 我将退出循环而没有实现我的目标并且没有错误。
这甚至是一个问题还是我想多了?还是 PHP 有一个内置机制来确保这一点?有什么推荐的做法吗?对这个问题有什么想法吗???