Newsgroup: it.comp.www.php
Titolo: Leggere file in una cartella

Prima che qualcuno me lo dica "Ho già cercato con google".
Devo fare un script che va a leggere tutti i file con estensione "php" 
di una cartella.
Qulcuno mi puo fare un esempio di codice visto che sono all'inizio.

 Qulcuno mi puo fare un esempio di codice visto che sono all'inizio.
Il manuale ne ha diversi di esempi, non sono per la pappa facile...
-- 
Stéphane Bisinger
Webmas... well...


http://it.php.net/manual/it/ref.dir.php
http://it.php.net/manual/it/function.is-dir.php
http://it.php.net/manual/it/function.is-file.php
http://it.php.net/manual/it/function.substr.php
ciao
Alesi_27

Stéphane Bisinger ha scritto:

nenache io sono per la pappa pronta, ma li le spiegazioni sono in 
inglese evita la tua ironia spiccola.

 inglese evita la tua ironia spiccola.
1. La mia non era ironia
2. Se non sai leggere un po' di inglese, o cominci ad imparare, o
rinunci a programmare
3. Se tu avessi prestato più di tre minuti di attenzione alla pagina,
avresti visto che ne esiste la versione in italiano
4. Sto cercando di aiutarti e mi rispondi così maleducatamente? Sai che
ti dico? .................................
(Sei solo fortunato che si tratti di un newsgroup)


Stéphane Bisinger ha scritto:

