Cercherò di illustrare il mio problema:
in una pagina php amministro il contento principale (incluso), mediante questo switch:
switch($p) {
case "home": include ("$dirScelta/0_home.php");
break;
case "cont_a": include ("$dirScelta/1_cont_a.php");
break;
case "cont_b": include ("$dirScelta/2_cont_b.php");
break;
case "cont_c": include ("$dirScelta/3_cont_c.php");
break;
default: include ("$dirScelta/0_home.php"); break;
}
la parte di codice sopra deve essere ricreata dinamicamente in base al numero di contenuti presenti in una cartella.
Ho provato con questo:
echo "<?php\n";//apertura php
echo "switch(\$p) {\n";
while (list(, $links) = each ($arr_str_comp)) { //$arr_str.. contiene l'elenco dei file di contenuto in ($dirScelta)
$nomeLinkPUL=str_replace("index.php?p=","",$links) ; //$p è il nome ridotto del file passato via get dal menu dei links
$nomeLinkPUL=str_replace(".php","",$nomeLinkPUL);
$nomeLinkPUL=ereg_replace("[0-9]_","",$nomeLinkPUL);
echo "case \"$nomeLinkPUL\": include (\"$dirScelta/$links\");\n"; //$nomeLinkPUL è il nome del file pulito come da menu
echo "break;\n";
};
echo "default: include (\"$dirScelta/0_home.php\"); break;\n";
echo "};\n";
echo "?>\n";//chiusura php
in effetti lo script viene creato e se copiato in un altra pagina funziona correttamente.
Il problema è che questo viene stampato nel codice html ma non eseguito (naturalmente).
Esiste un modo per risolvere questo problema?
Ringrazio infinitamente chiunque abbia un'idea.