我正在尝试将专有ERP系统中的产品图像转换为OpenCart。
到目前为止(在Stack Overflow的另一个答案的帮助下)我已经能够使用以下代码将图像保存在单独的文件中: http://pastebin.com/gv6M8QPT
示例XML文件如下所示: http://pastebin.com/k6Eq4Rpr
有3个标签:
我现在想要执行以下操作,而不是简单地保存XML文件:
<id>.jpg
- 根据jpg
标记中使用的扩展名创建<filename>
。 答案 0 :(得分:1)
尝试类似
的内容<?php
$im = file_get_contents('filename.gif');
$imdata = base64_encode($im);
答案 1 :(得分:1)
$document = new DOMDocument();
$document->loadXML($xml);
$dataNodes = $document->getElementsByTagName('mediablob');
foreach ($dataNodes as $node) {
$base64 = $node->textContent;
$bin = base64_decode($base64);
file_put_contents('image.jpg', $bin);
}
答案 2 :(得分:1)
这是完整的解决方案。
$document = new DOMDocument();
$document->loadXML($xml);
$dataNodes = $document->getElementsByTagName('mediablob');
foreach ($dataNodes as $node) {
// extract image
$base64 = $node->textContent;
// decode image
$bin = base64_decode($base64);
// get filename
$filenames=$node->parentNode->getElementsByTagName('filename');
$filename=$filenames->item(0)->textContent;
// get ID
$ids=$node->parentNode->getElementsByTagName('id');
$id=$ids->item(0)->textContent;
// get extension
$extension=preg_replace("/^.+(?=\\.[^\\.]+$)/","",$filename);
// save file
file_put_contents($id.$extension, $bin);
}