Home  >  Article  >  Backend Development  >  php读取csv问题

php读取csv问题

WBOY
WBOYOriginal
2016-06-06 20:48:121202browse

php读取csv问题 测试环境php5.4,服务器环境php5.2,服务器上无法读取,测试环境正常。 请问一下,我php读取csv文件的时候,带双引号的字段能读取出来,不带双引号的字段读取不出来,这个问题是怎么回事呢?

在有的机器上面是正常的,在有的机器上面是不能读取出来。

csv是excel生成的,查看了excel的帮助文件,当单元格里面有逗号的时候,会自动添加双引号。 `
if (isset($_POST['import'])) {
$file = $_FILES['csv_goods'];
$file_type = substr(strstr($file['name'], '.'), 1);

<code>// 检查文件格式
if ($file_type != 'csv') {
    echo '文件格式不对,请重新上传!';
    exit;
}

$handle = fopen($file['tmp_name'], "rb");
require_once('./function.php');
$row = '';

while ($data = fgetcsv($handle, 1000, ',')) {
    unset($setsqlarr);
    unset($rw);
    unset($re);
    $row++;
    if ($row == 1)
        continue;
    $num = count($data);
    for ($i = 0; $i </code>

回复内容:

php读取csv问题 测试环境php5.4,服务器环境php5.2,服务器上无法读取,测试环境正常。 请问一下,我php读取csv文件的时候,带双引号的字段能读取出来,不带双引号的字段读取不出来,这个问题是怎么回事呢?

在有的机器上面是正常的,在有的机器上面是不能读取出来。

csv是excel生成的,查看了excel的帮助文件,当单元格里面有逗号的时候,会自动添加双引号。 `
if (isset($_POST['import'])) {
$file = $_FILES['csv_goods'];
$file_type = substr(strstr($file['name'], '.'), 1);

<code>// 检查文件格式
if ($file_type != 'csv') {
    echo '文件格式不对,请重新上传!';
    exit;
}

$handle = fopen($file['tmp_name'], "rb");
require_once('./function.php');
$row = '';

while ($data = fgetcsv($handle, 1000, ',')) {
    unset($setsqlarr);
    unset($rw);
    unset($re);
    $row++;
    if ($row == 1)
        continue;
    $num = count($data);
    for ($i = 0; $i </code>

http://www.php.net/manual/en/function.fgetcsv.php

文档里写的很清楚,第二个参数要求比你csv文件里最长行的长度要大,你要是不确定最长的行有多长就干脆不用加第二个参数,另外第三个参数默认值就是,,完全没有必要多此一举。

while ($data = fgetcsv($handle, 1000, ',')) {
建议改成
while ($data = fgetcsv($handle)) {

最后:文档里的示例代码只是示例,不要照抄!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn