Visualizzazione risultati 1 fino 5 di 5

Discussione: scrittura sul file

  1. #1
    Guest

    Predefinito scrittura sul file

    salve


    come avrete capito sto usando php per scrivere su file...

    innanzitutto io immaginavo che (dal momento che il mio codice php viene eseguito dal server) il file venisse creato automaticamente nel file system del server...
    ma ciò non avviene, e per ottenere ciò devo eseguire esplicitamente la funzione link

    questo è il codice che uso

    Codice PHP:

    $file
    = "theFile.php";

    if (!
    file_exists($file)) {
    $filePointer = fopen($file, 'w');
    fputs($filePointer, "");
    fclose($filePointer);
    }

    // Scrittura del file
    $message = "what a wonderful day"

    $writePointer = fopen($file,"w");
    fwrite($writePointer, $message);
    fclose($writePointer);

    // Upload al server
    link($file,"/php/");
    secondo voi è corretto?

    il secondo problema è che non trovo il file $file nel mio file system...
    come faccio per salvarne copia anche sul mio pc in un percorso preciso?

    (NB. il codice però funziona, perchè se lo scarico manualmente dal server il file è esattamente come dovrebbe essere)
    Ultima modifica di stepone : 23-04-2011 alle ore 09.11.30

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    C'è della confusione nell'aria, di certo

    Probabilmente crei il file nel posto sbagliato, e poi con link() aggiungi solo un link la dove ti aspettavi che fosse. Così crei prima "theFile.php" e poi con il link un secondo "php/theFile.php". Occhio anche che un path assoluto come quello su AV non funziona, devi aggiungere come prefisso /membri/tuonick/.

    La doppia fopen ed fwrite è inutile, perché fopen() crea automaticamente il file se non esiste. E sinceramente file_put_contents() è assai più comoda.

    Se hai di questi dubbi però, rileggiti con attenzione la documentazione di fopen(), ed in aggiunta magari un tutorial sui file in php.

  3. #3
    Guest

    Predefinito

    effettivamente con queste funzioni è la prima volta che ci lavoro...
    seguirò il tuo consiglio... grazie
    Ultima modifica di stepone : 23-04-2011 alle ore 16.16.32

  4. #4
    Guest

    Predefinito

    allora..
    mi sono documentato un pochino ma ancora non ne vengo a capo...
    chiedo quindi ancora l'aiuto di qualcuno un po' più esperto di me...

    io uso questo codice

    Codice PHP:
    public function writeClass() {

    $file = "myFile.php";
    $message = "ciao a tutti";

    // Scrittura del file
    $writePointer = fopen($file,"a+");
    fwrite($writePointer, $message);
    fclose($writePointer);

    }
    vorrei scrivere il file myFile.php in una cartella ben precisa:

    stepone.altervista.org/cartella1/cartella2/myFile.php

    il codice scritto prima è eseguito da una funzione che si trova nella cartella cartella2 a sua volta richiamata da una pagina che si trova nella cartella cartella1...

    il file alla fine viene scritto nella cartella1

    ho anche provato i vari

    /cartella2/myFile.php
    ./cartella2/myFile.php

    e qualcun altro che ora non ricordo, ma senza risultati...

    dove sbaglio????


    __________________________________________

    edit:

    risolto con:
    cartella2/myFile.php
    ultima domanda e poi chiudo con questo topic:

    io sul pc ovviamente ho un file system identico a quello che ho riportato sul web...
    se volessi riportare il file myFile.php appena scritto nella posizione analoga a quella che occupa nel web ma sul mio pc come posso fare?
    Ultima modifica di stepone : 23-04-2011 alle ore 17.27.26

  5. #5
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    dato che il php è lato server, tutti i comandi che utilizzerai andranno a copiare i file sempre lato server...

    facendo alcuni esempi, ci sono diverse funzioni che permettono di scaricare o caricare (i comandi ftp) file o copiare file (vedi la funzione copy), puoi trasferire file anche con fopen, ma il risultato è che saranno sempre trasferiti sul server stesso o su di un altro server...es. puoi utilizzare queste funzioni per fare delle coppie di backup...

    l'unica funzione che io conosca per scaricare file in automatico sul pc è l'header di php, manuale:
    http://php.net/manual/en/function.header.php

    le funzioni ftp di php qui su AV sembrano essere disabilitate(e non capisco il perchè?)

    un es. di script per caricare o scaricare file via ftp:
    Codice PHP:
    <?
    $ftp_server
    ="ftp.eurosalute.altervista.org"; //esempio indirizzo ip del sever
    $ftp_username="";//specificare username
    $ftp_password="";//specificare password
    // stabilisco la connessione al server ftp
    $ftp_connessione = ftp_connect($ftp_server);

    // effetto login sul server
    $login = ftp_login($ftp_connessione, $ftp_username, $ftp_password);

    // controllo se la connessione ha avuto buon fine
    if(!$ftp_connessione || !$login){
    echo
    "<p>Connessione fallita!<br>";
    } else {

    $filepath='uploaded/';//specificare percorso cartella
    $array_files=glob($filepath.'*.*')?glob($filepath.'*.*'):array();
    //$count_array_files=count($array_files);
    //echo "<p>Num File=$count_array_files";
    //echo "<p>Files=";print_r($array_files);

    // se connessione ha avuto buon fine faccio UPLOAD del file
    if (count($array_files)>0){
    foreach (
    $array_files as $file_da_caricare){
    $dove_carire = "/file_php/".$file_da_caricare; //specificare percorso cartella
    $upload = ftp_put($ftp_connessione, $dove_carire, $file_da_caricare, get_ftp_mode($file_da_caricare));
    // controllo se upload andato a buon fine
    if (!$upload) {
    echo
    "<p>Si è verificato un errore durante il caricamento!";
    } else {
    echo
    "<p>Upload avvenuto con successo ==> $ftp_server$dove_carire";
    }
    }
    //end foreach
    }

    //se invece voglio effettuare un DOWNLOAD:

    $file_da_scaricare = "file_php/uploaded/01.gif";//specificare il percorso e il file
    $dove_scaricare = "uploaded/01.gif";//specificare il percorso e il file

    $download = ftp_get($ftp_connessione, $dove_scaricare, $file_da_scaricare, get_ftp_mode($file_da_scaricare));

    // controllo se download andato a buon fine
    if (!$download) {
    echo
    "<p>Si è verificato un errore durante il download!<br>";
    } else {
    echo
    "<p>Download avvenuto con successo<br>";
    }

    // chiudo connessione FTP
    ftp_quit($ftp_connessione);
    }

    ?>
    quindi, per caricare o scaricare file avrai bisogno di un programma installato sul tuo pc che permetta di collegarsi al server remoto....
    come filezilla....in questo caso si collega all'host remoto via FTP (File Transfer Protocol),è un Protocollo per la trasmissione di dati tra host basato su TCP.

    quindi, installare sul tuo pc un Web Application Server (Server per Applicazioni Web) specifico, per più info:

    http://it.wikipedia.org/wiki/Server_...plicazioni_web

    o vedere anche filezilla server:
    http://filezilla-project.org/download.php?type=server
    Ultima modifica di EuroSalute : 24-04-2011 alle ore 15.43.14 Motivo: info...
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •