更改并显示数组中的元素

时间:2014-03-06 09:52:01

标签: php arrays preg-match

我有这个awstat文件列出国家/地区代码以及访问和点击次数:

# Domain - Pages - Hits - Bandwidth
BEGIN_DOMAIN 1
ua 245 245 970690 
us 90 647 10311747 
cn 27 27 106974 
ru 25 26 99953 
gb 12 82 1155179 
fr 7 7 41230 
kr 4 4 15848 
de 4 15 211641 
in 3 15 234340 
ph 2 2 7924 
lv 2 2 0 
ro 2 2 13856 
il 1 1 3962 
dk 1 1 3962 
vn 1 1 3962 
nl 1 1 3962 
lt 1 1 3962 
ca 0 1 20264 
END_DOMAIN

我正在尝试将其提取并按国家/地区的网页显示来显示,所以我尝试了这个:

preg_match("/BEGIN_DOMAIN(.*)END_DOMAIN/is", $awstats, $matches);
$country = $matches[0] ; 
awstats_extract_country($country) ;

调用函数awstats_extract_country($country)

function awstats_extract_country($country)
{   
    $country = explode("\n", $country) ; 
    unset($country[(count($country)-1)]) ; 
    unset($country[0]) ; 
    foreach ($country as $key => $value)
    $country[$key] = explode(" ", $value) ; 

    //print_array($sider);
    $fields = array(

        0 => "Country" ,
        1 => "Pages" ,
        2 => "Hits" ,
        3 => "Bandwidth" ,
    ) ; 
    echo '<div id="collapse_awstats_extract_sider" class="accordion-body collapse in">';
        echo '<div class="accordion-inner">';
            print_table($country, $fields); 
        echo '</div>';
    echo '</div>';
}

但它显示我的国家缩写就像在文件中有一种方式我可以用国家名称显示它们,我的意思是ua ==&gt; UKRAINE等等,就像这里http://www.iso.org/iso/fr/french_country_names_and_code_elements.htm

一样

非常感谢

1 个答案:

答案 0 :(得分:2)

AFAIK没有内置函数可以将2个字母的国家/地区代码转换为国家/地区名称,因此您必须创建一个查找表(使用数组或数据库),如this question in stackoverflow