我试过用不同的方法(其中一个是下面的)从csv文件或大文件大小(超过250MB)的逗号分隔文件读取数据,所以我可以将所需的数据从它插入到mysql数据库但程序在完成文件读取之前每次都会崩溃。我还尝试增加php.ini中的内存限制。 面临以下错误: -
1 .------------------------------------------ ----
memory_limit = 128M 致命错误:第19行的C:\ wamp \ www \ site \ files \ plugin \ agoda \ agoda.plugin.php中允许的内存大小为134217728(已尝试分配63个字节)
2 .------------------------------------------ ----
memory_limit = 1000M 致命错误:第19行的C:\ wamp \ www \ site \ files \ plugin \ agoda \ agoda.plugin.php中允许的内存大小为1048576000字节(试图分配1299字节)
第3 .------------------------------------------ ----
memory_limit = 2000M
我需要一种方法来在php中读取这些文件而不会破坏我的程序。
答案 0 :(得分:0)
我提供此代码修改它以满足您的愿望
$source = fopen('zipcode.csv', 'r') or die("Problem open file");
while (($data = fgetcsv($source, 1000, ",")) !== FALSE)
{
$zip = $data[0];
$city = $data[1];
$state = $data[2];
$latitude = $data[3];
$longitude = $data[4];
$timezone = $data[5];
$dst = $data[6];
mysql_query("INSERT INTO `latlong` (`zip`,`city`,`state`,`latitude`,`longitude`,`timezone`,`dst`) VALUES (".$zip.",'".$city."','".$state."','".$latitude."','".$longitude."',".$timezone.",".$dst.")");
}
fclose($source);