centralnic-reseller/idn-converter

PHP 库,用于将域名从 IDN 正确转换为 Punycode,反之亦然,还提供 TR46 处理。

v1.0.4 2024-07-25 16:32 UTC

This package is auto-updated.

Last update: 2024-09-12 03:25:37 UTC


README

IDN 转换 PHP 库提供了一种简单高效的方法,用于在 PHP 应用程序中将国际化域名(IDN)转换为 Punycode 格式,反之亦然。通过 ConverterFactory 类,开发者可以无缝地处理 Unicode 和 Punycode 格式之间的域名字符串转换,确保在不同系统之间的一致性和兼容性。

主要功能

  • 轻松地将域名字符串转换为 Unicode 和 Punycode 格式。
  • 支持单个域名字符串的转换,以及多个域名的批量转换。
  • 直观的 API,提供易于使用的域名转换方法。
  • 全面的 API 文档,易于集成和使用。

开始使用:通过 Composer 安装库,并按照 README 中的使用示例开始高效地在 PHP 项目中转换域名字符串。

安装

您可以通过 Composer 安装 IDN 转换 PHP 库。在您的终端中运行以下命令

composer require centralnic-reseller/idn-converter

用例

  • 域名转换:在不同系统之间确保兼容性和一致性,将域名字符串在 Unicode 和 Punycode 格式之间进行转换。

用法

1. 将域名字符串转换为 Unicode

<?php

use CNIC\IDNA\Factory\ConverterFactory;

// Convert a domain string to Unicode format
$domain = "example.com";
$unicodeDomain = ConverterFactory::toUnicode($domain);
echo "Unicode Domain: $unicodeDomain\n";

2. 将域名字符串转换为 Punycode

<?php

use CNIC\IDNA\Factory\ConverterFactory;

// Convert a domain string to Punycode format
$unicodeDomain = "example.com";
$punycodeDomain = ConverterFactory::toASCII($unicodeDomain);
echo "Punycode Domain: $punycodeDomain\n";

3. 转换多个域名字符串

<?php

use CNIC\IDNA\Factory\ConverterFactory;

// Convert multiple domain strings to Unicode and Punycode formats
$domains = ["example.com", "münchen.de", "рф.ru"];
$convertedDomains = ConverterFactory::convert($domains);
foreach ($convertedDomains as $domain) {
    echo "Unicode Domain: {$domain['IDN']}, Punycode Domain: {$domain['PUNYCODE']}\n";
}

API 文档

### `ConverterFactory::toUnicode($keyword, $options = [])`

Converts a domain string to Unicode format.

- **Parameters:**
  - `$keyword` (string): The domain string to convert.
  - `$options` (array): Additional options for the conversion process (optional).
- **Returns:** The converted domain in Unicode format, or `false` if the keyword is empty.

### `ConverterFactory::toASCII($keyword, $options = [])`

Converts a domain string to Punycode format.

- **Parameters:**
  - `$keyword` (string): The domain string to convert.
  - `$options` (array): Additional options for the conversion process (optional).
- **Returns:** The converted domain in Punycode format, or `false` if the keyword is empty.

许可证:此库根据 MIT 许可证分发,允许灵活使用和修改。