здравейте, трябва ми някаква функция или скрипт, който обхожда всички папки и файлове в тях и взема само *.xml и ги чете 1 по 1, взема данните и ги записва в база.
След редакция. Вземам файловете от всички папки, обаче има един проблем на функцията ListFolder, когато дам print_r най долу в нея ми извежда двата резултата, които имам, но когато задам $test = ListFolder("xml"); и го foreach ми връща един резултат
След редакция. Вземам файловете от всички папки, обаче има един проблем на функцията ListFolder, когато дам print_r най долу в нея ми извежда двата резултата, които имам, но когато задам $test = ListFolder("xml"); и го foreach ми връща един резултат
Код:
<?php
function ListFolder($path)
{
$xml = array();
//using the opendir function
$dir_handle = @opendir($path) or die("Unable to open $path");
//Leave only the lastest folder name
$dirname = end(explode("/", $path));
while (false !== ($file = readdir($dir_handle)))
{
$ext = pathinfo($file, PATHINFO_EXTENSION);
if($file!="." && $file!="..")
{
if (is_dir($path."/".$file))
{
//Display a list of sub folders.
ListFolder($path."/".$file);
}
else
{
if ($ext == "xml"){
//Display a list of files.
if ($path == ''){
$xml['name'] = $file;
}else{
$xml['name'] = $path."/".$file;
}
}
}
}
}
//closing the directory
closedir($dir_handle);
//print_r($xml);
return $xml;
}
$test = ListFolder("xml");
print_r($test);
$doc = new DOMDocument();
foreach ($test as $opala)
{
$doc->load( $opala );
$books = $doc->getElementsByTagName( "book" );
foreach( $books as $book )
{
$authors = $book->getElementsByTagName( "author" );
$author = $authors->item(0)->nodeValue;
$names = $book->getElementsByTagName( "name" );
$name = $names->item(0)->nodeValue;
//echo "$author - $name<br>\n";
}
}
?>