我在Google appengine中使用PHP应用, 我试图读取输入文件并将其写入存储桶中的输出文件,如下所示。
$input_file = fopen('gs://mybucket/input.csv','r');
$output_file = fopen('gs://mybucket/output.csv', 'w');
尝试写一些像
这样的日期while(!feof($input_file)) {
$csv = fgetcsv($input_file,1024);
if(!$csv[0]){
fclose($output_file); //Close the connection when the loop ends
fclose($input_file);
exit(0);
}
fwrite($output_file, $csv[0]."\r\n");
}
它工作正常,当我尝试将一些数据上传到输入文件时,它也成功写入output.csv。但如果我尝试超过5或6次,它会开始在下面的appengine日志中抛出一个错误。任何有关解决此问题的帮助都将受到高度赞赏!
2015-04-08 21:31:29.006 PHP Fatal error: Undefined class constant 'WRITE_SCOPE' in /base/data/home/runtimes/php/sdk/google/appengine/ext/cloud_storage_streams/CloudStorageWriteClient.php on line 214
更新: 我认为这是因为同时打开2个文件流, 有人解决了这个问题并解决了这个问题!
$input_file = fopen('gs://mybucket/input.csv','r');
$array_acc = array();
while(!feof($input_file)) {
$csv = fgetcsv($input_file, 1024);
if($csv[0]) array_push($array_acc, $csv[0]);
}
fclose($input_file); //close the file
$acc_count = count($array_acc);
$output_file = fopen('gs://tool-synclio/output.csv','w'); // Open the output file now
while($acc_count > 0){
fwrite($output_file,$array_acc[$acc_count]."\r\n");
$acc_count --;
}
fclose($output_file);
但是,我还在等待某人提供更好的解决方案。
答案 0 :(得分:0)
您在变量中有2个美元符号:
fwrite($output_file, $$csv[0]."\r\n");