per mia fortuna so leggere e sono anche capace di distinguere l'italiano 
dall'inglese
se sei un inetto che da collegamenti sbagliati prenditela con te stesso 
http://it2.php.net/manual/en/function.readdir.php
comunque anche nella sezione in italiano la maggior parte delle 
spiegazioni sono in inglese.
1) conosco un po di inglese (parlavo a nome di tutti quelli che lo 
conoscono)
2) programmo già da diverso tempo e non finisco mai di imparare
3) la "pappa pronta" piace a te che invece di fare degli esempi o dare 
spiegazioni ti rimane piu comodo scrivere un collegamento ad una pagina
4) se tutti aiutano la gente come lo fai tu... io la gente l'aiuto in 
altro modo
per ultimo lascio alla comunità un po di codice:
function leggi_cartella($cartella, $estensione){
	global $conf, $pag;
	$dir=opendir($cartella);	// apre una cartella
	$i=0;
	while($file_singolo=readdir($dir)){	// readdir restituisce ogni 
elemento all'interno della cartella
		if(eregi('.'.$estensione.'$',$file_singolo)){
			// eregi_replace ".xxx" elimina gli ultimi 4 caratteri
			// str_replace sostituisce "_" con lo spazio " "
			$file_pulito= eregi_replace(".".$estensione."$","",str_replace("_"," 
",$file_singolo));
			$array_file[$i]=$file_pulito;
			$i++;
		}
	}
	closedir($dir);
	if(in_array($pag, $array_file)){	// in_array se la variabile $pag è 
presente nell'array $array_file
			include($cartella.'/'.$pag.'.php');
		}
		else{
			include($cartella.'/index.php');
		}
}// fine leggi_cartella
in ultimo che fortuna che questo è un newsgroup! Un giorno ce lo spiegherai

 while($file_singolo=readdir($dir))
Tralascio il resto del post, spocchioso e arrogante, rimandandoti 
invece alla guida IN ITALIANO che hai ignorato tanto facilmente, 
sperando che questo ti permetta di evitare ulteriori grossolani errori 
di programmazione.
hth,
Lokar 

 spiegherai
ci sono errori di tutti i tipi..
riscrivo tutto il codice senza testare e vista la poca concentrazione
probabilmente con errori..
<?php
/* 
 folder : folder name
 ext    : extension without dot
 page   : page without ext and underscore
*/
function page ($folder, $ext, $page)
{
  if (!(is_dir($folder) and ($dirh = opendir($folder)))) {
    return "/path_to_error/document.html";
  }
  while (($file = readdir($dirh)) !== false) {
        if (is_file($folder/$file) and preg_match("/(.*)\.$ext$/", $file,
$matches)) {
      $array_file[] = strtr($matches[1], '_', ' ');
    }
  }
  closedir($dir);
  if (in_array($page, $array_file)) {
    $page = strtr($page, ' ', '_') . ".$ext";
    return "$folder/$page";
  } else {
    return "$folder/index.php";
  }
}
include page('folder', 'extension', 'page');
?>
ma quale e' il tuo scopo? 
se vuoi solo controllare che il file sia presente prima di includerlo non
basta fare un piu' semplice..
$pag  = 'file da includere';
$page = strtr($pag, ' ', '_') . '.php';
if (file_exists("$folder/$page")) {
  include "$folder/$page.php";
} else {
  include "$folder/index.php";
}
che diverrebe..
$pag  = 'file da includere';
$page = strtr($pag, ' ', '_') . '.php';
include file_exists("$folder/$page") ? 
"$folder/$page.php" : "$folder/index.php";
oppure..
$pag  = 'file da includere';
$page = strtr($pag, ' ', '_') . '.php';
include "$folder/" . (file_exists("$folder/$page" ? $page : 'index.php');
naturalmente tutto rigorosamente non testato..
-- 
www.iuz-lab.info

 
Sei solo un altro che da giudizi, ma nella tua risposta non ho visto una 
riga di codice, mah!!!
Tutti bravi a criticare questi maestri.

iuz ha scritto:

Il mio scopo è inserire in una cartella "pag" tutte le pagine del sito.
Il controllo deve prendere solo i file che finiscono ".php"
ed inserirle in un array.
Queste pagine verranno richiamate:
<h1><?=$pag?></h1>
<a href="?pag=prova" title="">Prova</a>
al valore della variabile "prova" deve corrispondere il file "prova.php"
al valore della variabile "chi_siamo" deve corrispondere il file 
"chisiamo.php"
i valori saranno anche il titolo della pagina.
La scansione della cartella mi serve solo per automatizzare il nuovo 
inserimento di una pagina.
L'array mi serve per effettuere un controllo ed evitare che venga 
passato un valore che non corrisponde ad un file della cartella, se ciò 
accade mi dovrebbe visulizzare una pagina iniziale chiamata ad esempio 
"home.php"
La cartella "pag" non contiene altre cartelle.
Spero di essere stato chiaro e grazie per il tuo interessamento

 Spero di essere stato chiaro e grazie per il tuo interessamento
magari la prox volta quota selezionando le parti di testo a cui vuoi 
rispondere, in questo modo i tuoi post risulteranno più leggibili agli altri
ciao
Alesi_27


http://it2.php.net/manual/en/function.readdir.php
sei un gran maleducato, non meriti aiuto.
Francesco Mazzi
Webmaster di AltroPC.it - 
http://www.altropc.it
 
Dev.Staff di E-Xoopport - 
http://dev.e-xoopport.it

Francesco Mazzi ha scritto:

Visto che dai giudizi su di me, io non darò un giudizio su di te, ma su 
quello schifo che hai fatto 
http://www.altropc.it
 e non è accessibile 
leggiti un po di accessibilità.
Sei un gran maleducato, non meriti il mio aiuto.

Sei un gran maleducato, non meriti il mio aiuto.
ecco, mi hai giudicato :-)


Francesco Mazzi ha scritto:

Non si finisce mai di imparare!
E di accessibilità ne sai poco credimi.
Continui a giudicare la gente invece che giudicare il tuo lavoro.
Invece di fermarti alla grammatica cerca di capire i concetti, so che ti 
rimane difficile, ma almeno provaci.
Conosco il "cms" che hai usato.
Ti do alcuni consigli:
1) visto che il tuo "cms" e poco accessibile cerca almeno di 
migliorarlo, sei capace di abbinare 2 colori? se non sai come fare 
professore cerca in rete ci sono molti programmi che lo faranno per te 
(questa è la cosa più semplice che puoi fare).
2) ho letto la prima riga di codice del tuo "cms" e c'è subito un errore 
  e non sono andato oltre.
3) visto che ti senti tanto professore perche non ti crei un tuo "cms" 
accessibile? o sei capace solo a giudicare e molto meno nel programmare?
4) trova un altro "cms"
Infine
"Questo sito è nato dalla mia idea di voler condividere le mie 
conoscenze in campo informatico con tutti, e a mia volta poter imparare 
qualcosa da tutti voi, con lo stesso spirito e motivazioni con cui è 
nato il software libero."
Già che ci siamo dò anche un altro giudizio, studia un pò di italiano 
visto che la frase che hai scritto è sintatticamente scorretta e 
contiene un errore.
Sarò anche sdrammaticato, dislessico, maleducato... per fortuna non sono 
come te e non cerco neanche di emularti.

