Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Gestione apici in un txt per cancellare righe

    Buon giorno, ho il problema di dover gestire gli apici singoli e doppi all'interno di un txt.
    Questo txt è composto da messaggi che lasciano gli utenti.
    Se trovo problematiche di questo tipo ( l'associazione), (" l'associazione") oppure (" associazione") gestisco il tutto inserendo il backslash in questo modo:
    codice:
    $messaggio = addslashes($_POST['messaggio']);
    Quindi all'interno del file avrò questa situazione (l\\\'associazione), (\\\"l\\\'associazione\\\") oppure (\\\"associazione\\\")

    Poi quando voglio visualizzarne il contenuto, che inserisco dentro le input type=text, utilizzo lo stripslashes cosi:
    codice:
    <?
    $file = implode('\n',array_reverse(file('../public/guestbook.txt')));
    $stringa = explode('\n',$file);
    			
    $n = 0;
    foreach($stringa as $value){
                 /*$value = str_replace("\\'","",$value);
    	$value = str_replace('\\"','',$value); */
    									$value = stripslashes($value);
    ?>
    <input type="text" name="email_news" size="60" maxlength="500" class="LogPass" value="<? echo $value;?>">
    Rimuovi
    
    
    <?	$n++;
    }
    Ma il problema è che ne resta sempre uno di backslash quindi faccio una str_replace, ma non funziona lo stesso...

    Sapete dirmi come posso ovviare al problema dei singoli e doppi apici all'interno di un txt?
    Grazie mille....

  2. #2
    allora per questo problema ho risolto...

    adesso se ne pone un'altro, come posso togliere dal messaggio, all'atto dell'inserimento, il simbolo dello spazio "\n", che viene creato, all'interno del txt, digitando l'invio?
    In pratica crea un rettangolino... che ha me da fastidio, perchè sempre con il solito sistema, del str_replace() non me lo toglie:

    codice:
    $messaggio = $_POST['messaggio'];
    $messaggio = str_replace("\n"," ",$messaggio);
    Sapete qualcosa in merito?
    Grazie...

  3. #3

    ..............

    Ciao.
    Se sei su server win prova con:
    $messaggio = str_replace("\r\n"," ",$messaggio);
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  4. #4
    ok...come dici te funziona..!!
    Però altro quesito, non riesco a fare un controllo adeguato all'interno del for, in pratica vorrei che, se trova all'interno del file, uno spazio (\n) mi inserisca il messaggio senza lo spazio all'inizio, altrimenti se nn lo trova, lo inserisce all'inizio del messaggio, in pratica cosi ( anche se non funziona):

    codice:
    $content=stripslashes($content);
    
    $lines = explode("\n",$content);
    for ($key=1;$key<sizeof($lines);$key++){
    if ($lines==""){
    $commento = "\n" . $utente . "
    " . $messaggio . "
    <hr>\n";
    }
    else {
    $commento = $utente . "
    " . $messaggio . "
    <hr>\n";
    }
    }
    Facendo in questo modo, nn mi funge, sapete aiutarmi?
    Grazie mille...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Originariamente inviato da ANTAGONIA
    ok...come dici te funziona..!!
    Però altro quesito, non riesco a fare un controllo adeguato all'interno del for, in pratica vorrei che, se trova all'interno del file, uno spazio (\n) mi inserisca il messaggio senza lo spazio all'inizio, altrimenti se nn lo trova, lo inserisce all'inizio del messaggio, in pratica cosi ( anche se non funziona):

    codice:
    $content=stripslashes($content);
    
    $lines = explode("\n",$content);
    for ($key=1;$key<sizeof($lines);$key++){
    if ($lines==""){
    $commento = "\n" . $utente . "
    " . $messaggio . "
    <hr>\n";
    }
    else {
    $commento = $utente . "
    " . $messaggio . "
    <hr>\n";
    }
    }
    Facendo in questo modo, nn mi funge, sapete aiutarmi?
    Grazie mille...
    $lines è il risultato di una explode, quindi è un array, perchè confrontarlo con la stringa vuota?
    Cosa vorresti ottenere con quella "if"?
    Forse volevi fare
    if($lines[$key] == "")
    Ma questa condizione sarà vera solamente se hai due "\n" consecutivi l'uno all'altro!!!
    Non capisco veramente cosa vuoi ottenere!

  6. #6
    in pratica cosa volevo fare... che o quasi fatto, ma mi manca sto passaggio.
    Cmq, volevo fare una gestione di un normale guestbook a 360° ovvero, inserimento, modifica e cancellazione di un messaggio...Tutto quà!!

    Il problema stà nel fatto che, all'atto dell'inserimento di un messaggio, inserisco questo carattere "\n", che mi servirà, come riferimento, per estrapolare, tramite implode() e poi explode(), 1 o più messaggi presenti all'interno del file .txt, aiutandomi ovviamente con un ciclo for!

    L'unico problema verò stà nel fatto che, estrapolando per "\n" cosi:
    codice:
    $file = implode('\n',array_reverse(file('../public/guestbook.txt')));
    $stringa = explode('\n',$file);
    e valorizzando le input type=text, con un ciclo cosi:
    codice:
    <?
    foreach($stringa as $value){
    //caratteri che devono essere sostituiti all'atto della visualizzazione nella input type=text
    	$value = str_replace("\\'","",$value);
    	$value = str_replace('\\"','',$value);
    ?>
    	<input type="text" name="email_news" size="60" maxlength="500" class="LogPass" value="<? echo $value;?>">
    	Rimuovi
    	
    
    <?	
    }
    và a finire che l'ultima viene valorizzata soltanto con questo carattere "\n", e quindi vuota apparentemente..ed io questo lo volevo evitare..
    Ho provato ne i modi che so, ma non ci sono riuscito.

    Come posso ovviare alla visualizzazione di una input type=text vuota?

    Grazie..mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.