Bis*_*hoy 5 php csv utf-8 drush drupal-8
我有一个从 CSV 文件读取的 PHP 脚本,该文件采用 UTF-8 格式,下面的代码将其视为 ASCII。如何更改代码以将文件读取为 UTF-8?
if (($handle = fopen("books.csv", "r")) === FALSE)
throw new Exception("Couldn't open books.csv");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
Run Code Online (Sandbox Code Playgroud)
[编辑] 我当前代码的一个问题是,第一行的第一个值始终包含三个字节,用于标识开头附加的 UTF-8 文件。所以我猜一个按值或按行操作的解决方案可能不够好?
使用 fgets() 获取文件变量 $date 中的所有字符串,然后 mb_convert_encoding() 转换编码,然后 str_getcsv() 将字符串转换为数组。
if (($handle = fopen("books.csv", "r")) === FALSE)
throw new Exception("Couldn't open books.csv");
$data = "";
// get file all strin in data
while (!feof($handle)) {
$data .= fgets($handle, 5000);
}
// convert encoding
$data = mb_convert_encoding($data, "UTF-8", "auto");
// str_getcsv
$array = str_getcsv($data);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6736 次 |
| 最近记录: |