jonasraoni/marc-to-iso

PHP映射从MARC代码/国家到ISO 3166-1 alpha-2格式,反之亦然。

1.0.0 2021-07-17 07:32 UTC

This package is auto-updated.

Last update: 2024-09-17 14:39:05 UTC


README

PHP映射从MARC代码/国家到ISO 3166-1 alpha-2格式,反之亦然。

使用方法

安装包

composer require jonasraoni/marc-to-iso

该包提供4个独立的映射(仅为了减少加载到内存中的冗余数据量)

选择适合您需求的一个,并调用静态方法get,它可能返回正确的映射或null(如果无效)。

use JonasRaoni\MarcToIso\IsoToMarcCode;

echo 'US = ' . IsoToMarcCode::get('US');

数据生成

要重新生成类,请确保已更新子模块,然后调用generate.php脚本(包含类模板、手动映射等),它将覆盖现有类。

过程很简单,一个国家通用列表及其相应的MARC代码与完整的MARC代码列表进行匹配,剩余未匹配的条目则手动映射。

数据源

故意删除了已弃用的MARC代码,因为其中一些可能指向不再存在的国家,因此不属于ISO标准。

let rows = ['code;name'];
for(const tr of [...$$('table:nth-of-type(1) tbody tr')].slice(1)) {
    const code = tr.querySelectorAll('td')[0].innerText;
    const name = tr.querySelectorAll('td')[1].innerText;
    if (!code.includes('-')) // deprecated
        rows.push(code.replace('-', '') + ',' + tr.querySelectorAll('td')[1].innerText);
}
copy(rows.join('\n'));