>  기사  >  백엔드 개발  >  php读取csv问题

php读取csv问题

WBOY
WBOY원래의
2016-06-06 20:48:121161검색

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)) {

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.