come te e non cerco neanche di emularti.
Peccato, perchè invece di elemosinare un pezzo di codice gratis e con
poca fatica sul ng, adirandoti pure perchè ti è stata indicata una
pagina di manuale in inglese (che affronto!), potresti dare una mano a
chi ha bisogno nel ng, come faccio io.
E chiudo qui questa sterile diatriba perchè non voglio tediare
ulteriormente i lettori del ng con polemiche inutili e perchè ho di
meglio da fare.
Ciao nazionlinux piaccapi


Hai sparato un grande cazz... imprecisione ma evito di sottolinearla.
 > Il cms non l'ho scritto io, e so bene che ci sono cose da migliorare.
Comunque anche se il "cms" non lo hai scritto tu, sei capace di mettere 
un doctype prima del tag html?
Invece di fare la larva come fai tu, utilizzando un lavoro fatto da 
altri come tu stesso hai ammesso, io un "cms" da zero l'ho scritto e ne 
sto scrivendo altri, li rilascio sotto licenza GPL2 e se ti interessa 
sono anche molto usati, fatti un giro per la rete.
 > Peccato, perchè invece di elemosinare un pezzo di codice gratis e con
 > poca fatica sul ng, adirandoti pure perchè ti è stata indicata una
 > pagina di manuale in inglese (che affronto!), potresti dare una mano a
 > chi ha bisogno nel ng, come faccio io.
Grazie che ci insegni l'italiano, ma ogni tanto parla di programmazione 
portaci degli esempi concreti o forse sei solo chiacchiere?
Nazionlinux è li per gioco è un portale che si basa su flatnuke del mio 
amico Simone, è su un server altervista non sparare sulla crocerossa.
E' li per pubblicizzare flatnuke e per aiutare qualche utente linux.
Lo so che hai di meglio da fare devi correggere i temi, ti saluto 
professore parassita.

professore parassita.
Sarei io il parassita eh? Facendo una rapida ricerca su google, come
nazionlinux risultano solo 5 thread in cui sei intervenuto:
http://groups.google.it/groups?q=nazionlinux&ie=utf-8&hl=it&oe=utf-8&official&sa=N&tab=wg
uno questo, uno sulla comunità 
debianitalia.org
 (ti hanno buttato
fuori, chissà perchè) in cui manifesti insofferenza per l'inglese e
per alcuni utenti che ti rispondono (anche qui problemi con
l'italiano, eh?), uno pochi giorni fa in cui chiedevi come fare una
query ed in cui ti ho risposto come progettare correttamente il db che
stavi facendo, uno in cui consigli un contatore di accessi, infine
l'ultimo in cui pubblicizzi il tuo sito. In pratica finora posso
considerare utile solo il quarto di questi 5 tuoi interventi, negli
altri invece hai solo cercato di parassitare o di rompere le scatole.
Complimenti vivissimi.


 stavi facendo
Mi hai fatto un esempio dove sei andato fuori tema ti ho anche risposto:
"lo faccio sempre, ma in questo caso non posso farlo..."
comunque ho risolto non grazie a te.
In italia andiamo male perche se uno domanda.
qual'è quel numero che sommato ha 2 mi da 4?
2 + ? = 4
e si ricevono risposte:
io di solito a 2 sommo 1 poi poi risommo 1
2 + 1 + 1 = 4
con te per ora chiudo mi annoi.

 un umile igniorante.
Sei sulla buona strada, fidati :)
-- 
L'universita' americana di Berkeley ha prodotto due importanti 
invezioni:
l'LSD e Unix.
Credo non sia una coincidenza.
                                          Jeremy S. Anderson

con te per ora chiudo mi annoi.
Peccato, io cominciavo a divertirmi :-)


 glielo spiega, si irritano perchè vogliono la pappa pronta.
Impara seriamente a scrivere codice html corretto, non ti barcamenare 
con portali scritti da altri, perche poi non sei capace di modificarli e 
devi aspettare che ti scrivono la nuova versione.
Si voglio la pappa pronta, ma non cucinata da te!
Poco fa ho letto di un ragazzo che si interessava di mambo è tu come 
risposta gli parlavi di exoops.
 >>qual'è quel numero che sommato ha 2 mi da 4?
 >>
 >>2 + ? = 4
 >>
 >>e si ricevono risposte:
 >>io di solito a 2 sommo 1 poi poi risommo 1
 >>
 >>2 + 1 + 1 = 4
E come se lui ti chiedeva da bologna devo andare a napoli e tu gli 
rispondi vai a firenze che è più bella.
Almeno consiglia limbo o cose simili.
Sei proprio ottuso!
Non hai speranze morirai professore...

 Vi vedete stasera?
