Newsgroup: it.comp.www.php
Titolo: primo script funziona (per c...o)  ma scritto male?

ho provato a fare un mio primo script mi funiona ma credo che qualcosa
di non corretto ci sia, per lo meno come codice buono;
n.b. --* questi sono i miei dubbi e quesiti sul codice *--
lo script deve ricreare un elenco dei file e cartelle che si trovano
nella cartella corrente dello script che li visualizzerà;
<?php
//directory corrente
echo (getcwd() . "\n");
--* è errato usare le parentesi? servono *altri " " apici ? *---
echo "<br>"; //spazio
//metto la directory corrente dentro una variabile
$dir_corrente = getcwd();
--* se metto questo non funziona $dir_corrente = (getcwd() . "\n");*--
echo $dir_corrente;
echo "<br>";
$the_array = Array();
$handle = opendir($dir_corrente);
while (false !== ($file = readdir($handle))) {
    if ($file != "." && $file != "..") {
    $the_array[] = $file;
    }
}
closedir($handle);
sort ($the_array);
reset ($the_array);
while (list ($key, $val) = each ($the_array)) {
    echo "<a href=$dir_corrente.php?id=$val>$val</a><br>";
}
nell'esempio sul manuale ad opendir è passato questo: opendir('prace/.')
ora io al posto di questa directory fissa ho messo la mia variabile che
sarebbe  C:\Easy\www ed ha
1-le sbarre inclinate nel verso opposto e non ha nè la sbarra finale, nè 
il punto dopo la sbarra finale; pero' funziona;
vuol dire che sul manuale c'è un suggerimento errato?
echo "<a href=$dir_corrente.php?id=$val>$val</a><br>";
qui non capisco come funziona visto ; ho solo sostituito al valore fisso
dell'esempio la mia variabile e funziona;
esiste una classe o modulo che
se il link è un file mette una immagine se è una cartella mette un'altra
a fianco
ringrazio per vs chiarimenti
?>

 
non sono sicuro che sia anche sicuro ma non sono nemmeno sicuro di essere
sano (manhattanCOCKTAIL)
<?php
echo getcwd();
$fd = $lk = array();
$handle = opendir('./');
while($file = readdir($handle))
if($file != '.' && $file != '..')
if(is_dir($file)) $fd[] = $file;
else $lk[] = $file;
closedir($handle);
sort($fd);
sort($lk);
while(list(, $val) = each ($fd))
echo "<br />[DIR] <a href='{$_SERVER['PHP_SELF']}?id=" . str_replace("'",
'%92', $val) . "'>$val</a>";
while(list(, $val) = each ($lk))
echo "<br />[FILE] <a href='{$_SERVER['PHP_SELF']}?id=" . str_replace("'",
'%92', $val) . "'>$val</a>";
?>
-- 
www.iuz-lab.info

 ?>
Non sapevo ci fossero obfuscated code contest anche per php. :P
Bye.

 ?>
per mettere i link nella forma
http://localhost/mioindex.php
ho usato questo:
echo "<a href=http:$val>$val</a><br>";
altrimenti veniva fuori:
http://localhost/mioindex.php?id=phpinfo.php
e cliccando non apre la pagina
perchè (spero non sia una domanda molto banale)
--------------------------------
tale esempio si trova su qualche manuale?: mi piaceva vederlo con l'uso 
delle parentesi { ,piu' chiaro (per me);
sui manuali non ho mai visto l'uso di if senza parentesi graffe;
--------------------------------
ma di questi esempi di codice già pronti e funzionanti in modo da poter 
studiare qualcosa di fatto bene (spero che quello sopra lo sia) c'è un 
raggruppamento per funzionalità; n.b. a parte hotscript mi serviva 
qualcosa veramente testato e scritto con buon codice; faccio un esempio
--nel codice mio uso getcwd mentre nel tuo ./, credo sia la stessa cosa
o c'è differenza?
inoltre nel
while(list(, $val) = each ($fd))
--nel codice mio si usava anche $key, credo ora il confronto si fa solo
sui valori e non sugli indici (piu' lento ma unico modo visto che devo 
separara dir da file) è cosi?
-- ho trovato in rete e sul manuale esempi in cui non si usa closedir:
ora da quel che so in genere dopo un open di un db si mette esempre
un close, pero' non se se sulle dir è la stessa cosa ?

mi spieghi meglio, grazie

 un close, pero' non se se sulle dir è la stessa cosa ?
è buona norma metterlo ma non è strettamente necessario
-- 
www.iuz-lab.info

    echo "<br />[DIR] <a href='http://$path/$val'>$val</a>";
ma la barra / dopo br a che serve?
ho visto in un esempio che veniva messa anche dopo hr (<hr />
uinoltre serve lo spazio prima della barra?
grazie 10000

 grazie 10000
-- 
www.iuz-lab.info