Change locale to fr_FR.UTF-8
[platal.git] / upgrade / 0.9.14 / geoloc.utf8.php
1 #!/usr/bin/php5
2 <?php
3
4 require_once 'connect.db.inc.php';
5
6 function is_utf8($s)
7 {
8 return @iconv('utf-8', 'utf-8', $s) == $s;
9 }
10
11 $tables = array ('city', 'city_in_maps', 'maps', 'pays', 'region');
12 XDB::execute("SET NAMES 'latin1'");
13 foreach ($tables as $table) {
14 $res = XDB::query("SELECT * FROM geoloc_$table");
15 if (!$res) {
16 echo "$table\n";
17 continue;
18 }
19 $all = $res->fetchAllAssoc();
20 foreach ($all as &$array) {
21 $from = array();
22 $to = array();
23 foreach ($array as $key=>$value) {
24 $from[] = $key . '="' . mysql_real_escape_string($value) . '"';
25 $valued = utf8_decode($value);
26 if (is_utf8($value) && $valued != $value) {
27 $to[] = $key . '="' . mysql_real_escape_string($valued) .'"';
28 }
29 }
30 if (!empty($to)) {
31 $to = implode(', ', $to);
32 $from = implode(' AND ', $from);
33 $sql = "UPDATE geoloc_$table SET $to WHERE $from";
34 if (!XDB::execute($sql)) {
35 echo "Echec : $sql\n";
36 }
37 }
38 }
39 }
40
41 ?>