- Home
- Categorie
- Coding e Sistemistica
- Coding
- path applicazione
- 
							
							
							
							
							
define('path1', './cartella1'); 
 define('path2', './cartella2');
 ...
 define('pathN', './cartellaN');oppure usi le sessioni: session_start(); 
 $_SESSION['paths'] = array(
 'path1'=>'./cartella1/',
 'path2'=>'./cartella2/',
 ...
 'pathN'=>'./cartellaN/',
 );Spero di aver capito cosa ti serviva, sennò spiega meglio il problema, magari postando anche qualche parte del codice. 
 
- 
							
							
							
							
							
Grazie in pratica definisco nel programma principale la define path e questa la vedranno tutti programmi che aprirò ? mi fai sapere Grazie 
 
- 
							
							
							
							
							
Ciao e grazie per avermi risposto. 
 quidni se ho ben capito basterà scrivere nel programma iniziale questo :
 define('path1', './cartella1');e quindi il programma cercherà l'oggetto nella cartella1 ? In pratica se una cartella radice e tante sotto cartelle, cartella1 
 --------- cartella2
 cartella3------------cartella4e richiamo ad esempio da un html pippo.php deve cercare pippo.php fino a trovarlo. Grazie in anticipo 
 
- 
							
							
							
							
							
Forse non ho capito bene il tuo problema. Prova a spiegarmi con un esempio o copiando/incollando il codice da correggere/modificare. Se il tuo obiettivo è fare una ricerca di un file non sapendo dove si trova, puoi crearti una funzione ricorsiva che entra nelle varie sottocartelle fino a trovare il file. Se è questo il tuo problema, confermamelo e ti scrivo io la funzione... 
 
- 
							
							
							
							
							
Ciao si confermo, quando viene richiamato un pippo.php deve percorrere tutte le cartelle fino a trovarlo. In pratica ho creato una cartella radice del progetto chiamata cartella_1 cartella_1 poi ho creato una cartella di nome tabelle , dove ho messo tutti i .php dei programmi che riguardano le tabelle. poi ho creato una cartella di nome applicazione1 dove ho messo tutti i .php dell'applicazione 1 Ora dal menu richiamo i diversi php quindi deve cercarli fino a trovarli. Grazie 
 
- 
							
							
							
							
							
Uhm, bruttina come cosa. Lenta soprattutto. Io provo a buttarti giù la funzione, magari controllala tu e vedi s'è corretta: [php] function find_file_in_dir($dirname, $file_name){ 
 if (!file_exists('./'.$dir_name.'/'.$file_name)) {
 $internal_dirs = scandir($dir_name);
 foreach ($internal_dirs AS $key => $internal_name) {
 if (is_dir('./'.$dir_name.'/'.$internal_name) && '.' != $internal_name && '..' != $internal_name) {
 if (file_exists('./'.$dir_name.'/'.$internal_name.'/'.$file_name)) {
 // IL FILE E' IN QUESTA DIR. VEDI TU SE TI BASTA TORNARE TRUE O SE VUOI TORNARE IL PERCORSO AL FILE CON return './'.$dir_name.'/'.$internal_name.'/'.$file_name;
 }
 }
 }
 return false;
 }
 } else {
 //IL FILE E' NELLA CARTELLA "RADICE" (return './'$dir_name.'/'.$file_name;)
 }
 }[/php]Per usarla basta che la chiami così:
 [php]
 if ($percorso_completo_al_file = find_file_in_dir('cartellaradice', 'nome_del_file.php')) {
 echo("File trovato in:".$percorso_completo_al_file);
 } else {
 echo("File non trovato.");
 }
 [/php]Ci potrebbero essere errori perchè l'ho scritta al volo adesso. Controllala bene tu, comunque il principio è quello.
 
- 
							
							
							
							
							
Ciao Matteo , grazie della tua buona volontà, proverò la funzione. 
 ma scusa , una domanda, ma nativamente in php non si può definire una path, con il percorso delle cartelle ?
 
- 
							
							
							
							
							
Ciao Matteo questo è il codice che sto provando. <?php 
 define('path1', './init');
 include "path1/testa.php";
 include "c1_anazi_pag_1.php";
 //include "piede.php";?> sto provando "define" da te inizialmente suggerito. in pratica devo richiamare testa.php che si trova nella cartella init iniziale. 
 
- 
							
							
							
							
							
@pdecaro said: Ciao Matteo questo è il codice che sto provando. <?php 
 define('path1', './init');
 include "path1/testa.php";
 include "c1_anazi_pag_1.php";
 //include "piede.php";?> sto provando "define" da te inizialmente suggerito. in pratica devo richiamare testa.php che si trova nella cartella init iniziale. 
 Se vuoi fare cosi devi scrivere:
 include path1.'/testa.php';Mi raccomando, path1 senza dollari o virgolette. Scrivilo così com'è. I define funzionano così. Ciao! 
 
- 
							
							
							
							
							
scusa Matteo sono entrato nuovamente nel problema in oggetto. dopo avere definito la path, ho provato cosi , ma non funziona ? programma ? <?php 
 define('path1', './init');
 include "path1/testa.php";?> In alternativa sto provando la tua function, ma non funziona lo stesso ? Mi potresti aiutare. Grazie 
 
- 
							
							
							
							
							
Ciao Matteo sto usando la tua funzione ma mi genera questo errore . 
 Puoi darci un'occhiata . Grazie
 Warning: scandir() [function.scandir]: (errno 2): No such file or directory in C:\Programmi\xampp\htdocs\cercatrova\trova.php on line 9Warning: Invalid argument supplied for foreach() in C:\Programmi\xampp\htdocs\cercatrova\trova.php on line 10 
 File non trovato.Ti allego il sorgente <? function find_file_in_dir($dirname, $file_name){ if (!file_exists('./'.$dir_name.'/'.$file_name)) { $internal_dirs = scandir($dir_name); 
 foreach ($internal_dirs AS $key => $internal_name) {
 if (is_dir('./'.$dir_name.'/'.$internal_name) && '.' != $internal_name && '..' != $internal_name) {if (file_exists('./'.$dir_name.'/'.$internal_name.'/'.$file_name)) {// IL FILE E' IN QUESTA DIR. VEDI TU SE TI BASTA TORNARE TRUE O SE VUOI TORNARE IL PERCORSO AL FILE CON return './'.$dir_name.'/'.$internal_name.'/'.$file_name; 
 }} return false;} } else { echo "IL FILE E NELLA CARTELLA RADICE (return './'$dir_name.'/'.$file_name;) "; 
 }
 }?> questo invece è il programma chiamante. <? 
 include "trova.php";if ($percorso_completo_al_file = find_file_in_dir('cedolino', 'azcon_add_0.php')) { 
 echo("File trovato in:".$percorso_completo_al_file);
 } else {
 echo("File non trovato.");
 }
 ?>