воскресенье, 14 ноября 2010 г.

Web-программирование - получение кода страны для отображения флага по названию

При разработке веб-сервисов и сайтов иногда бывает необходимо отображать флаги стран (их изображения) по их названию. Для решения таких задач можно воспользоваться сервисом http://opencountrycodes.appspot.com/, который может отдавать их согласно стандарту ISO 3166-1 alpha-2. Примеры таких флагов можно найти и скачать в архиве на сайте famfamfam.com, где, например, для России есть файл ru.gif. Название файла "ru" и есть двухбуквенный код России (Russian Federation).

Приведенный ниже код на PHP будет получать с сервиса XML-данные и создавать на выходе файл country_code_names.php с массивом соответствий код=>страна $countrycodes, который можно инклюдить непосредственно или преобразовать в необходимый вид:


<?php

$xml = file_get_contents('http://opencountrycodes.appspot.com/xml/');
$xmlel = new SimpleXMLElement($xml);
$out = '$countrycodes'." = array(\n";
foreach ($xmlel->country as $country)
{
$code = strtolower($country['code']);
$out .= "'$code' => \"{$country['name']}\",\n";
}
$out .= ");";

file_put_contents('country_code_names.php', $out);

?>