Ma lol!
Ti va di andare al cinema a vederci Bewitched! versione originale?


Sei proprio ottuso!
Allora siamo 2 ottusi visto che anche tu gli hai consigliato un altro
prodotto. E comunque io gli ho detto che Mambo è un ottimo prodotto,
probabilmente il migliore CMS in circolazione attualmente.


 prodotto.
per farti capire (speriamo) ubuntu è una debian ci sei?
limbo in grandi linee è mambo.
Ho consigliato limbo perche non necessità di database MySql.
Se lui ti dice che vuole provare mambo, mi spieghi perchè lo devi 
dirottare su un altro progetto completamente diverso?
Se ti dice che da bologna deve andare a firenze perche lo vuoi mandare a 
   bari, fallo almeno avvicinare a firenze poi se non gli piace lo 
mandiamo a bari.
Ti svegli?

 Ti va di andare al cinema a vederci Bewitched! versione originale?
certamante ma che sia originale 100%

 Dev.Staff di E-Xoopport - 
http://dev.e-xoopport.it
Spero sdi vedere nuovi numeri di PHP Journal,
e un po che ricevo la newsletter con i link per lo stesso numero.
(Sul numero di aprile cè proprio un tuo articolo se non sbaglio ;) )

mandiamo a bari.
Tu continui a non capire, io non gli ho detto di non provare mambo! E
tu continui ad insistere...incurante pure del fatto di avergli
consigliato un prodotto diverso, anche se simile.
Stai diventando sempre meno divertente, peccato. E stai pure
migliorando con l'italiano, in questo post hai commesso solo i
seguenti errori:
10 errori di mancata o errata punteggiatura;
4 errori grammaticali o di coniugazione dei verbi (non si sa se hai
sbagliato i congiuntivi o se è un errore grammaticale);
1 errore di sintassi;
Dovresti ringraziarmi, nonostante sia un'impresa epica ti sto facendo
migliorare ;-)


(Sul numero di aprile cè proprio un tuo articolo se non sbaglio ;) )
Si, ci sono miei articoli su tutti i numeri.


 1 errore di sintassi;
fammi il reso di conto di oggi però solo dopo avermi scritto un po di 
codice.
per me tu non sei mai stato divertente sei solo un professore.

TalkBox ha scritto:

scrivi per bene sennò i professori ti sgridano

per me tu non sei mai stato divertente sei solo un professore.
Non mi offendo se mi chiami professore, anzi.


nazionlinux ha scritto:

Tenendo un giusto atteggiamento, i "professori" mi sono stati di grande 
aiuto
vedasi Setec Astronomy, Iuz e non ultimo lo stesso Francesco Mazzi..
Il tuo problema secondo il mio parere e che non ti andava per nulla di
ricevere un link come aiuto, per giunta in inglese.
Il codice può si risolvere il tuo problema, ma non ti aiuta di per se a 
capire cosa stai facendo e quindi ad imparare.
E' vero che più di una volta si sono postate righe di codice in questo 
luogo, ma è altrettanto vero che in pochi
postano uno script per intero offrendo la cosidetta "pappa pronta" ad 
una persona Nuova e sopratutto alle prime armi (parole tue).
Questo è frutto di consuetudini che in alcuni casi hanno visto tra le 
altre cose, infinite persone chiedere righe di codice, script completi 
etc. per fare un banale copia e incolla, senza nemmeno capire di che si 
trattava, sparendo dall' Ng con il lavoro di ore, di altre persone.
Se la gente vuol capire gli si da un aiuto, non gli si scrive un 
applicazione al posto suo.
Permettimi inoltre un ultimo commento.
Francesco ha fatto la cosa più giusta nel darti il link alla versione 
inglese.
Questo perchè la versione Italiana ( Fu Setec che mi diede lo stesso 
consiglio ), molto spesso è frutto di una traduzione grossolana e in 
alcuni casi fuorviante o comunque inesatta.

 alcuni casi fuorviante o comunque inesatta.
Non vorrei essere pignolo, ma ho fatto cominciare io il putiferio :P
Era mio il link ;)


 Non mi offendo se mi chiami professore, anzi.
si vede che non sai cosa si intende per "professore".
dalle mie parti si dice:
sempre meglio un cattivo maestro che un buon professore

 alcuni casi fuorviante o comunque inesatta.
posso essere d'accordo con te, ma pensa anche alle tante, molte persone 
che non sanno l'inglese per le quali è meglio una traduzione seppur 
grossolana che una pagina da tradurre completamente.

 la lingu a piu parlata ne mondo č il cinese
