Mailinglisten-Archive |
Kirsten Bohlig schrieb: > ### in einer index-Datei ### > $dir = "xy"; > $verzeichnis = openDir($dir); > $i = 1; > while ($file = readDir($verzeichnis)) > { > if ($file != "." && $file != ".." && $file != "index.php") > { > if (substr_compare($file, ".php", -4, 4,true)==0) wenn du eh auf '.php' prüfst brauchst du natürlich nicht extra noch '.' und '..' prüfen ... if (substr($file, -4) == '.php' && $file != 'index.php') { reicht vollkommen > // das ist nicht ganz korrekt mit dem rawurlencode > // $links[] = "<a href=\"".rawurlencode($dir."/" .$file > )."?nr=".$i."\">[".$i."] ".htmlspecialchars($titel)."</a>"; > // weil: der slash wird mit %2F ersetzt > // und dann so kein Link mehr gehen kann > > // das geht: > $links[] = "<a href=\"".rawurlencode($dir)."/" .rawurlencode($file) > ."?nr=".$i."\">[".$i."] ".htmlspecialchars($titel)."</a>\n"; wenn du davon ausgehst das komische Zeichen in den Dateinamen enthalten sein könnten, weil sonst würdest du ja kein rawurlencode() verwenden, dann solltest du ein htmlspecialchars() drum herum anwenden $links[] = '<a href="' . htmlspecialchars(rawurlencode($dir) . '/' . rawurlencode($file)) . '?nr=' . $i . '">[' . $i . '] ' . htmlspecialchars($titel) . '</a>' . "\n"; > ### auf einer Folgeseite: ### > session_start(); > $links = $_SESSION['seiten']; > $nr = $_GET['nr']; > $nr_next = $nr+1; > $nr_prev = $nr-1; > $next_page = $links[$nr_next]; > $prev_page = $links[$nr_prev]; da kann man sich ruihig, auch ohne unleserlcih zu werden, ein paar Zeilen sparen $next_page = $_SESSION['seiten'][$_GET['nr'] + 1]; $prev_page = $_SESSION['seiten'][$_GET['nr'] - 1]; -- Sebastian
php::bar PHP Wiki - Listenarchive