Bonjour à tous,
J'essaie de faire un script qui traduit un texte grâce à Google Traduction.
Malheureusement, j'ai un petit problème: l'accentuation semble posé problème... Pourtant, je travaille en UTF-8, Google aussi ... J'ai essayé de travailler ma page en iso-8859-15, le problème est plus ou moins similaire une fois qu'on joue avec utf8_encode/decode. J'ai aussi essayé de jouer avec utf8_encode/decode et mb_convert sur la version ut8 de la page. Je me suis dit que le problème venait peut être de l'utilisation du DomDocument, alors j'ai essayé avec file_get_contents mais je n'ai toujours pas réussi à résoudre le problème.
Pour être plus clair, voici le code:
Une autre version avec des comments de diverses possibilités que j'ai essayé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>TEST 01</title> <link rel="stylesheet" type="text/css" title="Design" href="css/design.css" /> </head> <body><p> <?php $from= "fr"; $to = "en"; $source = "url:http://www.tv5.org/TV5Site/info/afp_article.php?idrub=15&xml=newsmlmmd.2f8b5b227cce71fce5efb88778a3bbd7.201.xml [tok] Pâte d'arachide contaminée aux USA: ouverture d'une enquête criminelle [tok] Le ministère américain de la Justice et l'Agence de réglementation de l'alimentation (FDA) ont ouvert une enquête criminelle dans l'affaire de la vaste intoxication alimentaire à la pâte d'arachide contaminée aux salmonelles, a indiqué vendredi un porte-parole de la FDA."; $new_url = 'http://translate.google.com/translate_t?langpair='.$from.'%7C'.$to.'&text='.urlencode($source).'#'; $doc = new DOmDocument; if(@$doc->loadHTMLFile($new_url)) { $h1 = $doc->getElementsByTagName("h1"); $child = $h1->item(0); while ($child) { if($child->nodeName=='form') { $div = $child->getElementsByTagName("div"); for ($i = 0; $i < $div->length; $i++) { if($div->item($i)->getAttribute('id') == 'result_box') { $tnl = $div->item($i)->nodeValue; } } } $child = $child->nextSibling; } $content = explode(" [tok] ", $tnl); print_r($content); } ?></p> </body> </html>
J'ai beau cherché, je comprends pas... Je m'en remets à vous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15"> <title>TEST 02</title> <link rel="stylesheet" type="text/css" title="Design" href="css/design.css" /> </head> <body> <?php $from= "fr"; $to = "en"; $source = "url:http://www.tv5.org/TV5Site/info/afp_article.php?idrub=15&xml=newsmlmmd.2f8b5b227cce71fce5efb88778a3bbd7.201.xml [tok] Pâte d'arachide contaminée aux USA: ouverture d'une enquête criminelle [tok] Le ministère américain de la Justice et l'Agence de réglementation de l'alimentation (FDA) ont ouvert une enquête criminelle dans l'affaire de la vaste intoxication alimentaire à la pâte d'arachide contaminée aux salmonelles, a indiqué vendredi un porte-parole de la FDA."; echo $source.'<br />'; $new_url = 'http://translate.google.com/translate_t?langpair='.$from.'%7C'.$to.'&text='.urlencode($source).'#'; echo $new_url; /*$doc = new DOmDocument; if(@$doc->loadHTMLFile($new_url)) { $h1 = $doc->getElementsByTagName("h1"); $child = $h1->item(0); while ($child) { if($child->nodeName=='form') { $div = $child->getElementsByTagName("div"); for ($i = 0; $i < $div->length; $i++) { if($div->item($i)->getAttribute('id') == 'result_box') { $tnl = $div->item($i)->nodeValue; } } } $child = $child->nextSibling; } $tnl = mb_convert_encoding($tnl, 'ISO-8859-15', 'UTF-8'); $content = explode(" [tok] ", $tnl); print_r($content); }*/ $tmp = file_get_contents($new_url); //$tmp = mb_convert_encoding($tmp, 'ISO-8859-1', 'UTF-8'); /*$begin = strpos($tmp, '<div id=result_box dir="ltr">') + 29; $end = strpos($tmp, '<', $begin) - $begin; $tmp = substr($tmp, $begin, $end);*/ print_r($tmp); ?> </body> </html>
Partager