La lingua MADRE piů parlata al mondo č il cinese, la lingua piů parlata
al mondo in generale č l'inglese.


 al mondo in generale è l'inglese.
falso falso falso
è l'arabo



Caro NaziOnLinux, a me personalmente hai rotto le palle.
Prego tutti gli altri di smetterla di rispondergli.
Addio.

 è l'arabo
Quanti sono al mondo a parlare arabo?
-- 
I am what I am, I do what I can
Do. Or do not. There is not try.

sempre meglio un cattivo maestro che un buon professore
Dalle mie si dice: meglio uno studente poco intelligente ma
volenteroso che uno intelligente che non ha voglia di far nulla.
Chiudiamo qui questa polemica, non porto rancore, se avrai bisogno di
aiuto ti aiuterò volentieri e ti darò anche codice, se necessario,
però comportati come ci si deve comportare in un ng.


Alessandro Pellizzari ha scritto:

Se ti ho rotto le palle e ne dubito fortemente per ovvi motivi, puoi 
tranquillamente andare a fanculo.

Setec Astronomy ha scritto:
quanti sono al mondo che palrano in inglese?

 quanti sono al mondo che palrano in inglese?
1.107.807.851 secondo le statistiche al 30 settembre 2005, ora ti
chiedo nuovamente, quanti sono al mondo a parlare arabo?


 intelligente"
era una battuta, volevo scrivere:
function test_nazionlinux(){
	if (isset($nazionlinux)){
		return "nazionlinux è $nazionlinux";
	}
	else{
		return "non sei intelligente";
	}
}
non bene o nel male la variabile $nazionlinux va sempre passata!
(non entrare in polemica anche su questo)
oggi durante l'ora di pausa mi sono dilettato a validare il codice di
http://nazionlinux.altervista.org
aspetto che anche tu lo faccia
un ultima cosa non costringo nessuno a leggere ciò che scrivo, quindi 
come qualcuno ha scritto può anche togliersi dalle palle.

 
hai ragione scusa ho sbagliato
Il castigliano è la seconda lingua (la quarta secondo un’altra 
classificazione) più parlata al mondo dopo il cinese (mandarino)
Lo Spagnolo è la seconda lingua più parlata del mondo: per più di 350 
milioni di persone è la lingua madre. La domanda di imparare lo spagnolo 
è raddoppiata negli ultimi 10 anni, e si calcola che tra 15 anni vi 
saranno 500 milioni di persone in grado di parlare tale idioma. Nei soli 
USA vi sono attualmente più di 30 milioni di persone che parlano questa 
lingua, ed il numero continua a crescere costantemente.
su un sito arabo ho trovato:
lingua più parlata nel mondo e quella geograficamente più diffusa al 
mondo è l'arabo

come qualcuno ha scritto può anche togliersi dalle palle.
La classe non è acqua, ti sei fatto tanti ammiratori qui dentro. Visto
che dopo il mio invito di riappacificazione perseveri con questo
atteggiamento arrogante e maleducato, credo che seguirò l'invito di
Alessandro.


 Alessandro.
se io sono arrogante e maleducato permettimi di dirti, visto che non sai 
fare altro che offendere, che tu sei una checca isterica prima difendi 
Stephane ora segui Alessandro.
Hai scritto non scappare mai, anzi scrivi che ti diverti, poi prima 
offendi e dopo scappi.
sei un incapace che non sa neanche validare il codice di un sito, non 
sei mai stato capace di controbattere con argomentazioni serie.
ritorna con i tuoi lol imho ng ot pipi popo...
ti no aveva chiesto nessuno di intervenire ed il tuo primo intervento è 
stato:
sei un gran maleducato, non meriti aiuto.
poi ci hai ammorbato con tante di quelle stupidaggini pistolotti ecc.
adesso studia un po, imparare a programmare, poi ne riparliamo.
ci hai dato solo la dimostrazione di quanto sei inconcludente.
ah non ti scordare di convalidare il codice, porfessore!

 idioma.
Non ci siamo ancora. Se l'inglese lo parlano in 1,1 miliardi e rotti e
il cinese in 1,3 miliari, lo spagnolo puo' stare solo al terzo posto.


non so da dove hai preso quelle cifre comunque la frase mi sembra chiara
 >Lo Spagnolo č la seconda lingua piů parlata del mondo:
se lo ritrovo ti do anche il sito arabo