[PHP] fwrite problema con le parole accentate

Cosina

Utente Attivo
27 Dic 2016
96
0
6
Buongiorno. Si tratta di un semplice modulo per i commenti. Il testo dei commenti, inviato tramite un form, viene archiviato nel file comments.html. Il problema sono le parole accentate che creano simboli di errore (come questi è Ã) che aumentano fino a creare lunghe file ad ogni accesso al file comments.html. Come posso rimediare? Grazie per l'aiuto.
Il codice è questo:

PHP:
if ($_POST){
$name = $_POST['name'];
$date = new DateTime();
$date = $date->format("d.m.y - h:i:s");
$content = $_POST['message'];
$handle = fopen("comments.html","a");
fwrite ($handle
,"<p><span style='color:red; background-color:transparent; font-weight:bold; font-size:12pt;'>" . $name . "</span><br>"
. $date . "<br><em>"
. $content . "</em></p><hr>\r\n");
fclose ($handle);
header("location: ./comments-form.html");
}
?>
 

Cosina

Utente Attivo
27 Dic 2016
96
0
6
Grazie, ma non mi aiuta. Non sono un'esperta di php e i miei siti sono in html5. Uso php solo per i moduli e senza database. Qualunque soluzione ho necessita` che sia nel codice php che ho postato. Se esiste, vi sarei grata di volermela mostrare nella pratica. Scusate per i miei limiti
 

Cosina

