Leggere una directory e riempire un array.

bisbiturro

Nuovo Utente
31 Mag 2009
3
0
0
Leggo i nomi dei file da una directory, da ognuno ne estraggo una determinata parte del nome che m'interessa e li metto in un menù a tendina.

PHP:
function getNewsList($accesso){
   $fileList = array();

	if ($handle = opendir("prove/$accesso/prod_contenuti")) {
		while ($file = readdir($handle))  {
		    if (!is_dir($file)) {
		       $fileList[] = $file;
      	}}}	
	
	rsort($fileList);
	return $fileList;


}
//$aa=array();
echo "<select>";
      $list = getNewsList($accesso);
	  
      foreach ($list as $value) {


$estensione=strpos($value,".txt");
$cat=substr($value,14,$estensione);
$cat2=substr($cat,0,-4);
//$i++;
//$aa[$i]=$cat2;
echo "<option>$cat2</option>";

}
echo"</select>";
//echo $aa;

In forma di commento ho messo il mio tentativo non riuscito di fare quello che chiedo sotto.
Ora quello che mi serve è avere da $cat2 solo gli elementi singoli, senza doppioni. Credo di doverli mettere in un array e poi usare l'array_unique ma non riesco a far uscire i valori di $cat2 dal ciclo, mi da sempre un array vuoto.

Sostanzialmente non m'interessa se devo usare un array, un altro ciclo o mia nonna in carriola, mi basta non avere doppioni nel menù a tendina finale. Idee?
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
ho provato a guardare tra le funzioni array, ma secondo me non ce n'è una che ti serva
secondo me io procedrei cosi facendo una funzione che ti restituisca un array ripulito dei doppioni

1. letta la dir e messa in un array $iniziale=array() e conto i valori $quanti
2. inserisco l'array in un altro $controllo=array() e $controllo=$iniziale
3. ciclo i due array

PHP:
function pulisci($in,){
  $iniziale=$in;
  $controllo=$in;
  $quanti=count($iniziale)-1;//vuoto di memoria non mi ricordo quale è la funzione
  for ($k=0;$k<$quanti;$k++){
     for($j=1;$j<=$quanti;$j++){
        if($iniziale[$k] == $controllo[$j]){
          $iniziale[$k]="";
          //non so se potrebbe andar bene unset($iniziale[$k]) gia qui e quindi niente foeach
       }//fine if
    }//fine for $j
  }//fine for $k
  //togli quelli vuoti
  $cerco=0;
 foreach($iniziale as $valore){
   if($valore==""){ unset($iniziale[$cerco]);}
   $cerco++;
  }

  return $iniziale;
}//fine function

prova al massimo non funzia
 
Ultima modifica:

bisbiturro

Nuovo Utente
31 Mag 2009
3
0
0
Ciao. Scusa ma non ho ben capito come fare ad integrarlo col mio codice, potresti spiegare meglio?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
da quello che ho capito tu crei un array

$fileList[] = $file;//o quello che è
in cui es. ci sarà

pinco.php
pallo.php
toni.php
pinco.php (pinco.php si ripete)
bepi.php.....

$nuova_fileList=pulisci($fileList[]);

nei due cicli interni si creano due array inizialmente uguali col contenuto dell'array $fileList[]

nei due cicli verifico il primo valore dell'arry iniziale con tutti quelli che sono contenuti in controllo partendo dal secondo

quindi al primo giro avrò

pinco.php == pallo.php no
pinco.php == toni.php no
pinco.php == pinco.php si quindi vuoto o unsetto il valore di $iniziale[2]
pinco.php == bepi.php no

ecc....
scusa mi sono accorto di aver fatto un errore nel secondo for

