質問
可能な複製:
mysql_fetch_array()は、パラメーター1がリソースであることを期待し、selectでboolean
こんにちは私はFGETCSVでCSVを処理しようとしていますが、私が行くのはエラーの無限のループだけです
警告:fopen( "tile"、 "user" ...)in testcsv.php on 5行目
警告:fgetcsv()は、パラメーター1がリソースであると予想し、/home/ratena/public_html/proc_files/testcsv.phpでboolean
<?php
$uploadcsv = "/home/ratena/public_html/temp/files/BatchLoadPM15.csv";
$filecsv = file_get_contents($uploadcsv);
//$batchid = $_POST['batchid'];
$handle = fopen("$filecsv", "r");
while (($data = fgetcsv($handle, 100000, ",")) !== FALSE) {
print_r($data);
}
?>
解決
この部分に問題があります
/* this is un-necessary */
$filecsv = file_get_contents($uploadcsv);
/* this expecting a file in */
$handle = fopen("$filecsv", "r");
これだけで3行を交換してみてください
$handle = fopen($uploadcsv, 'r');
最初の行をスキップします
$column_headers = array();
$row_count = 0;
while (($data = fgetcsv($handle, 100000, ",")) !== FALSE)
{
if ($row_count==0)
{
$column_headers = $data;
}
else
{
print_r($data);
}
++$row_count;
}
他のヒント
CSVファイルを文字列にダウンロードしています $filecsv
この文字列をファイル名として使用します fopen
!!
ファイルをダウンロードする必要はありません。CSVファイルの名前をに渡すだけです fopen
.
また、の返品値を確認することも忘れないでください fopen
いつも前 あなたは先に進んで読んでください。
$uploadcsv = "/home/namebob/public_html/temp/files/BatchLoadPM15.csv";
// try to open the file.
$handle = fopen($uploadcsv, "r");
// error checking.
if($handle === false) {
die("Error opening $uploadcsv");
}
// to skip the header.
$skip = true;
// file successfully open..now read from it.
while (($data = fgetcsv($handle, 100000, ",")) !== FALSE) {
// if header..don't print and negate the flag.
if($skip) {
$skip = !$skip;
// else..print.
} else {
print_r($data);
}
}
ファイル名ではなく、ファイルの内容を開こうとしているためです。を削除します file_get_contents
線を交換します fopen
電話:
$handle = fopen($uploadcsv, 'r');
それはそれをするはずです...
最初の行にはヘッダーが含まれているようです。行1をスキップします。
所属していません StackOverflow