Download 
 
 
  
  
 
 
  
? URLify
Description
Convert any string into an valid and readable string for usage in the url. 
This is a PHP port of "URLify.js" from the Django project + fallback via "Portable ASCII".
We handles symbols from many languages via an matching-array and others via "ASCII::to_transliterate()". 
- 
https://github.com/django/django/blob/master/django/contrib/admin/static/admin/js/urlify.js
 
- 
https://github.com/voku/portable-ascii
 
- 
https://github.com/voku/portable-utf8
 
 
Install via "composer require"
composer require voku/urlify
 
Usage:
namespace: "voku\helper\URLify" 
To generate slugs for URLs:
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"
 
To generate slugs for file names:
echo URLify::filter('????.jpg', 60, '', true);
// "foto.jpg"
 
To simply transliterate characters:
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."
 
To extend the character list:
URLify::add_chars(array(
  '¿' => '?', '®' => '(r)', '¼' => '1/4',
  '½' => '1/2', '¾' => '3/4', '¶' => 'P'
));
echo URLify::downcode('¿ ® ½ ¼ ¾ ¶');
// "? (r) 1/2 1/4 3/4 P"
 
To extend or replace the default replacing list:
URLify::add_array_to_seperator(array(
  "/®/"
));
echo URLify::filter('¿ ® ½ ¼ ¾ ¶');
// "12-14-34-P"
 
To extend the list of words to remove for one language:
URLify::remove_words(array('remove', 'these', 'too'), 'de');
 
To prioritize a certain language map:
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"
 Please note that the "ü" is transliterated to "ue" in the first case, whereas it results in a simple "u" in the latter. 
Available languages
- 
Arabic: 'ar'
 
- 
Austrian (German): 'de_at' 
 
- 
Austrian (French): 'fr_at'
 
- 
Azerbaijani: 'az'
 
- 
Bulgarian: 'bg'
 
- 
Burmese: 'by'
 
- 
Croatian: 'hr'
 
- 
Czech: 'cs'
 
- 
Danish: 'da'
 
- 
English: 'en'
 
- 
Esperanto: 'eo'
 
- 
Estonian: 'et'
 
- 
Finnish: 'fi'
 
- 
French: 'fr'
 
- 
Georgian: 'ka'
 
- 
German: 'de'
 
- 
Greek: 'el' 
 
- 
Hindi: 'hi'
 
- 
Hungarian: 'hu'
 
- 
Kazakh: 'kk'
 
- 
Latvian: 'lv'
 
- 
Lithuanian: 'lt'
 
- 
Norwegian: 'no'
 
- 
Polish: 'pl'
 
- 
Romanian: 'ro'
 
- 
Russian: 'ru'
 
- 
Serbian: 'sr'
 
- 
Slovak: 'sk'
 
- 
Swedish: 'sv'
 
- 
Switzerland (German): 'de_ch' 
 
- 
Switzerland (French): 'fr_ch' 
 
- 
Turkish: 'tr'
 
- 
Ukrainian: 'uk'
 
- 
Vietnamese: 'vn'
 
 
Support
For support and donations please visit Github | Issues | PayPal | Patreon. 
For status updates and release announcements please visit Releases | Twitter | Patreon. 
For professional support please contact me. 
Thanks
- 
Thanks to GitHub (Microsoft) for hosting the code and a good infrastructure including Issues-Managment, etc.
 
- 
Thanks to IntelliJ as they make the best IDEs for PHP and they gave me an open source license for PhpStorm!
 
- 
Thanks to Travis CI for being the most awesome, easiest continous integration tool out there!
 
- 
Thanks to StyleCI for the simple but powerfull code style check.
 
- 
Thanks to PHPStan && Psalm for relly great Static analysis tools and for discover bugs in the code!
 
 
 |