for($j=($k+1);$j<=$quanti;$j++){ //capita

alla fine ottengo un array

pinco.php
pallo.php
toni.php
""
bepi.php.....
oppure
pinco.php
pallo.php
toni.php
bepi.php.....
se ho usato unset

nel tuo select

echo "<select>";

foreach ($nuova_fileList as $value) {
//......
echo "<option>$cat2</option>";//senza ripetizioni

}
echo "</select>";

spero di essermi spiegato, altrimenti sono qui
 

bisbiturro

Nuovo Utente
31 Mag 2009
3
0
0
Ti ringrazio ma alla fine ho risolto in un altro modo, posto il codice se a qualcuno servisse:
PHP:
//leggo i files dalla directory e li metto in array
function getNewsList($accesso){
   $fileList = array();
	if ($handle = opendir("prove/$accesso/prod_contenuti")) {
		while ($file = readdir($handle))  {
		    if (!is_dir($file)) {
		       $fileList[] = $file;
      	}}}	
	rsort($fileList);
	return $fileList;
}

$array_cat=array(); //definisco un nuovo array che mi servirà dopo
      $list = getNewsList($accesso); //richiamo la funzione sopra per leggere la cartella
	  
      foreach ($list as $value) {
$estensione=strpos($value,".txt"); //trovo la posizione dell'estensione del file
$cat=substr($value,14,$estensione); //estraggo la sottostringa che va dal carattere 14 (altra roba del nome) all'estensione
$cat2=substr($cat,0,-4); //dal risultato sopra tolgo l'estensione, ottenendo così la parte del nomefile che m'interessa
$i++; //contatore che poi associo ad $array_cat
$array_cat[$i]=$cat2; //così riempio l'array coi valori di $cat2
}

$array_pulito=array_unique($array_cat); //trovo solo i valori unici dell'array

echo "<select>";
for ($j=0; $j<=$i; $j++){ //metto in ciclo $array_pulito per fare il menu a tendina
if($array_pulito[$j] != ""){ //siccome array_unique lascia spazi vuoti, mi accerto che non ci siano
echo "<option>$array_pulito[$j]</option>";
}
}
echo"</select>";
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
elpirata Query per leggere dati da una tabella mysql e mostrarli a video in base a parametri passati tramite GET PHP 5
M leggere con jquery/ajax in una function javascript record di database sql server Javascript 0
P PHP - Leggere una pagina passata con Form e Captcha PHP 0
M Leggere il contenuto di una cartella e memorizzare il nome file in mysql PHP 1
C Leggere variabili esterne ad una classe in php 5.2 PHP 6
K Leggere contenuto di una cartella quando viene aperto il file PHP 6
L Leggere contenuto di una cartella e relative sottocartelle PHP 7
F Leggere dinamicamente le immagini da una cartella PHP 6
R PDF to TXT (Leggere una riga all'interno di un PDF) PHP 2
L Leggere un file .txt tramite FTP e trascriverlo in una RichTextBox Visual Basic 0
E leggere una variabile della classe madre PHP 3
S leggere da file e scrivere su file un carattere o una parola alla volta Visual Basic 1
S [C] Leggere i dati da un file e salvarli in una matrice Programmazione 1
P leggere i file in una sottodir PHP 6
D Leggere i file di una cartella ed il loro contenuto PHP 5
R leggere le proprietà di una img PHP 2
2 Leggere una pagine che è nei file temporanei HTML e CSS 1
G leggere file txt e stampare con php il contenuto a video PHP 7
S Leggere dati da API e visualizzarli PHP 0
maxbossi Attenzione alle TRUFFE: Leggere attentamente!!! Annunci servizi di Social Media Marketing 0
J Leggere JSON da Instagram __a=1 PHP 0
L leggere RGB di un pixel dello schermo in java Java 1
felino Script PHP per leggere un file JSON. autenticazione? PHP 4
Q Leggere NFC da web app - web nfc Javascript 0
G Pec come leggere il contenuto Posta Elettronica 1
D [ASP] Leggere Campo decimal MYSQL Classic ASP 1
Drago73 [Java] leggere/scrivere txt server Java 0
C Leggere dati File.XMLcon PHP XML 11
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
I [Javascript] Leggere "var" da file .js esterno (per google map) Javascript 6
W [PHP] Leggere un array un po complicato PHP 3
K Script PHP per leggere array.txt Presentati al Forum 3
H Interpretare e leggere il file log di sfc/scannow. Windows e Software 0
P leggere file .csv con javascript/jquery Javascript 11
V Leggere da db e metodi asincroni:vorrei capire jQuery 8
Monital Leggere un file php contenente dati json PHP 10
napuleone Leggere la scelta radio Javascript 0
Trapano Leggere un file .txt dal fondo PHP 7
Francesco Polese Leggere linea da un file ed eliminarla PHP 2
K leggere codice ean con fotocamera PHP 0
maxbossi Regolamento Regolamento della sezione - leggere ATTENTAMENTE prima di postare IP Cam e Videosorveglianza 0
P leggere dvd e memorizzazione dei dati letti PHP 1
L xmlrpc leggere le risposte. qualcuno mi aiuta? PHP 1
F Leggere file contenuti in cartella e modificarne il nome PHP 3
M Leggere dati da file excel in base al nome del foglio di lavoro PHP 0
felino [Ajax] Leggere in contenuto da un URL esterno Ajax 2
napuleone type="file" leggere con js Javascript 3
A leggere la data del client PHP 1
D batch leggere ultima riga e salvarla Programmazione 0
P Leggere XML PHP 4

Discussioni simili