假设我在CSV文件中有以下行(在此示例中删除了标题行):
"500,000",2,50,2,90000
我有一个PHP脚本读取CSV文件,将文件分成几行,并将每一行存储在名为$linearray的数组中.然后,我使用一个foreach循环分别查看每行.
在foreach循环中,我使用以下函数将行分成单独的变量:
$line = str_replace("'","\'",$line);
从这里,我将值插入MySQL数据库中的单独列中.该脚本有效.这些值已插入数据库中,但遇到了问题.我想要:
"500,000" | 2 | 50 | 2 | 90000
但是我得到这个:
"500 | 000" | 2 | 50 | 2 | 90000
该脚本不够聪明,无法理解它应该跳过引号内的逗号.您知道如何更改脚本以确保获得所需的输出吗?
解决方法:
您可以使用str_getcsv功能
print_r(str_getcsv($line));
输出:
Array
(
[0] => 500,000
[1] => 2
[2] => 50
[3] => 2
[4] => 90000
)
Similar to 07001 this functions parses a string as its input unlike 07001 which takes a file as its input.
标签:csv,mysql,php,regex 来源: https://codeday.me/bug/20191210/2098295.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。