Problemi codifica caratteri generando file XML

artasdog

Utente Attivo
1 Mar 2011
50
0
6
Ho provato a porre il quesito anche in altri forum ma non trovo una risposta, ho un problema di codifica generando un file XML, provo a descrivere la situazione, se servono altre informazioni sono a disposizione.

Sto recuperando le informazioni relative a titolo e descrizione di un url tramite php, la chiamata al file php che recupera queste informazioni viene fatta tramite una chiamata ajax ed il file ritorna queste informazioni in formato xml.

Di seguito di vi posto il codice in completo in questione perchè il mio problema è molto specifico, ovvero ho dei problemi con il charset che non mi permettono di ricevere correttamente le informazioni Titolo e Descrizione relative ad alcuni specifici Url.

E' un post un po lungo da seguire ma credo possa essere interessante e magari parti di questo codice possono essere riutilizzate da chi vuole trovare il Title e la Description di url vari.
Praticamente è la stessa operazione che viene fatta da facebook quando nel campo input text della nostra bacheca inseriamo un url e lui trova l'informazione title e description.

Inoltre prima di postare il codice vi linko la pagina dove è presente il codice che sto postando qui in modo che possiate provare il tutto per capire meglio la cosa.

Il test lo trovate qui: http(//www(.)mmospot(.)it/urlinfoxml/ è una pagina solo di test che ho creato per l'occassione perchè non sto trovando una soluzione. Esaminando il codice di questa pagina potete esaminare la parte javascript e la chiamata ajax mentre per la parte in php è postata qualche riga più avanti.

Vi elenco alcuni url che potete provare che hanno il problema del charset ed altri che funzionano correttamenteper provare gli url fate copia e incolla nel campo di testo che trovate alla pagina di test che ho appena linkato)

Problema con la è accentata:
http(//www(.)youtube(.)com/watch?v=GgUDeQFDuF4&feature=relmfu
Questo addirittura rende il documento XML non valido
http(//www(.)youtube(.)com/watch?v=qBRwmT_LmK0
Corretto:
http(//www(.)youtube(.)com/watch?v=R_5TjL3RQHY&feature=relmfu
Corretto:
http(//www(.)youtube(.)com/watch?v=_xOWcdFOQyE&feature=related

per provare potete fare copia e incolla degli url, non scriveteli perchè il campo reagisce all'evento "onkeyup" e vi rallenterebbe.

Questo è il file get_url_info.php protagonista della chiamata ajax che restituisce un file XML

<?php
function file_get_contents_curl($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$url=addslashes($_POST['url']);
//trovo le informazioni relative all'url
$html = file_get_contents_curl($url);
//parsing begins here:
$doc = new DOMDocument();
@$doc->loadHTML($html);
$nodes = $doc->getElementsByTagName('title');
//get and display what you need:
$title = $nodes->item(0)->nodeValue;
$metas = $doc->getElementsByTagName('meta');
for ($i = 0; $i < $metas->length; $i++)
{
$meta = $metas->item($i);
if($meta->getAttribute('name') == 'description')
$description = $meta->getAttribute('content');
if($meta->getAttribute('name') == 'keywords')
$keywords = $meta->getAttribute('content');
}
if(strlen($title)==0){$title="Nessun titolo";}
if(strlen($description)==0){$description="Nessuna descrizione";}
header('Content-type: text/xml');
header('Pragma: public');
header('Cache-control: private');
header('Expires: -1');

$outstr.="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<informazioniurl>\n";
//genero il contenuto del file xml
$outstr.="\t<url>\n";
$outstr.="\t\t<title>".$title."</title>\n";
$outstr.="\t\t<description>".$description."</description>\n";
$outstr.="\t</url>\n";
$outstr.="</informazioniurl>\n";
echo $outstr;
?>
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Problemi con codifica UTF-8 PHP 2
N php problemi a visualizzare video PHP 3
T problemi con dati menu a tendina HTML e CSS 2
T problemi di connessione MySQL 2
M Upload immagine con javascript problemi con FormData() Javascript 1
F Problemi visualizzazione mappa Android studio Sviluppo app per Android 0
S Problemi Javascript + Aruba Javascript 2
A Problemi con move_uploaded_file PHP 7
M Problemi con la stampa dei valori in php PHP 1
L Problemi con il login PHP 2
L Problemi form Pagina php HTML e CSS 3
R Tutto su utf-8 ma ancora problemi con i caratteri speciali in mysql MySQL 1
Z problemi con foreach insert into PHP 10
B javascript per problemi con pdf e Safari Javascript 0
N Problemi kit videosorveglianza IP Cam e Videosorveglianza 0
M Problemi con creazione maschere Presentati al Forum 1
M Problemi con query a più tabelle PHP 3
R Problemi anomalo insermento in db PHP 9
S Problemi delle funzioni eliminate con PHP e MySQL PHP 4
S Problemi di un principiante PHP 3
M Problemi con blog Grav CMS (Content Management System) 0
F Problemi di visualizzazione di un sito su più browser WordPress 0
S Problemi di visualizzazione form contatti sito web HTML e CSS 2
S incoerenza di stampa. problemi con il magenta Photoshop 3
A problemi con paypall Java 1
A Problemi di accesso da remoto a Ipcam IP Cam e Videosorveglianza 5
michele81 [WordPress] problemi plug meteo api key WordPress 4
E Problemi in registrazione telecamere Dahua IP Cam e Videosorveglianza 6
S Problemi con modulo upload video php (help!) PHP 0
felino [Windows 8.1] Problemi con connessione WiFi Windows e Software 0
M [PHP] Problemi su inserimento array nel db PHP 7
E [PHP] problemi nuova riga con fwrite su piattaforma android PHP 5
M [PHP] Problemi di salvataggio su campo calcolato PHP 0
O [HTML] problemi con la regola "background-attachment: fixed" in EDGE HTML e CSS 0
M [PHP] Problemi con query unione PHP 11
M [PHP] Problemi con select PHP 6
Spown [WordPress] Problemi visualizzazione su più browser + voci menu in movimento WordPress 1
ANDREA20 [HTML] problemi con il footer HTML e CSS 1
D [MS Access] problemi con inserimento campo in una maschera MS Access 6
M [PHP] Problemi con il riconoscimento login. PHP 21
A [WordPress] problemi con xampp WordPress 2
M Problemi con database Apache/2.4.37 (Win32) OpenSSL/1.1.1a PHP/7.3.1 PHP 6
P Problemi comunicazioni Comunicazioni dallo Staff 8
G I problemi non vengono solo per nuocere Presentati al Forum 0
A Problemi Wi-Fi Fastweb Reti LAN e Wireless 4
C [WordPress] Url vulnerability e problemi sito da mobile WordPress 0
S [PHP] problemi con le sessioni PHP 3
B Problemi accesso Instagram Smartphone e tablet 1
T [PHP] problemi con il browser PHP 0
M [Flash] Problemi conversione formato swf Flash 20

Discussioni simili