Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Problema funzione fopen

    Salve a tutti,
    Ho dei problemi con la funzione fopen. Mi spiego:
    Vorrei creare una pagina dove poter scrivere un testo, questo venga poi salvato in un file txt e in un secondo momento venga stampato il contenuto del file a video.
    Per fare questo, dopo aver creato un form con lo spazio dedicato al testo da inserire, invio tutto ad una pagina php con scritto questo codice:

    codice:
    $testo=htmlentities($_POST['testo']);
    $file=fopen("file.txt", "w");
    fwrite($file, $testo);
    fclose($file);
    Dopo aver fatto questo, nella pagina php dove stamperò a video il testo inserito nel file txt, ho inserito il seguente codice:

    codice:
    $file1=fopen("file.txt", "r");
    
    while (!feof($file1)) {
    $buffer = fgets($file1, 4096);
    echo ("<font size='4' face='Times New Roman, Times, serif'>$buffer 
    \n</font>");
    }
    Il testo viene stampato a video, però capita a volte che se copio un testo preso da una fonte esterna (tipo da una pagina web) nel testo stampato a video non riesco a leggere i 3 punti di sospesione e gli apostrofi... vorrei chiedervi come mai succede questo e se si può risolvere il problema...
    Controllando il file txt cmq vedo che i caratteri dei 3 punti di sospensione e degli apostrofi sono diversi da quelli che invece inserirei scrivendo normalmente sul file dal notepad.
    Grazie mille a tutti.

  2. #2
    Cosa mette ad esempio al posto dei tre puntini?

  3. #3
    sono diversi perchè hanno una codifica diversa.
    Di solito si dovrebbero evitare il copia e incolla.
    Ti consiglio di usare un editor web tipo ckeditor al posto della textarea.
    ckeditor, nel caso in cui fai un copia e incolla, diciamo che ricodifica tutti i caratteri speciali che inserisci e quindi dovresti risolvere il problema degli apostrofi.

    Fai una prova, vedi se ti fa la stessa cosa con i caratteri accentati.

  4. #4
    ok provo a vedere.

  5. #5
    Ho controllato e le parole accentate non le visualizza, come succede con i 3 punti e gli apostrofi che non li visualizza.

  6. #6
    Ho visto ckeditor, però ho letto che è a pagamento per i siti web... Non è possibile forzare la codifica di ciò che incollo a quella che adopero nel sito?

  7. #7

  8. #8
    Se non ricordo male ckeditor è gratis per l’integrazione in software Open Source. Si dovrebbe dare un'occhiata alla licenza.
    In alternativa puoi provare a forzare la codifica, cioè dici al browser che codifica troverà nella pagna.
    Mi sa che si usa

    codice:
    header( 'Content-type: text/html; charset=utf-8' );
    se non sbaglio, e va fatto su tutte le pagine se sono pagine statiche.

  9. #9
    Grazie mille per le risposte. Tuttavia ho provato a eseguire la pagina, forzando la codifica in iso-8859-1 e il risultato è che si vede tutto correttamente.... però ho notato anche che il problema si ripresenta nel momento in cui la pagina web che contiene lo scritto viene caricata da ajax. In quel momento, la codifica funziona solo per le lettere accentate, ma non visualizza gli apostrofi (') e le virgolette (").

    La funzione ajax che uso per richiamare la pagina web è la seguente:

    codice:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <script language="JavaScript">
    var myRequest2 = null;
    
    function CreateXmlHttpReq(handler) {
      var xmlhttp = null;
      try {
        xmlhttp = new XMLHttpRequest();
      } catch(e) {
        try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e) {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
      }
      xmlhttp.onreadystatechange = handler;
      return xmlhttp;
    }
    
    function myHandler3() {
        if (myRequest2.readyState == 4 && myRequest2.status == 200) {
            document.getElementById('scritto').innerHTML=myRequest2.responseText;
        }
    }
    
    function carica_scritto(){
        var r=Math.random();
        myRequest2 = CreateXmlHttpReq(myHandler3);
        myRequest2.open("GET","prova.php?r="+escape(r));
    myRequest2.setRequestHeader("Content-Type", "text/html; charset=ISO-8859-1");
    
        myRequest2.send(null);
    
    }
    </script>
    </head>
    
    <body>
    <?php
    echo ("<script language='JavaScript'>javascript:carica_scritto()</script>");    
    echo "<div id='scritto' align='left'>     </div>";
    ?>
    </body>
    </html>
    Sapete dirmi come mai questa anomalia? Grazie ancora di tutto.

  10. #10
    ma questo problema lo da solo sui copia e incolla o in generale

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.