- Home
- Categorie
- Coding e Sistemistica
- PHP
- Errore con fopen e foreach
-
Errore con fopen e foreach
Ciao a tutti,
vorrei avere tante pagine quante sono le province italiane per il mio sito.
Siccome non voglio stare a crearle una per una volevo aiutarmi col fopen di php usando questa funzione:
[php]foreach ($Italiaprov as $p) {
$myFile = "city/'.$p.'.php";
$fh = fopen($myFile, 'w') or die("can't open file");$stringData = 'Qui metto il testo';
fwrite($fh, $stringData);
fclose($fh);
}[/php]Senza il ciclo foreach funziona perfettamente.
Ma aggiungendo il ciclo perde efficacia ed è come se non facesse nullaDove Sbaglio? Perchè non funziona?
-
Ciao, sei sicuro che $Italiaprov è valorizzato? se provi a fare print_r($Italiaprov) cosa ti stampa?
-
l'ho provato e funziona, assicurati come ha detto codencode che l'array sia pieno.
[PHP]if(!empty($Italiaprov)){
foreach ($Italiaprov as $p) {
$myFile = "city/".$p.".php";
$fh = fopen($myFile, 'w') or die("can't open file");$stringData = 'Qui metto il testo';
fwrite($fh, $stringData);
fclose($fh);
}}else {echo "empty array";}[/PHP]
Inoltre io metterei
[PHP]$myFile = "city/".$p.".php";
[/PHP]altrimenti ti salva i nomi delle cartelle 'nome_cartella'.php
-
L' array è pieno, lo vedo anche col print_r($Italiaprov)
Ma il risultato anche cambiando virgolette non cambia.
noice non ho capito il tuo ultimo intervento:
Inoltre io metterei
$myFile = "city/".$p.".php";
altrimenti ti salva i nomi delle cartelle 'nome_cartella'.php Inoltre io metterei
Codice PHP:
[LEFT]$myFile = "city/".$p.".php";
[/LEFT]altrimenti ti salva i nomi delle cartelle 'nome_cartella'.php 04-12-10 11:36
Quella parte è già nel codice, forse volevi scriver qualcos' altro?
-
Quello che intende noice è che utilizzi gli apici errati, e non prende il valore della variabile p, bensì viene interpretato proprio come testo.
-
Ah si ho capito devo usare questi " e non questi ' come già scritto nelle loro correzioni.
....però non funziona lo stesso...:(
-
Ciao Ivan,
puoi postare l'output di print_r($Italiaprov) ? (Se e' troppo lungo anche solo una parte).
-
ecco qui il risultato del print:
Array ( [0] => Roma [1] => Milano [2] => Firenze [3] => Bologna [4] => Napoli [5] => Lecce [6] => Savona [7] => Venezia [8] => Reggio [9] => Genova )
-
Ho provato anche con l'array da te postato e funziona..
prova a creare un nuovo file separato dal progetto che stai facendo e inserisci
[PHP]<?php$Italiaprov = array( "Roma", "Milano", "Firenze", "Bologna", "Napoli",
"Lecce", "Savona", "Venezia","Reggio","Genova" );if(!empty($Italiaprov)){
foreach ($Italiaprov as $p) {
$myFile = $p.".php";
$fh = fopen($myFile, 'w') or die("can't open file");$stringData = 'Qui metto il testo';
if(fwrite($fh, $stringData)){
echo "funziona<br />";
}fclose($fh);
}
}else {echo "empty array";}
?>[/PHP]
e prova ad eseguirlo, se ti funziona l'errore non e' in questo pezzo di codice
-
Funzionava già dall' inizio allora!
Scusate spesso capita di perdersi nei dettagliGrazie a tutti dell' aiuto.