Utente Attivo
27 Dic 2016
96
0
6
Aggiornamento: ho provato ad aggiungere questa regola: $content = utf8_decode($_POST['message']);. Ora le lettere accentate vengono trascritte in modo corretto nel file comments.html, ma ho un altro problema. Per visualizzare l'anteprima dei commenti in una pagina html del sito utilizzo un include con jQuery. Adesso sono le accentate nell'include che non si vedono. Al loro posto vedo questo simbolo: �. Qualche idea? Nella pagina html che ospita l'include c'e` il metatag <meta charset="utf-8">
 

Cosina

Utente Attivo
27 Dic 2016
96
0
6
Leggendo un po' in giro, forse bisognerebbe sostituire le lettere accentate con le rispettive entity (&egrave; &eacute; ), ma io non so come fare. Ho trovato diverse spiegazioni, ma non essendo pratica, non so implementarle. Spero che possiate aiutarmi. Grazie
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.372
338
83
Per usare le entity fai cisì!
esempio:
HTML:
Non è vero che può essere più bello
Con entity
Non &egrave; vero che pu&ograve; essere pi&ugrave; bello
Ma sono convinto che se usi correttamente l'utf-8 risolvi il problema
 

Cosina

Utente Attivo
27 Dic 2016
96
0
6
Ti ringrazio per la risposta Max 1, ma non mi sono spiegata bene. So come usare le entity, anche perche` fa parte del mio mestiere, dato che sviluppo siti web in html5. Quello che non sono in grado di fare, non essendo esperta di php, e` implementare un codice che automaticamente trasformi in entity le lettere accentate contenute nel testo dei commenti prima che venga inviato al file comments.html. Ho inserito l'utf-8, ma, come ho spiegato, non riesco a risolvere in quel modo. Buona serata
 

macus_adi

Utente Attivo
5 Dic 2017
1.320
88
48
IT/SW
Utilizzo di iconv...
http://php.net/manual/en/book.iconv.php
viene archiviato nel file comments.html
Quello che hai fatto qui non è il massimo ti consiglio di vedere come sfruttare un DB anche semplicemente un flat, ossia prendi gestione dei dati potendo accedervi effettuando le operazione elementare sui dati.
Potresti crearne anche uno tuo, ma lo sforzo se non sei pratica è veramente grande, quindi ti consiglio di utilizzare librerie di terze parti o il nativo SQLite php.
Qui alcune librerie abbastanza facili da utilizzare:
1- https://github.com/filebase/Filebase
2- https://www.badpenguin.org/php-flatfiledb
3- https://github.com/Greg0/Lazer-Database

Nel caso invece ti volessi cimentare nella creazione di un tuo DB con le tue logiche, metodi etc, ti consiglio di utilizzare la notazione JSON.

Per quanto riguarda la visualizzazione dei dati da stampare all'interno del file basterebbe aggiungere un sistema di templating per facilitare la scrittura e la comprensione del codice separando la logica dalla view.
 

marino51

Utente Attivo
28 Feb 2013
3.001
173
63
Lombardia
vediamo se questo esempio ti aiuta,
PHP:
header("Content-Type:text/html; charset=utf-8");
$file = fopen("_testCaratteri.html", 'wb');
fwrite($file, pack("CCC",0xef,0xbb,0xbf));

fwrite($file, utf8_encode('àéèìòù - abcdefgthijk - Ññáéí<br />'));
fwrite($file, utf8_encode('Ññáéí - abcdefgthijk - àéèìòù<br />'));

fclose($file);

Risultato,

upload_2019-1-16_12-24-13.png


upload_2019-1-16_12-25-13.png
 

Cosina

Utente Attivo
27 Dic 2016
96
0
6
Ringrazio tutti per le risposte e cerchero` di capirci qualcosa, ma temo che, al momento, sia superiore alle mie forze :(
 
Discussioni simili
Autore Titolo Forum Risposte Data
E [PHP] problemi nuova riga con fwrite su piattaforma android PHP 5
Cosina [PHP] Impostare colore singolo elemento in fwrite PHP 2
Frank10 Fopen ed Fwrite in php PHP 2
L Problemi form Pagina php HTML e CSS 2
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
F Il codice php è giusto? PHP 2
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
A invio massivo dati a file php Javascript 4
Z MySql injection PHP PHP 1
V PHP form intersecate PHP 0
I [Offro][Retribuito] Programmatore Php Offerte e Richieste di Lavoro e/o Collaborazione 0
P Funzione jQuery Ajax invio file a php jQuery 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
E Transaction php PHP 11
B ciclare file xml con PHP PHP 1
L Estrazione dati php Database 6
A Aiuto per pagina php PHP 0
E Php select option e ajax PHP 23
I Aiuto php Dependent Lookup PHP 0
T arretramento versione PHP... PHP 3
D problema php mysql PHP 1
D problema php mysql PHP 1
E Barra di avanzamento codice PHP PHP 4
G creazione menu a tendina e invio a pagina php PHP 1
A inserire variabile php colore in div html PHP 2
Z Video protetto con PHP PHP 0
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
I Eecuzione di javascript in ciclo foreach php. PHP 7
S Libreria PHP per creare file dwg o dxf PHP 0
A [cerco - retribuito] Sviluppatore Php freelance per progetti vari Offerte e Richieste di Lavoro e/o Collaborazione 2
L Google chart php mysql PHP 2
R Download file multipli da directory php PHP 0
F pagina dinamica PHP PHP 3
P Rimozione automatica url da sitemap.xml con PHP PHP 1
L php tinymce mi duplica la classe label PHP 3
S Errore PHP - Notice: Undefined index ... PHP 14
N file manager da php 5 a 7 PHP 15
M Utilizzare la funzione mysql_num_rows() in PHP 5 PHP 3
elpirata Update dinamico informazioni scritte in una pagina php jQuery 11
N Mysql_result per PHP 7 PHP 2
Emix Select concatenate php sql ajax PHP 2
P Modifica con PHP di un node in una sitemap xml PHP 0
D Come usare funzione php PHP 6
P Cancellazione specifici files in una folder php PHP 1
R Tradurre stringhe con php e google translator PHP 4
I Salvataggio snapshot IPCAM tramite PHP PHP 5
felino PHP e script generazione file excel PHP 2
L Aiuto per programma web php/mySQL PHP 2
A Estrapolare parti di testo con PHP PHP 2

Discussioni simili