problema con caratteri (stripslashes)

darkman_1975

Nuovo Utente
15 Giu 2011
20
0
0
Salve ho questo problema:
leggendo un feed rss con uno script mi stampa molti " ? " invece di " ' " nella variabile $title. Invece inserendo la funzione "stripslashes" mi aggiusta solo i primi che legge e dopo mostra ancora " ? ".
ecco lo script.

PHP:
$insideitem = false;
$tag = "";
$title = "";
$description = "";
$link = "";

function startElement($parser, $name, $attrs) {
global $insideitem, $tag, $title, $description, $link;
if ($insideitem) {
$tag = $name;
} elseif (strtolower($name) == "item") {
$insideitem = true;
}
}


function endElement($parser, $name) {
global $insideitem, $tag, $title, $description, $link;
if (strtolower($name) == "item") {
	


$title2 = stripslashes($title);
	
	
	
//$title2= stripslashes(utf8_decode(trim($title)));
print "<br>";
printf('<font color="#0000FF" size="+3">%s</font>' ,
trim($title2),trim($title2));

echo ('<font color="#000000" size="+3">');
printf("&nbsp;");
printf("%s" , ($description));
echo ('</font>');
print "<br>";





$title = "";
$description = "";
$link = "";
$insideitem = false;
}
}
 
function characterData($parser, $data) {
global $insideitem, $tag, $title, $description, $link;
if ($insideitem) {
switch (strtolower($tag)) {
case "title":
$title .= $data;
break;
case "description":
$description .= $data;
break;
case "link":
$link .= $data;
break;
}
}
}
 
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement" , "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
// Carico indirizzo feed rss delle news di WebMasterPoint.org
$fp = fopen("http://www.palermowebnews.it/feed/" ,"r")
or die("Error reading RSS data.");
while ($data = fread($fp, 4096))
xml_parse($xml_parser, $data, feof($fp))
or die(sprintf("XML error: %s at line %d" ,
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
fclose($fp);
xml_parser_free($xml_parser);

Potete darmi una mano? :crying::crying::crying:

Grazie in anticipo.
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Sembrerebbe un problema di codifica. Prova ad applicare htmlspecialchars:
PHP:
$title = htmlspecialchars($title, ENT_QUOTES, 'UTF-8', false);
E vedi se in questo modo converte i caratteri speciali nelle relative entità HTML.
 

darkman_1975

Nuovo Utente
15 Giu 2011
20
0
0
Grazie per avermi risposto, xò inserendo:
PHP:
$title = htmlspecialchars($title, ENT_QUOTES, 'UTF-8', false);
mi da errore, invece se inserisco:
PHP:
$title = htmlspecialchars($title, ENT_QUOTES, 'UTF-8');
lo accetta ma non cambia nulla :(
mi scrive es.: ?DIVINO? invece di “DIVINO”

Come posso risolvere?
 

darkman_1975

Nuovo Utente
15 Giu 2011
20
0
0
Intendo dire: che errore restituisce SENZA correggere la chiamata alla funzione?

Allora, utlizzando questo:
PHP:
$title = htmlspecialchars($title, ENT_QUOTES, 'UTF-8', false);

mi restituisce questo:

Warning: htmlspecialchars() expects at most 3 parameters, 4 given in c:\programmi\easyphp1-8\www\vetrina\eventi2.php on line 47

Scusa io non so nulla di php, ma voglio farti una domanda: ma è possibile che l'xml sia scritto male, con caratteri strani? perchè io li vedo gli accenti e le doppie virgolette e anche le apostrofi. Ad esempio leggo: L’Arte, andra’, piu’ “Cavalleria Rusticana” .
Quindi non capisco...
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Questo accade perché stai usando una versione di PHP inferiore alla 5.2.3, quando il quarto parametro è stato aggiunto. Questo rappresenta un grosso problema, perché nell'XML, a quanto pare, alcuni caratteri sono stati già formattati come entità HTML, e non puoi formattarli nuovamente, perché non verrebbero visualizzati.

Noto che, comunque, ho sbagliato funzione. Prova usando htmlentities, che converte tutti i possibili caratteri in entità HTML. Usala come prima, solamente cambia il nome (e ometti il quarto parametro, sperando che funzioni).
 

darkman_1975

Nuovo Utente
15 Giu 2011
20
0
0
Questo accade perché stai usando una versione di PHP inferiore alla 5.2.3, quando il quarto parametro è stato aggiunto. Questo rappresenta un grosso problema, perché nell'XML, a quanto pare, alcuni caratteri sono stati già formattati come entità HTML, e non puoi formattarli nuovamente, perché non verrebbero visualizzati.

Noto che, comunque, ho sbagliato funzione. Prova usando htmlentities, che converte tutti i possibili caratteri in entità HTML. Usala come prima, solamente cambia il nome (e ometti il quarto parametro, sperando che funzioni).

Sei Grande!!!! risolto :) avevi ragione te, ho cambiato versione di php. Ho installato l'ultimo wamp e senza mettere nessuna riga di decodifica dei caratteri è tutto già perfetto :) Grazieeeeeeeeeeee tantisssiiiimooooo.
 
Discussioni simili
Autore Titolo Forum Risposte Data
gandalf1959 problema con la codifica caratteri accentati e speciali tra php e mysql PHP 3
asevenx problema con caratteri speciali e str_replace PHP 4
asevenx problema con l'inserimento di un record nel database (caratteri non consentiti) PHP 11
metalgemini Problema Codifica caratteri con Replace(var,"","") Classic ASP 3
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
G Problema con Xampp Web Server 1
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
N Problema con position absolute e overflow HTML e CSS 4
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
K [PHP] Problema con variabili concatenate. PHP 1
O problema con query PHP 4
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 1
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
M Problema con Try Catch PHP 0
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
R problema con else PHP 0
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
G Problema con Get page PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 0
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
G Problema con eccessiva nitidezza apertura Camera Raw Photoshop 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
T problema con select dinamica con jquery Javascript 0
S Problema con spazi bianchi HTML e CSS 5
A PROBLEMA: insert mysqli con dati Tagsinput Presentati al Forum 0
Tommy03 Problema con z-index HTML e CSS 3
M Problema inserimento parole con apostrofo nel db PHP 5
C Problema con dati meteo xml XML 1
S Problema con infrarossi videocamera IP Cam e Videosorveglianza 1

Discussioni simili