0

いくつかのphpスクリプトについて助けが必要です。xml を解析し、エラー行を txt ファイルに報告するスクリプトを作成しました。

コードはこのようなものです。

<?php


    function print_array($aArray)
    {
        echo '<pre>';
        print_r($aArray);
        echo '</pre>';
    }

    libxml_use_internal_errors(true);
    $doc = new DOMDocument('1.0', 'utf-8'); 
    $xml = file_get_contents('file.xml'); 
    $doc->loadXML($xml); 

    $errors = libxml_get_errors();
    print_array($errors);

    $lines = file('file.xml');
    $output = fopen('errors.txt', 'w');

    $distinctErrors = array();
    foreach ($errors as $error)
    {
        if (!array_key_exists($error->line, $distinctErrors))
        {
            $distinctErrors[$error->line] = $error->message;
            fwrite($output, "Error on line #{$error->line} {$lines[$error->line-1]}\n");

        }
    }

    fclose($output);

?>

印刷配列はエラーを表示するためだけのものであり、唯一のオプションです。今、私の雇用主はネット上でコードを見つけました

<?php


//  test if the form has been submitted
if(isset($_POST['SubmitCheck'])) {
    // The form has been submited
    // Check the values!

        $directory = $_POST['Path'];

        if ( ! is_dir($directory)) {
              exit('Invalid diretory path');
                }
                else
                {
                  echo "The dir is: $directory". '<br />';
                        chdir($directory);

                        foreach (glob("*.xml") as $filename) {  
                        echo $filename."<br />";  
                        }  
              }
        }

        else {
    // The form has not been posted
    // Show the form
        ?>
        <form id="Form1" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
            Path: <input type="text" name="Path"><br>
            <input type="hidden" name="SubmitCheck" value="sent">
            <input type="Submit" name="Form1_Submit" value="Path">
        </form>
        <?php
        }
?>

これは基本的に、特定のディレクトリ内のすべての xml を検索し、2 つのスクリプトを結合するように指示しました。入力ディレクトリを指定すると、スクリプトはそのディレクトリ内のすべてのxmlで実行され、txtファイルでレポートが提供されます。

私はPHPの初心者で、最も簡単なスクリプトを書くのに約2〜3日かかりました。誰かがこの問題で私を助けることができますか?

ありがとう

4

1 に答える 1

0

コードから関数を作成し、すべての「file.xml」を $filename などのパラメーターに置き換えます。「echo $filename」が配置されている 2 番目のスクリプトで、関数を呼び出します。

于 2012-08-08T09:39:14.187 に答える