0

入力しようとしています チェックボックスをリスト 現在のフォルダ .mp3 gob 関数を使用して取得 glob_grace チェックボックスを使用してオーディオファイルをリスト 次に

配列チェックボックスの値を取得する php を使用して xspf ファイルを作成する

xml に配列のすべてのコードを記述します

しかし、小さなエラーは誰がどのエラーとどこでエラーが発生したか教えてください!

<?php   
foreach (glob("*.{mp3,mp4}", GLOB_BRACE) as $filename) {
    $values = $filename ;
    echo "<form action='p.php' method='POST'>";
    echo "<input type='checkbox' name='foo[]' value='$values'>$values <hr>";    

}
    echo "<input type='submit' name='submit' value='Submit'>";
    echo "</form>";

?>

下の次のページに移動します

<?php
        $g = $_POST['foo'];
       $cnt = count($g);
        //function definition to convert array to xml
function array_to_xml($array, &$xml_user_info) {
    for ($i=0 ; $i < $cnt ;$i++)
    {
        $track = $xml_user_info->addChild('track');
        $track->addChild("location",$array[$i]);
     }                                       

}

//creating object of SimpleXMLElement
$xml_user_info = new SimpleXMLElement("<?xml version=\"1.0\"?><trackList></trackList>");

//function call to convert array to xml
array_to_xml($g,$xml_user_info);

//saving generated xml file
$xml_file = $xml_user_info->asXML('users.xspf');

//success and error message based on xml creation
if($xml_file){
    echo 'XML file have been generated successfully.';
}else{
    echo 'XML file generation error.';
}
?>

解決策の作業コードに答えてください

前もって感謝します

4

2 に答える 2

1

glob("*.{mp3,mp4}", GLOB_BRACE)複数のアイテムを含む配列を返す場合は、<form action='p.php' method='POST'>タグを複数回生成しています。

おそらく、フォーム宣言を .xml の外に移動できますforeach

フォームを送信してp.phpをロードすると、次の通知が表示されます。

注意: 未定義変数: cnt

を使用$cnt = count($g);してアイテムをカウントしていますが、これを渡して$g内のアイテムをカウントすることもできますfunction array_to_xml

から値を取得したい場合$_POST['foo']は、まず POST かどうかを確認し、次に$_POST['foo']が設定されているかどうかを確認する必要があると思います。

たぶん、このセットアップはあなたを助けることができます:

<?php

//function definition to convert array to xml
function array_to_xml($array, &$xml_user_info)
{
    for ($i = 0; $i < count($array); $i++) {
        $track = $xml_user_info->addChild('track');
        $track->addChild("location", $array[$i]);
    }
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (isset($_POST['foo'])) {
        $g = $_POST['foo'];

        //creating object of SimpleXMLElement
        $xml_user_info = new SimpleXMLElement("<?xml version=\"1.0\"?><trackList></trackList>");

        //function call to convert array to xml
        array_to_xml($g, $xml_user_info);

        //saving generated xml file
        $xml_file = $xml_user_info->asXML('users.xspf');

        //success and error message based on xml creation
        if ($xml_file) {
            echo 'XML file have been generated successfully.';
        } else {
            echo 'XML file generation error.';
        }
    }
}
?>
于 2015-12-17T16:53:22.803 に答える