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