我有一个脚本,我在其中创建一个新文件并构建一个.CSV文件
$name = $_POST['file_name'];
$file = fopen('path/to/file_'.$name.'.csv','w');
$line = '"first_value","second_value"'...;
fwrite($file, $line."\n");
此脚本嵌入在MAMP服务器网站中,因此用户可以在浏览器中打开第一个选项卡并调用此脚本,然后在同一浏览器中调用第二个选项卡并并行启动相同的脚本。我期望的是,由于两个文件不同,文件写入应该并行完成,但它恰好相反:
等待第一次写入完成,然后开始创建第二个文件。
我该如何解决这个问题?
答案 0 :(得分:0)
从评论中我得出以下结论。
当文件不相同时,PHP正在等待写入第一个文件没有意义。这将是一个不同的情况("文件锁")。
当你有多个标签到同一个资源/域时,浏览器实际上是等待的,它确保至少接收一个响应的单个字节,直到它开始触发其他请求
尝试这样的事情时,您应该使用不同的计算机,或者将控制台与curl或wget(或PHP / bash脚本!)结合使用而不进行缓存。