0

当我对单个文件使用 simplexml_load_file 时,它​​工作正常。但是,由于我有这么多,当我尝试将我的脚本运行到一批文件时。

如果这是相关的,我有两种日志文件要加载到我的数据库中。一个以 . 另一个以 . (但看看错误,即使结构相同,也会发生错误。)

<?php
$dir_path = ".";
if ($dir_handler = opendir($dir_path)) {
    while (($sub_dir = readdir($dir_handler)) !== false) {  //reading all sub dir
        if (is_dir($sub_dir)) {
            if (substr($sub_dir,0,6) == "201209") {     //filter only desired sub dir
                $sub_dir_handler = opendir($sub_dir);
                    while($file = readdir($sub_dir_handler)) { //reading files in each 
                                                               //qualified sub dir
                        if (($file != ".") && ($file != "..")) { //except . and ..
                            $xml = simplexml_load_file($file);   // got error on 
                                                                 //the second file
                            if ($xml->getname() != "hash") { // tried to distinct 
                                                            // structure type but error
4

3 回答 3

1

我猜 simplexml_load_file 返回 false(错误)你可以看到那些使用 libxml_get_errors,cf http://php.net/manual/en/simplexml.examples-errors.php

编辑:考虑到您的第二条评论,SimpleXML 似乎无法访问您的文件...

于 2012-09-26T14:51:06.270 回答
1

找到了愚蠢的原因。

因为我将所有文件都保存在子目录中,所以我“需要”将子目录连接到文件名以定位路径。因此,该错误是由无法打开文件引起的。它还解释了为什么我可以在硬编码文件名时单独打开它。

由于现在没有错误,因此无法将 libxml_get_error 应用于我的脚本。

:)

于 2012-09-27T04:36:13.977 回答
0

因为我想跳过导致我使用的错误的第二种类型的 xml 模式

如果(!libxml_get_errors())

继续我的工作。非常感谢你。

于 2012-09-27T03:02:59.960 回答