Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
opendir/readdir funktioniert nicht mit php 5.0.4 [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
opendir/readdir funktioniert nicht mit php 5.0.4


 
jazzimage
13-12-2005, 16:16 
 
Ich habe ein Script aus dem Netz, das alle Bilddateien aus einem vorgegebenen Verzeichnis liest. Das funktioniert auf dem Server (mit PHP Version 4.4.1), aber nicht lokal mit einer XAMPP-Installation (PHP Version 5.0.4).

Hat jemand dafür eine Erklärung?

$dir="$result[1]"; // der Verzeichnisname kommt aus einer Datenbank

$DirectoriesToScan = array(realpath('img/'.$dir));
$DirectoriesScanned = array();
while (count($DirectoriesToScan) > 0) {
foreach ($DirectoriesToScan as $DirectoryKey => $startingdir) {
if ($dir = @opendir($startingdir)) {
while (($file = readdir($dir)) !== false) {
if (($file != '.') && ($file != '..')) {
$RealPathName = realpath($startingdir.'/'.$file);
if (is_dir($RealPathName)) {
if (!in_array($RealPathName, $DirectoriesScanned) && !in_array($RealPathName, $DirectoriesToScan)) {
$DirectoriesToScan[] = $RealPathName;
}
} elseif (is_file($RealPathName)) {
$FilesInDir[] = $RealPathName;
}
}
}
closedir($dir);
}
$DirectoriesScanned[] = $startingdir;
unset($DirectoriesToScan[$DirectoryKey]);
}
}

$FilesInDir = array_unique($FilesInDir);
sort($FilesInDir);

// und das mache ich dann daraus bei http://jazzimage.de

foreach ($FilesInDir as $filename)
{
$i=$i+1; $ii=$i+1;

$temp=split("/", $filename); // weil der Pfad desd Scripts zu lang ist

echo "<a name=$i><a href=#$ii><img border=1 src=$temp[5]/$temp[6]/$temp[7] alt=$temp[6]-$temp[7]></a><br>
<a href=#top>top</a> | ($temp[6]/$temp[7])<br>";

}
}

 
wahsaga
13-12-2005, 16:22 
 
http://www.php-resource.de/forum/showthread.php?s=&threadid=50454

 
jazzimage
14-12-2005, 11:10 
 
Ich habe eben festgestellt, dass es nicht am Versionsunterschied liegt, sondern am unterschiedlichen $feldname bei Windows und Unix. Um Verzeichnisnamen und Dateinamen aus $feldname herauszulösen, verwende ich split[]. Windows trennt in $feldname Verzeichnis und Dateinamen aber mit Backslash. Die Trennung unter Zuhilfenahme von Backslash erzeugt eine Fehlermeldung. \\ hilft dann auch nicht.

DL

 
jazzimage
14-12-2005, 12:05 
 
In einem PHP-Modul, das ein Verzeichnis mit Bildern ausliest und die Bilder dann darstellt, erhalte ich als $filename unter XAMPP/Windows

D:\XAMPP\xampp\xampp\htdocs\jazzimage.de\img\2005-12-01-claudia\DSC_5289.JPG.

Mit split kann ich Verzeichnisnamen und Dateiname wegen des Backslashs nicht separieren. Mit ereg_replace kann ich den Backslash nicht mit einem anderen Zeichen ersetzen.

Was tun?

DL

 
wahsaga
14-12-2005, 12:11 
 
Original geschrieben von jazzimage
Was tun?
1. Dafür keinen neuen Thread aufmachen *zusammenführ*

2. Erklären, wieso das mit split() nicht möglich sein soll.

 
jazzimage
14-12-2005, 16:17 
 
$filename = D:\XAMPP\jazzimage\img\2005-12-12-bbb\datei.JPG

$temp=split("\", $filename); // mit Backslash

verursacht Fehlermeldung

$temp = ereg_replace("\","/",$filename);

geht auch nicht, man könnte dann mit split weitermachen.

DL (trägt den Kasernenton mit Humor).

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:47 Uhr.