Aufsteigende Nummerierung einfügen

dochamburg

Mitglied
Salvete!

Habe folgendes Problem: Habe ein Script, welches einen Ordner ausliest und die ausgelesenen Dateien auflistet und in eine *.xml schreibt. Funktioniert auch prima, nur haette ich gern noch eine aufsteigende Nummerierung dazu, damit ich die nicht per Hand hinterher einfügen muss.

Hier das Script:

PHP:
<?php 
function ordnerinhalt($ordner='./004588/')

{
		  
        $content = "";
        $handle = opendir($ordner);
        while ($file = readdir ($handle)) {
                if($file{0} != '.') { //Versteckte Dateien nicht anzeigen
                if(is_dir($ordner.'/'.$file)) {
                                $folderArray[] = $file;
                        } else {
                                $fileArray[] = $file;
                        }
                }
        }
        closedir($handle);
        //Erst die Ordner ausgeben
        if(isset($folderArray)) {
                asort($folderArray);
                foreach($folderArray as $row) {
    							$content .= '<contentobject'."\n"; 
      						$content .= 'externalid="beispielname_pics01"'."\n";
      						$content .= 'contenttype="Image"'."\n";
      						$content .= 'update-mediafolder="true"'."\n";
      						$content .= 'crop="false"'."\n";
      						$content .= 'name="contentpics"'."\n";
      						$content .= 'generation="false">'."\n";
      						$content .= '<!-- ~ --><names>'."\n";
      						$content .= '<!-- ~~~ --><name language="DE">pics</name>'."\n";
      						$content .= '<!-- ~~~ --><name language="EN">pics</name>'."\n";
      						$content .= '<!-- ~ --></names>'."\n";
      						$content .= '<age-restriction>16</age-restriction>'."\n";
      						$content .= '<!-- ~ --><country-restriction>'."\n";
								$content .= '<!-- ~~~ --><country>DE</country>'."\n";
								$content .= '<!-- ~~~ --><country>US</country>'."\n";
								$content .= '<!-- ~~~ --><country>AT</country>'."\n";
								$content .= '<!-- ~ --></country-restriction>'."\n";
                        $content .= '<mediafolder name="'.$ordner.'/'.$row.'"></mediafolder>'."\n";
                        $content .= '<mediaobjects>'."\n";
                        $content .= ordnerinhalt($ordner.'/'.$row) ."\n"; //rekursive Funktion
                        $content .= '</mediaobjects>'."\n";
								$content .= '</contentobject>'."\n";
								
                }
        }
        //Dann die Dateien ausgeben
        if(isset($fileArray)) {
                asort($fileArray);
                foreach($fileArray as $row) {
                        $content .= '<!-- ~~~ --><mediaobject name="'.$ordner.'/'.$row.'" />'."\n"; //Dateien verlinken
                        
                }
        }
        return $content;
        }
$fp = fopen('import-descriptor.xml', 'w');
		
		fwrite($fp, ordnerinhalt());
		fclose($fp);
?>

Und genau folgende Zeile
Code:
$content .= 'externalid="beispielname_pics01"'."\n";
würde ich gerne so modifizieren, dass aufsteigende Zahlen aus gegeben werden, also in der xml nachher folgendes steht:
Code:
<contentobject
externalid="beispielname_pics01"
contenttype="Image"
update-mediafolder="true"
crop="false"
name="contentpics"
generation="false">
[..]
<mediafolder name="004558/beispielname_pics/pic01"></mediafolder>
<mediaobjects>
<!-- ~~~ --><mediaobject name="004558/beispielname_pics/pic01/33001.jpg" />
</mediaobjects>
</contentobject>
<contentobject
externalid="beispielname_pics02"
contenttype="Image"
update-mediafolder="true"
crop="false"
name="contentpics"
generation="false">

usw....

Lässt sich das bewerkstelligen?

Vielen Dank vorab!


dochamburg
 
Lass einfach einen Zähler mitlaufen:
PHP:
$i = 0;
foreach( /* … */ ) {
	$content .= '<contentobject'."\n";
	$content .= sprintf('externalid="beispielname_pics%02d"', ++$i)."\n";
	// …
}
 
funktioniert! :)

sorry, dass ich mit solch banalen problemen hier aufschlage, bin halt noch blutiger anfaenger, was php betrifft!

nochmals vielen dank!

dochamburg
 
Zurück