我需要导入进数据库的excel文件内容:
ID NAME EMAIL
1 小明 [email protected]
2 小东 [email protected]
3 源泉 [email protected]需要导入进数据库中对应的表中,所以我用fgetcsv函数,把每一行内容通过配匹制表符分隔成三个数组,然后对应的插入表中,fgetcsv($handle,10000,"\t")这样可以实现。
但我现在需要用户自己定义分隔符,也就是有个表单让用户选择以何为分隔符,然后提交到处理页面来处理,
这样的话fgetcsv函数需要改成fgetcsv($handle,10000,$enclosed),这样$enclosed里存的是用户自定义的分隔符。
现在假设用户也用制表符做为分隔符,可是表单提交上来的参数与excel文件中的制表符配匹不了,函数得不到预期结果,
请问如果配匹,难道$enclosed里存的\t没有转换为制表符符号?

解决方案 »

  1.   

    把 $enclosed 打印出来看看
    echo ord($enclosed);用户是不可能在表单中输入“制表符”的,你是怎么做的?
      

  2.   

    $enclosed输出来是\t应该是算字符串
      

  3.   

    我是想用户能在页面上输入\t,然后提交后,后台把它配匹成制表符传入函数fgetcsv中,这样要怎么做?
      

  4.   

    解决了~字符串'\t'转成能解析的制表符,用eval()函数。
    如下:
    $a='aa\taa';
    eval("\$a=\"$a\";");
    echo $aoutput:aa aa功能实现