printf probleme

-Ener-

Erfahrenes Mitglied
PHP:
<?php
$root = 'Ordner';
$root2 = '';
$od = opendir($root);
$dir_arr = array();
$files = array('jpg','gif');
 
while($obj = readdir($od)){
if(!preg_match('/^\.{1,2}$/',$obj) && is_dir($root.'/'.$obj)){
$dir_arr[] = $obj;
}else{
continue;
}
}
closedir($od);
 
$number = array_rand($dir_arr);
$path = $root.'/'.$dir_arr[$number].'/thumbnails';
$path2 = $dir_arr[$number];
$od = opendir($path);
$file_arr = array();
while($obj = readdir($od)){
if(!preg_match('/^\.{1,2}$/',$obj) && is_file($path.'/'.$obj) && in_array(strtolower(substr($obj,strrpos($obj,'.')+1)),$files)){
$file_arr[] = $obj;
}else{
continue;
}
}
$number = array_rand($file_arr);
 
printf('<a href="javascript:popup_pic()"><img src="%s/%s" width="146" height="110" border="0" alt="">',$path2,$file_arr[$number],$file_arr[$number],$file_arr[$number]);
?>

Ließt Bilder aus Unterordnern der Unterordner des Ordners "Ordner" heraus (klingt komisch ist aber so, zur Veranschaulichung root->Ordner->Klassenfahrt2005->thumbnails)

so, soweit habe ich kein Problem aber wenn z.B. Sonderzeichen im Ordnernamen sind, funktioniert das ganze nicht, bei anderen Scripten hab ich das mit rawurlencode() und ereg_replace() gelöst, nur bei diesem hier weiss ich nicht wie ich die Variablen (%s/%s) einbauen soll, heißt über dem printf Ding ein test = rawurlencode(%s/%s); funktioniert nicht, wie könnt ich das lösen?
 
Zuletzt bearbeitet:
Hast du schon bemerkt, dass der printf()-Funktion mehr Parameter übergeben werden als Platzhalter vorhanden sind?
 
Weiss net, ich hab sowas zum 1. mal gesehen mit %s und so, deßhalb stellt mich dieses vor ein Problem welches ich gerne lösen würde, vl. kann man das ganze ohne diese printf-Funktion lösen?
 
Eigentlich verstehe ich garnicht, wo genau das Problem liegt. Könntest du es bitte noch präzise ausführen. Was genau funktioniert nicht? Wie sollte es aussehen und wie sieht es derzeit aus?
 
Das Script liest zufällig Bilder aus den Unterordnern des Ordners "Ordner" aus, das funktioniert auch recht gut bis auf die Tatsache das ich keine Leerzeichen oder Sonderzeichen für die Ordnernamen vergeben kann weil sonst liest er das nicht. Das möchte ich aber mit rawurlencode() lösen, nur ich hab kein Plan wie ich das mit diesem printf bzw. %s hinbekomme. Ich hoffe es ist verständlich?! Gruß
 
Zurück