我正在将一个包含希伯来语的CSV文件导入我的网站。在记事本中打开CSV文件时,希伯来语内容不会被引号括起来。没有引用的内容不会在我的网站上阅读。在上载期间,此csv文件会移动到另一个文件中。为了用双引号将希伯来语内容括起来,我尝试了以下代码,但文件没有更新。
$fileHandler = fopen('IMPORT_193', 'rw');
while (($buffer = fgets($fileHandler)))
{
$v=explode(',',$buffer);
for($i=0;$i<count($v);$i++)
{
$val=trim($v[$i],'"');
$v1[]= '"'.$val.'"';
}
fputcsv($fileHandler, $v1);
}
我想用带引号的CSV新值更新文件中的当前内容。有没有任何方法可以将CSV内容用引号括在文件中?正在等待您的回复!
您不能(至少在本例中)同时读取和写入同一个文件。试试这个:
$fileRead = fopen('IMPORT_193', 'r');
$tempFile = tempnam(sys_get_temp_dir(), 'CSVIMPORT');
$fileWrite = fopen($tempFile, 'w');
while(!feof($fileRead)) {
$data = fgetcsv($fileRead);
foreach($data as $key=>$value) {
if(!is_numeric($value)) {
$data[$key] = '"'.$value.'"';
}
}
fputcsv($fileWrite, $data);
}
fclose($fileRead);
fclose($fileWrite);
rename($tempFile, 'IMPORT_193');
这应该奏效。我还没有对此进行测试。并且您需要具有覆盖IMPORT_193文件的权限。