jbroadway/urlify

一个快速的PHP短链接生成和转写库,用于将非ASCII字符转换为URL中使用的字符。

1.2.4-stable 2022-06-15 16:46 UTC

README

GitHub Workflow Status (branch) Packagist License Packagist Version Packagist PHP Version Support Packagist Downloads

一个快速的PHP短链接生成和转写库,最初是Django项目中的URLify.js的PHP端口。

它处理拉丁语系、阿拉伯语、阿塞拜疆语、保加利亚语、缅甸语、克罗地亚语、捷克语、丹麦语、世界语、爱沙尼亚语、芬兰语、法语、瑞士法语、奥地利法语、格鲁吉亚语、德语、瑞士德语、奥地利德语、希腊语、印地语、哈萨克语、拉脱维亚语、立陶宛语、挪威语、波斯语、波兰语、罗马尼亚语、俄语、瑞典语、塞尔维亚语、斯洛伐克语、土耳其语、乌克兰语和越南语等符号,以及许多其他语言通过 ASCII::to_transliterate()

无法转写的符号可以省略或替换为指定的字符。

安装

使用以下命令安装最新版本

$ composer require jbroadway/urlify

用法

首先,包含Composer的自动加载器

require_once 'vendor/autoload.php';

生成URL的短链接

<?php

echo URLify::slug (' J\'étudie le français ');
// "jetudie-le-francais"

echo URLify::slug ('Lo siento, no hablo español.');
// "lo-siento-no-hablo-espanol"

生成文件名的短链接

<?php

echo URLify::filter ('фото.jpg', 60, "", true);
// "foto.jpg"

简单转写字符

<?php

echo URLify::downcode ('J\'étudie le français');
// "J'etudie le francais"

echo URLify::downcode ('Lo siento, no hablo español.');
// "Lo siento, no hablo espanol."

/* Or use transliterate() alias: */

echo URLify::transliterate ('Lo siento, no hablo español.');
// "Lo siento, no hablo espanol."

扩展字符列表

<?php

URLify::add_chars ([
	'¿' => '?', '®' => '(r)', '¼' => '1/4',
	'½' => '1/2', '¾' => '3/4', '' => 'P'
]);

echo URLify::downcode ('¿ ® ¼ ¼ ¾ ¶');
// "? (r) 1/2 1/2 3/4 P"

扩展要移除的单词列表

<?php

URLify::remove_words (['remove', 'these', 'too']);

优先使用特定语言映射

<?php

echo URLify::filter ('Ägypten und Österreich besitzen wie üblich ein Übermaß an ähnlich öligen Attachés', 60, 'de');
// "aegypten-und-oesterreich-besitzen-wie-ueblich-ein-uebermass-aehnlich-oeligen-attaches"

echo URLify::filter ('Cağaloğlu, çalıştığı, müjde, lazım, mahkûm', 60, 'tr');
// "cagaloglu-calistigi-mujde-lazim-mahkum"

请注意,在第一种情况下,“ü”被转写为“ue”,而在后者中则简单地转写为“u”。