voku/urlify

Django 项目中 URLify.js 的 PHP 版本。用于将非 ASCII 字符转换为 URL 中的使用。


README

Build Status Coverage Status Codacy Badge Latest Stable Version Total Downloads License Donate to this project using Paypal Donate to this project using Patreon

🔗 URLify

描述

将任何字符串转换为在 URL 中有效且可读的字符串。

这是一个 Django 项目中 "URLify.js" 的 PHP 版本,并通过 "Portable ASCII" 提供后备。我们通过匹配数组处理许多语言的符号,通过 "ASCII::to_transliterate()" 处理其他符号。

通过 "composer require" 安装

composer require voku/urlify

使用

命名空间: "voku\helper\URLify"

生成 URL 的缩略词

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

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

生成文件名的缩略词

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

简单转写字符

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."

扩展字符列表

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

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

扩展或替换默认替换列表

URLify::add_array_to_seperator(array(
  "/®/"
));

echo URLify::filter('¿ ® ½ ¼ ¾ ¶');
// "12-14-34-P"

扩展一个语言的单词移除列表

URLify::remove_words(array('remove', 'these', 'too'), 'de');

优先某个语言映射

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"。

可用语言

  • 阿拉伯语: 'ar'
  • 奥地利(德语): 'de_at'
  • 奥地利(法语): 'fr_at'
  • 阿塞拜疆语: 'az'
  • 保加利亚语: 'bg'
  • 缅甸语: 'by'
  • 克罗地亚语: 'hr'
  • 捷克语: 'cs'
  • 丹麦语: 'da'
  • 英语: 'en'
  • 世界语: 'eo'
  • 爱沙尼亚语: 'et'
  • 芬兰语: 'fi'
  • 法语: 'fr'
  • 格鲁吉亚语: 'ka'
  • 德语: 'de'
  • 希腊语: 'el'
  • 印地语: 'hi'
  • 匈牙利语: 'hu'
  • 哈萨克语: 'kk'
  • 拉脱维亚语: 'lv'
  • 立陶宛语: 'lt'
  • 挪威语: 'no'
  • 波兰语: 'pl'
  • 罗马尼亚语: 'ro'
  • 俄语: 'ru'
  • 塞尔维亚语: 'sr'
  • 斯洛伐克语: 'sk'
  • 瑞典语: 'sv'
  • 瑞士(德语): 'de_ch'
  • 瑞士(法语): 'fr_ch'
  • 土耳其语: 'tr'
  • 乌克兰语: 'uk'
  • 越南语: 'vn'

支持

请访问 Github | 问题 | PayPal | Patreon 以获取支持和捐赠。

请访问 发布 | Twitter | Patreon 以获取状态更新和发布公告。

如需专业支持,请联系

感谢

  • 感谢 GitHub(微软)提供代码托管和良好的基础设施,包括问题管理等。
  • 感谢 IntelliJ,因为他们提供了最好的 PHP IDE,并且给了我 PhpStorm 的开源许可!
  • 感谢 Travis CI,它是最好的、最简单的持续集成工具!
  • 感谢 StyleCI 提供简单但强大的代码风格检查。
  • 感谢 PHPStanPsalm 提供非常出色的静态分析工具,并发现了代码中的错误!