繁体   English   中英

如何使用PHP脚本转换CSV文件

[英]How to convert a CSV file using a PHP script

我需要将CSV文件转换为UTF-8并使用PHP脚本重命名。

以下代码可在我的PC上运行,但现在我需要在服务器上作为CRON任务执行此操作

iconv -f UTF-16LE -t UTF-8 OLD-FILE.csv > NEW-FILE.csv

任何人都知道PHP中的等效语言。 非常感谢。

一种简单的方法是使用以下命令将CSV文件加载到字符串中:

然后,您可以使用以下命令对字符串进行UTF-8编码:

最后,使用file_put_contents将字符串写入文件。

完成的代码如下所示:

$file_data = file_get_contents('/my/path/to/file.csv');
$utf8_file_data = utf8_encode($file_data);
$new_file_name = '/my/path/to/new_file.csv';
file_put_contents($new_file_name , $utf8_file_data );

确保Web服务器具有正确的权限以读取和写入适当的位置。

这是file_put_contents()的链接:

因此,这是我通过头脑风暴找到的解决方案:

<?php
$file_data = file_get_contents('/home/MYFILE.csv');
//$utf8_file_data = utf8_encode($file_data);

$utf8_file_data = mb_convert_encoding($file_data, "UTF-8", "UTF-16LE");
//$utf8_file_data = iconv("UTF-16LE","UTF-8",$file_data);

$new_file_name = '/home/MYFILE_NEW.csv';
file_put_contents($new_file_name , $utf8_file_data );
?>

唯一的缺点是输出大小是输入大小的两倍。 如果我在PC上使用ICONV,则大小只有一半...

如果有人知道我想听听为什么。

如果iconv可用,则可以使用等效的PHP: http : //php.net/manual/zh/function.iconv.php请注意,这需要一个字符串,您需要读入文件http://php.net。 /manual/en/function.fread.php ,然后将其写出http://php.net/manual/en/function.file-put-contents.php,但是这种方法可能会比较慢,对于大文件,则需要将文件加载到内存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM