Salvare testo

Salve ragazzi!! sto cercando di creare un piccolo script che permetta di salvare parte del testo che appare in una pagina magari di testo.

Mi spiego meglio: vorrei consigli su come poter salvare in log su .txt un qualunque altro testo riportato in .txt sul web.

Ho buttato giù qualcosina già, ma a questo punto mi fermo  >:( 

infatti posso far aprire un file di testo mediante codice php, ma dopo come faccio a riportarlo sullo stesso?

spero di essermi spiegato...

help

inviato 8 anni fa
Newbie
X 0 X

Ragazzo se nn posti il codice è difficile che ti possiamo aiutare.  :bye:

risposto 8 anni fa
EKELON77
X 0 X

no, purtroppo il codice è solo nella mia mente, nel senso che ho idee per quanto riguarda form e resto, ma non ho idee per quello che ho già precedentemente spiegato. Il codice devo crearlo ancora in quanto non saprei come far salvare un file txt e di conseguenza non so come comportarmi col php. Se dovreste far salvare ad un vostro script del testo presente in un file .txt che righe utilizzereste?

risposto 8 anni fa
Newbie
X 0 X

Dovresti provare a descrivere con più chiarezza le tue intenzioni, le tue idee, insomma quello che hai intenzione di fare.

Per ora mi spiace ma non possiamo leggerti nella mente ;D

Comunque sia per scrivere su un file le operazioni standard sono più o meno queste:

//apro il file in scrittura, se il file non esiste provo a crearlo
$handle = fopen("nomefile.txt", "w+");
//se il file e' stato aperto
if ($handle ) {
    //ci scrivo qualcosa...
    fwrite($handle, "quello che vuoi scrivere nel file");
}
//chiudo il file
fclose($handle);

per eventuali approfondimenti sulle funzioni utilizzate

fopen

fwrite

fclose

:bye:

risposto 8 anni fa
Andrea Turso
Andrea Turso
86
modificato 8 anni fa
X 0 X

bene, quello che hai riportato era quello che avevo io in mente e mi hai dato conferma ora, qui:

//apro il file in scrittura, se il file non esiste provo a crearlo
$handle = fopen("nomefile.txt", "w+");
//se il file e' stato aperto
if ($handle ) {
    //ci scrivo qualcosa...
    fwrite($handle, "quello che vuoi scrivere nel file");
}
//chiudo il file
fclose($handle);

io vorrei questo:

//apro il file in scrittura, se il file non esiste provo a crearlo
$handle = fopen("nomefile.txt", "w+");
//se il file e' stato aperto
if ($handle ) {
    //ci scrivo qualcosa...
    fwrite($handle, "testo .txt");
}
//chiudo il file
fclose($handle);

dove testo .txt rappresenta ad esempio questa pagina http://www.nic.it/NA/netiquette.txt

quindi in poche parole lo script dovrebbe fare questo:

1)leggi array $_POST

2)dirigiti dove ti è stato indicato

3)se la pagina indicata è un file .txt copiala entro la directory precedentemente specificata

4)scrivi contenuto pagina

5)chiudi tutto

Ciò che a me serve sapere è il passo '3'.

Grazie nel frattempo per la disponibilità, e scusatemi se non riesco ad essere debitamente chiaro

risposto 8 anni fa
Newbie
X 0 X

Mhh.

Questo dovrebbe fare al caso tuo, ovviamente il controllo se il file è un txt è decisamente semplice e vulnerabile, ma andrà più che bene.

<?php
//ottengo il valore dal campo di test dove 
//e' stato inserito l'url
//cambia "ilcampo" con il nome del campo.
$file = $_POST['ilcampo'];
//se il contenuto del campo contiene l'occorrenza .txt
if (strpos($file, '.txt')) {
    //prendi il contenuto del file
    $content = file_get_contents($file);
    //apri l'archivio
    $handle = fopen('archivio.txt', 'wa+');
    if ($handle) {
        //aggiungici il contenuto di questo file in coda.
        fwrite($handle, $content);
    }
    //chiudi l'archivio
    fclose($handle);
}

