• Moderatore

    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 nulla

    Dove Sbaglio? Perchè non funziona?


  • User Attivo

    Ciao, sei sicuro che $Italiaprov è valorizzato? se provi a fare print_r($Italiaprov) cosa ti stampa?


  • User

    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


  • Moderatore

    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?


  • ModSenior

    Quello che intende noice è che utilizzi gli apici errati, e non prende il valore della variabile p, bensì viene interpretato proprio come testo.


  • Moderatore

    Ah si ho capito devo usare questi " e non questi ' come già scritto nelle loro correzioni.

    ....però non funziona lo stesso...:(


  • User

    Ciao Ivan,
    puoi postare l'output di print_r($Italiaprov) ? (Se e' troppo lungo anche solo una parte).


  • Moderatore

    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 )


  • User

    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


  • Moderatore

    Funzionava già dall' inizio allora!
    Scusate spesso capita di perdersi nei dettagli

    Grazie a tutti dell' aiuto.