0

我需要通过我制作的脚本运行 600 个 XML 文件,该脚本提取特定的信息片段并以 JSON 格式保存每个文件。所有 600 个 XML 文件都在一个准备好通过 PHP 文件运行的文件夹中,我现在正在寻找一种快速的方法来完成它。

本质上,这是 PHP 文件经历的过程:

PHP 通过 URL 读取单个 XML 文件 -> 在本地将重要信息保存在变量中 -> 将重要信息保存到 JSON 文件中

有没有办法可以通过我的 PHP 文件以某种方式运行所有 600 个 XML 文件?

谢谢

4

4 回答 4

1

打开包含 XML 文件的目录,然后处理它们,这里有一些最常用的方法。

打开目录()

<?php
$dir = "/etc/php5/";

// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
        }
        closedir($dh);
    }
}
?>

您也可以使用glob()

<?php
foreach (glob("*.txt") as $filename) {
    echo "$filename size " . filesize($filename) . "\n";
}
?>

在您选择的 foreach 循环中,您可以使用file_get_contents()fread()然后您可以转换为 json。

<?php
// get contents of a file into a string
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>

希望能帮助到你

于 2013-09-06T22:52:35.917 回答
0

继续尝试吧!您可能会遇到超时错误。如果这样做,请尝试配置最大超时设置。http://php.net/manual/en/function.set-time-limit.php

于 2013-09-06T22:38:54.247 回答
0

首先,编写一个获取 XML 文件名的函数,并在处理后以 php 数组或 JSON 的形式返回结果(基于您需要的代码)。

要编写此函数,您需要解析 XML ( http://php.net/manual/en/book.xml.php )。

在 PHP 中使用 JSON:http: //php.net/manual/en/book.json.php

然后,编写您的主要代码。您的主代码应枚举文件夹中的所有 XML 文件,然后为每个文件调用您的函数,并使用函数返回的信息收集/生成 JSON。

您可能需要readdir收集文件夹中的所有 XML 文件。( http://php.net/manual/en/book.xml.php )

只要有很多 XML 文件,不要忘记增加时间限制,并且该过程可能需要很长时间,因此会发生超时错误。( http://php.net/manual/en/function.set-time-limit.php )

于 2013-09-06T22:56:13.930 回答
0

乔尔,

在我看来,您需要使用 readdir

http://php.net/manual/en/function.readdir.php

这将允许您获取要迭代的目录中的文件列表。

$dir = opendir('/path/to/files');
while($file = readdir($dir)) {
    if ($file !== '.' && $file !== '..' && !is_dir($file)) {
        $parthParts = pathinfo($file);
        if ($pathParts['extension'] === 'xml') {
            runscripton($file);
        }
    }
}
closedir($dir);
于 2013-09-06T22:45:57.650 回答