首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP -在文件夹和子文件夹中读取文件并导出到XML文件

PHP -在文件夹和子文件夹中读取文件并导出到XML文件
EN

Stack Overflow用户
提问于 2012-10-09 11:18:26
回答 1查看 3.1K关注 0票数 2

我明白了

XML解析错误:文档元素位置后的垃圾: xxxxxxxxx行编号2,列1

这是代码:

代码语言:javascript
复制
<?php

$xml_generator = new SimpleXMLElement('<data/>');

filesindir('assets/images/');
function filesindir($dirs) {
    $dirs = scandir($tdir);
    while ($file = readdir($dirs)) {
            if (($file == '.')||($file == '..')) {
            } elseif (is_dir($tdir.'/'.$file)) {
                filesInDir($tdir.'/'.$file);
            } else {
                $image = $xml_generator->addChild('image');  
                $image->addChild('name', $file);
            }
    }
}

header("Content-Type: text/xml");
$xml_generator->asXML('data.xml');
echo $xml_generator->asXML();
?>

我做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-09 11:22:46

很多事情都错了..。看上去你复制并合并了这么多代码。

试一试

代码语言:javascript
复制
$xml = new SimpleXMLElement('<data/>');

scanFiles(__DIR__, $xml);

function scanFiles($path, SimpleXMLElement $xml, $allowed = array("jpg","png")) {
    $list = scandir($path);
    foreach ( $list as $file ) {
        if ($file == "." || $file == ".." || ! in_array(pathinfo($file, PATHINFO_EXTENSION), $allowed))
            continue;
        $image = $xml->addChild('image');
        $image->addChild('name', $file);
        $image->addChild('size', filesize($file));
    }
}

header("Content-Type: text/xml");
$xml->asXML('data.xml');
echo $xml->asXML();

输出

代码语言:javascript
复制
<?xml version="1.0"?>
<data>
  <image>
    <name>a.jpg</name>
    <size>17129</size>
  </image>
  <image>
    <name>a2.jpg</name>
    <size>11100</size>
  </image>
  <image>
    <name>fake.png</name>
    <size>167</size>
  </image>
</data>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12798899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档