为了账号安全,请及时绑定邮箱和手机立即绑定

使用 PHP 脚本将 .CSV 转换为 .XML 时出错

使用 PHP 脚本将 .CSV 转换为 .XML 时出错

PHP
心有法竹 2022-01-08 17:10:26
我正在尝试将我的 CSV 文件转换为 XML 以导入我的 PrestaShop。我正在使用这个脚本,下面是我从帖子中获得的。但它不起作用。function createXML(){    error_reporting(E_ALL | E_STRICT);    ini_set('display_errors', true);    ini_set('auto_detect_line_endings', true);    $inputFilename    = 'import/products_import.csv';    $outputFilename   = 'import/productos.xml';// Open csv to read    $inputFile  = fopen($inputFilename, 'rt');// Get the headers of the file    $headers = fgetcsv($inputFile);// Create a new dom document with pretty formatting    $doc  = new DOMDocument();    $doc->formatOutput   = true;// Add a root node to the document    $root = $doc->createElement('rows');    $root = $doc->appendChild($root);// Loop through each row creating a <row> node with the correct data    while (($row = fgetcsv($inputFile)) !== FALSE)    {        $container = $doc->createElement('row');        foreach($headers as $i => $header)        {            $child = $doc->createElement(trim($header));            $child = $container->appendChild($child);            $value = $doc->createTextNode($row[$i]);            $value = $child->appendChild($value);        }        $root->appendChild($container);    }    $strxml = $doc->saveXML();    $handle = fopen($outputFilename, "w");    fwrite($handle, $strxml);    fclose($handle);    echo ('ejecutado');}我得到的错误是:致命错误:未捕获的 DOMException:C:\xampp\htdocs\prestashop-devel\admin\productsImportWS.php 中的无效字符错误:52 堆栈跟踪:#0 C:\xampp\htdocs\prestashop-devel\admin\productsImportWS.php( 52): DOMDocument->createElement('Product ID;Acti...') #1 C:\xampp\htdocs\prestashop-devel\admin\productsImportWS.php(73): createXML() #2 {main} 抛出C:\xampp\htdocs\prestashop-devel\admin\productsImportWS.php 在第 52 行我试图“修剪”标题,但它不起作用......
查看完整描述

2 回答

?
森栏

TA贡献1810条经验 获得超5个赞

回复:


显然“fgetcsv”有一个预定义类型的分隔符,在这种情况下是“,”。通过使用 CSV,以“;”分隔 它没有检测到它。


我在使用它的两行中将分隔符定义如下:


$headers = fgetcsv($inputFile, '0', ';');


while (($row = fgetcsv($inputFile, '0', ';')) !== FALSE)

通过这样做,一切正常。


查看完整回答
反对 回复 2022-01-08
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

喜欢的字符&会破坏你的XML,除非转换为&amp;

$fixed = htmlspecialchars('&');   // output &amp;

https://3v4l.org/K7slG


查看完整回答
反对 回复 2022-01-08
  • 2 回答
  • 0 关注
  • 214 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号