- Home
- Categorie
- Coding e Sistemistica
- PHP
- path applicazione
-
path applicazione
Ciao a tutti
ho questo problemino.
Sto scrivendo una piccola applicazione che è composta da programmi per categoria , quindi ho creato una cartella dopo deposito i php per quella categoria.
Quindi avrò diverse cartelle per categoria.Voglio definire una variabile globale dove inserire la path di tutte queste cartelle, in modo che dal menu, qualsiasi cosa cosa scelgo la ritrovo.
come posso fare , mi aiutate.
graziePaolo
-
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.");
}
?>