PHP und JS - httpd.conf Alias und Slideshow

Riebensiel

Grünschnabel
Hallo liebe Leute,

noch'n Prob mit Verzeichnissen.

Ich betreibe (z.Z. noch im Intranet) einen Webserver (xampp unter Win XP). In der httpd.conf habe ich einen virtuellen Pfad gelegt - ein Alias mit dem Namen /bildpfad.
Mit Java Script kann ich nun sagen:
Code:
var myjsbildpfad = "/bildpfad"

und kann dort dann Dateien finden.
Code:
<?php $myphpbildpfad = '/bildpfad' ?>

funktioniert nicht, wohl aber z.B.
Code:
<?php $myphpbildpfad = 'c:\bildpfad' ?>

Kennt PHP die in httpd.conf vereinbarten Namen nicht? oder kann/muss ich sie anders ansprechen?

Derzeit lese ich das Verzeichnis mit absolutem Pfad aus und schreibe die Dateinamen in ein dynamisches Array. Mit PHP, weil ich es mit JS nicht gebacken gekriegt habe.

Die Dateinamen brauche ich, damit ich eine Slideshow, die in JS konstruiert ist, mit Pfaden füttern kann. Zur Zeit funktioniert das so, dass die Bilder im Verzeichnis ein Namensschema haben, sie heißen z.B. Bild_1.jpg, Bild_2.jpg usw. In meiner Slideshow habe ich einen Zufallsgenerator, der mir eine Zahl liefert und aus dieser Zahl und dem String "Bild_" konstruiere ich die Dateinamen und lade sie.
Schöner wäre es, wenn ich die Dateinamen in einem Array hätte und der Zufallsgenerator mir nur den Index ermittelt und die Slideshow dann nach der entsprechenden Datei suchen kann, weil ich dann die ganze Slideshow für jedes Verzeichnis, das Bilder enthält, nutzen könnte, ohne dass ich alle Dateinamen dem Namensschema anpassen müsste und die Obergrenze für den Zufallsgenerator nicht anpassen müsste, wenn sich die Anzahl der Dateien ändert.

Deshalb habe ich also nun ein PHP Array mit Dateinamen gefüllt und muss es irgendwie meinen Java Scripten zur Verfügung stellen.
Code:
var mydynjsarray= new Array();
for (var i=0; i < max ; i++)
mydynjsarray[i] = "Bild_" + i;

erzeugt mir ein dynamisches JS Array mit der Dimension max, das ich mit
Code:
myarrayelement = mydynjsarray[index]

auslesen kann.

Mein dynamisches PHP Array habe ich in <head> vereinbart und gefüllt.
Code:
<?php
$mydynphparray= array();
$handle=opendir( $myphpbildpfad); 
while ($file = readdir ($handle))
{   
 if (eregi(".(gif|jpg)$",$file) && $file != "." && $file != "..") 
        {           
          $mydynphparray[] = $file;     
        } 
}
closedir($handle);
?>

Kennt JS $mydynphparray? Oder kann ich $mydynphparray für JS bekannt machen? Und wenn ja, wie heißt dann mein JS Statement?

myarrayelement =

Oder geht das überhaupt nicht? und wenn nein, gibt es eine JS Lösung für das Auslesen eines Verzeichnisses?

Viele Fragen - aber es gibt auch viel Dankbarkeit, wenn Ihr mir Hinweise geben könnt.

Schönen Gruß aus Hamburg

Riebensiel
 
Jo:)
Code:
<script type="text/javascript">
mydynjsarray= new Array();

<?php
    $handle=opendir($myphpbildpfad); 
    
    while ($file = readdir ($handle))
        {
            if (eregi(".(gif|jpg)$",$file) && $file != "." && $file != "..")
                {
                    echo "mydynjsarray.push('$file')\n";
                }
        }
closedir($handle);
?>
</script>
 
Vielen Dank Sven,

inzwischen hatte ich für dieses Prob auch eine Lösung gefunden

<SCRIPT LANGUAGE = "JAVASCRIPT">

var mydynjsarray = new Array("<?php print(implode('", "', $mydynphparray)); ?>");
var mydynjsarraycount = ("<?php print(count($mydynphparray)); ?>");

</SCRIPT>

funktioniert einwandfrei, vermutlich ist es fast dasselbe... damit habe ich Dateinamen und Anzahl der Dateien in der JS Welt. Ich dachte eigentlich, dass mit push keine alphanumerischen Werte in ein Array geprügelt werden können, sondern nur numerische, aber man lernt ja nie aus. Jedenfalls vielen Dank nochmal. Jetzt brauche ich nur noch eine Lösung dafür, die httpd.conf Aliase in PHP bekannt zu machen, dann ist alles perfekt.

Schönen Gruß

Riebensiel
 
Zurück