[转载]php 导入csv文件_流星飞雨_新浪博客

[转载]php 导入csv文件_流星飞雨_新浪博客.

 

<span class="tag"><form</span><span class="pln"> </span><span class="atn">enctype</span><span class="pun">=</span><span class="atv">"multipart/form-data"</span><span class="pln"> </span><span class="atn">action</span><span class="pun">=</span><span class="atv">"import.php"</span><span class="pln"> </span><span class="atn">method</span><span class="pun">=</span><span class="atv">"POST"</span><span class="tag">></span><span class="pln">
    导入模板 
    </span><span class="tag"><label</span><span class="pln"> </span><span class="atn">for</span><span class="pun">=</span><span class="atv">"文件选择"</span><span class="tag">></span><span class="pln">文件选择:</span><span class="tag"></label><input</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"csv_goods"</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"file"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
    </span><span class="tag"><input</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"submit"</span><span class="pln"> </span><span class="atn">value</span><span class="pun">=</span><span class="atv">"导入"</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"import"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></form></span><span class="pln">
</span><span class="pun"><?</span><span class="pln">php
</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">isset</span><span class="pun">(</span><span class="pln">$_POST</span><span class="pun">[</span><span class="str">'import'</span><span class="pun">])){</span><span class="pln">
     
    $file </span><span class="pun">=</span><span class="pln"> $_FILES</span><span class="pun">[</span><span class="str">'csv_goods'</span><span class="pun">];</span><span class="pln">
     
    $file_type </span><span class="pun">=</span><span class="pln"> substr</span><span class="pun">(</span><span class="pln">strstr</span><span class="pun">(</span><span class="pln">$file</span><span class="pun">[</span><span class="str">'name'</span><span class="pun">],</span><span class="str">'.'</span><span class="pun">),</span><span class="lit">1</span><span class="pun">);</span><span class="pln">
     
    </span><span class="com">// 检查文件格式</span><span class="pln">
    </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$file_type </span><span class="pun">!=</span><span class="pln"> </span><span class="str">'csv'</span><span class="pun">){</span><span class="pln">
        echo </span><span class="str">'文件格式不对,请重新上传!'</span><span class="pun">;</span><span class="pln">
        </span><span class="kwd">exit</span><span class="pun">;</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
    $handle </span><span class="pun">=</span><span class="pln"> fopen</span><span class="pun">(</span><span class="pln">$file</span><span class="pun">[</span><span class="str">'tmp_name'</span><span class="pun">],</span><span class="str">"r"</span><span class="pun">);</span><span class="pln">
    $file_encoding </span><span class="pun">=</span><span class="pln"> mb_detect_encoding</span><span class="pun">(</span><span class="pln">$handle</span><span class="pun">);</span><span class="pln">
     
    </span><span class="com">// 检查文件编码</span><span class="pln">
    </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$file_encoding </span><span class="pun">!=</span><span class="pln"> </span><span class="str">'ASCII'</span><span class="pun">){</span><span class="pln">
        echo </span><span class="str">'文件编码错误,请重新上传!'</span><span class="pun">;</span><span class="pln">
        </span><span class="kwd">exit</span><span class="pun">;</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
     
    $row </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln">
    </span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$data </span><span class="pun">=</span><span class="pln"> fgetcsv</span><span class="pun">(</span><span class="pln">$handle</span><span class="pun">,</span><span class="lit">1000</span><span class="pun">,</span><span class="str">','</span><span class="pun">)){</span><span class="pln">
        </span><span class="com">//echo "<font color=red>$row</font>";  //可以知道总共有多少行</span><span class="pln">
        $row</span><span class="pun">++;</span><span class="pln">
        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$row </span><span class="pun">==</span><span class="pln"> </span><span class="lit">1</span><span class="pun">)</span><span class="pln">
        </span><span class="kwd">continue</span><span class="pun">;</span><span class="pln">
        $num </span><span class="pun">=</span><span class="pln"> count</span><span class="pun">(</span><span class="pln">$data</span><span class="pun">);</span><span class="pln">
        </span><span class="com">// 这里会依次输出每行当中每个单元格的数据</span><span class="pln">
        </span><span class="kwd">for</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$i</span><span class="pun">=</span><span class="lit">0</span><span class="pun">;</span><span class="pln"> $i</span><span class="pun"><</span><span class="pln">$num</span><span class="pun">;</span><span class="pln"> $i</span><span class="pun">++){</span><span class="pln">
            echo $data</span><span class="pun">[</span><span class="pln">$i</span><span class="pun">].</span><span class="str">"<br>"</span><span class="pun">;</span><span class="pln">
            </span><span class="com">// 在这里对数据进行处理</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
     
    fclose</span><span class="pun">(</span><span class="pln">$handle</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
 
</span><span class="pun">?></span><span class="pln"> </span>
赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

登录

注册