如何使用fgetcsv()重置文件指针?我有下面的循环,嵌套在另一个while循环中。但是,它从断点开始读取CSV,而不是在第一次运行后开始读取。while($line2=fgetcsv($fp2,$length2,$fildDelineate2)){if($line[0]==$line2[0]){$desc=addslashes(strip_tags($line2[6]));$import2="insertinto$table2values('$id','1',\"$line[1]\",'$desc','','0')";mysql_query($import2)ordie('impo
当读取csv文件中的特定行时,我尝试将SplFileObject::fseek与fgetcsv一起使用。为了读取第2行(例如),我执行了fseek(1)并使用fgetcsv读取,这给出了第2行。当我执行fseek(0)并使用fgetcsv读取时,我有第0行。因此,以这种方式读取第1行存在问题。(我知道我可以连续阅读2行,但不认为它很好)。我发现2008年PHP5.2.6版报告了这个问题:SplFileObject:fgetcsvafterseekreturnswrongline.我使用的是PHP版本5.4.19。有人知道这方面的信息吗?这是故意的吗? 最佳答
我有4列的.csv文件。删除与第一列的id相同的行的最简单方法是什么?这是我卡住的地方:if($_GET['id']){$id=$_GET['id'];$file_handle=fopen("testimonials.csv","rw");while(!feof($file_handle)){$line_of_text=fgetcsv($file_handle,1024);if($id==$line_of_text[0]){//removerow}}fclose($file_handle);}不幸的是,数据库不是一个选择。 最佳答案
我一直致力于将csv文件导入mysql数据库。问题是我的客户得到的文件已经有一些错误的格式。行以43结束,但文件下降到65078!导入时,脚本会一直运行。我该怎么做才能确保只导入从0到44的行?这是我正在使用的代码。";foreach($csv_lineas$header){if($header!==NULL){print"$header";}}echo"";}if($row>6){echo'';for($i=0,$j=count($csv_line);$i'.$csv_line[$i].'';}echo"\n";}else{$row++;}}?> 最佳答案
我正在用php读取CSV文件。许多行都有一个“复选标记”,它实际上是平方根符号:√并且php代码每次遇到这个字符时都会跳过它。这是我的代码(以“CSV样式”格式打印到浏览器窗口,以便我可以检查换行符是否在正确的位置:$file=fopen($uploadfile,'r');while(($line=fgetcsv($file))!==FALSE){foreach($lineas$key=>$value){if($value){echo$value.",";}}echo"";}fclose($file);作为临时解决方案,我只是在Excel中手动查找复选标记并将其替换为1。显然,我想要一
我有一个输入CSV,其中“列”没有包含在任何内容中。文件内容($input=fopen(文件名));:1,2,3,4,5,6,7a,b,c,d,e,f,g9,8,7,6,5,4,3z,y,x,w,v,u,tI'mhavingproblemsgettingfgetcsv()toworkbecausethereisn'tanenclosurearoundthevalues.while($row=fgetcsv($input)){print_r($row);}结果:1111I'vetriedsomebasicthingsthatIcouldthinkofoffthetopofmyhead:f
我在弄清楚如何读取我上传的CSV文件时遇到了一些麻烦,可能我的Controller代码中遗漏了一些东西。publicfunctionactionImport(){$model=newProdutos;$this->render('import',array('model'=>$model));if(isset($_FILES['csv_file'])){$handle=fopen($_FILES['csv_file']['tmp_name'],'r');if($handle){while(($line=fgetcsv($handle,1000,";"))!=FALSE){$model-
我正在使用fgetcsv在我的应用程序中读取csv文件。问题是我不知道我的用户是否会使用、、|或;作为分隔符。如果我什么都不告诉fgetcsv它只会接受,但如果我告诉它使用特定的定界符它只会接受。我现在做的是:while(($row=fgetcsv($fileHandle,4096))!==false){我想要的是这样的:while(($row=fgetcsv($fileHandle,4096,array(',',';','|')))!==false){这有可能以某种简单的方式实现吗?将分隔符限制为一个特定字符似乎很奇怪,因为CSV未标准化。 最佳答案
看来我对“;”有疑问定界符。这是我的csv文件:FirstName;LastName;Email;AgeJulie;Brown;julie@example.com;52Dan;Wong;dan@example.com;19Tim;Hortons;tim@example.com;27和我的PHP代码:$row=1;if(($handle=fopen("upload/".$_FILES['fichier']['name'],"r"))!==FALSE){while(($data=fgetcsv($handle,";"))!==FALSE){$num=count($data);echo"$n
我有一个简单的csv文件,它是制表符分隔的,我必须按原样使用它,因为它来自某个地方,我想读取它并将其插入我的数据库我已经使用了一个简单的php代码来读取它if(($handle=fopen("var/import/MMT29DEC.csv","r"))!==FALSE){/*Skipthefirstrow*/fgetcsv($handle,1000,chr(9));while(($data=fgetcsv($handle,1000,chr(9)))!==FALSE){print_r($data[0]);}}当print_r它显示的数据时Array([0]=>01SATAPC[1]=>4