Lo script è stato provato con l'url che hai fornito e funziona correttamente.

:bye:

risposto 8 anni fa
Andrea Turso
Andrea Turso
86
modificato 8 anni fa
X 0 X

ho elaborato questo script <?php print "<center>        <form action=\"pagina.php\" method=\"post\">        <input name=\"page\" type=\"text\"><br>        <input name=\"submit\" value=\"Copia contenuto\" type=\"submit\"><br>        </form>        </center>";  $file = $_POST['page']; //se il contenuto del campo contiene l'occorrenza .txt if (strpos($file, '.txt')) {     //prendi il contenuto del file     $content = file_get_contents($file);     //apri l'archivio     $handle = fopen('archivio.txt', 'wa+');     if ($handle) {         //aggiungici il contenuto di questo file in coda.         fwrite($handle, $content);     }     //chiudi l'archivio     fclose($handle); } ?>

ma purtroppo dopo diverse prove (circa mezz'oretta :o) non sono riuscito a farlo andare  :P

ho provato ad immettere l'url completo http://blablabla

e anche senza http://

ma niente.

qualcosa di errato? [ovviamente la pagina l'ho chiamata pagina.php 8)]

risposto 8 anni fa
Newbie
X 0 X

Attento, se noti nel commento poco prima dell'if (strpos...) { c'è scritto:

se il contenuto del campo contiene l'occorrenza .txt

questo vuol dire che se nell'url che l'utente ha inserito è contenuta almeno una volta la sequenza ".txt" la condizione sarà verificata e il codice all'interno di quell'if verrà eseguito.

Comunque eccoti una versione più completa e corretta.

<?php
//nessun errore
$error = false;

//valore predefinito
$value = 'http://';

//se il form e' stato inviato:
if ($_POST['submit']) {

    //ottengo il valore dal campo di test dove 
    //e' stato inserito l'url
    //cambia "ilcampo" con il nome del campo.
    $file = $_POST['url'];
    
    //se il contenuto del campo contiene l'occorrenza .txt
    if (strpos($file, '.txt') !== false) {
    
        //prendi il contenuto del file
        $content = file_get_contents($file);
        //apri l'archivio
        $handle = fopen('archivio.txt', 'wa+');
        if ($handle) {
            //aggiungici il contenuto di questo file in coda.
            fwrite($handle, $content);
        }
        //chiudi l'archivio
        fclose($handle);
    } else {
        //imposta come valore del campo l'url precedentemente
        //inserito
        $value = strip_tags($_POST['url']);
        
        //visualizza l'errore!
        $error = true;
    }
} 
?>
<form action="" method="post">
    <ol style="list-style:none">
        <li>
            <label for="url">Url</label>
            <input type="text" name="url" id="url" value="<?php echo $value ?>" />
            <?php if ($error): ?>
            <p style="border:1px solid red; color: red; padding: 2px">L'indirizzo deve puntare ad un file txt!</p>            
            <?php endif ?>
        </li>
        <li>
            <label for="submit">invia</label>
            <input type="submit" name="submit" id="submit" value="invia richiesta" />
        </li>          
    </ol>
</form>

Mi raccomando ad inserire SOLO URL che puntano a file .txt, altrimenti non funziona.

Se vuoi che lo script riconosca se l'url inserito è un file txt o meno hai bisogno di affinare il codice, cosa che non è pertinente a questo topic :P

:bye:

risposto 8 anni fa
Andrea Turso
Andrea Turso
86
modificato 8 anni fa
X 0 X

grazie, è davvero un ottimo lavoretto  ;)

comunque il problema fin'ora l'ho riscontrato solo su altervista, infatti sia il primo script che mia hai postato che il secondo li ho testati prima su altervista con risultati pessimi ovvero non copiava il contenuto. In locale invece funziona alla perfezione  :wallbash:

risposto 8 anni fa
Newbie
X 0 X

Controlla di avere i permessi in scrittura nella directory nella quale esegui lo script.

:bye:

risposto 8 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

risolto!! grazie per l'aiuto ;)

 :)

risposto 8 anni fa
Newbie
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda