91 lines
2.2 KiB
Markdown
91 lines
2.2 KiB
Markdown
# URLify for PHP [](https://travis-ci.org/jbroadway/urlify)
|
||
|
||
A PHP port of [URLify.js](https://github.com/django/django/blob/master/django/contrib/admin/static/admin/js/urlify.js)
|
||
from the Django project. Handles symbols from Latin languages as well as Arabic, Azerbaijani, Czech, German, Greek, Kazakh,
|
||
Latvian, Lithuanian, Persian, Polish, Romanian, Bulgarian, Russian, Serbian, Turkish, Ukrainian, Vietnamese and Slovak. Symbols it cannot
|
||
transliterate it will simply omit.
|
||
|
||
## Installation
|
||
|
||
Install the latest version with:
|
||
|
||
```bash
|
||
$ composer require jbroadway/urlify
|
||
```
|
||
|
||
## Usage
|
||
|
||
To generate slugs for URLs:
|
||
|
||
```php
|
||
<?php
|
||
|
||
echo URLify::filter (' J\'étudie le français ');
|
||
// "jetudie-le-francais"
|
||
|
||
echo URLify::filter ('Lo siento, no hablo español.');
|
||
// "lo-siento-no-hablo-espanol"
|
||
```
|
||
|
||
To generate slugs for file names:
|
||
|
||
```php
|
||
<?php
|
||
|
||
echo URLify::filter ('фото.jpg', 60, "", true);
|
||
// "foto.jpg"
|
||
```
|
||
|
||
To simply transliterate characters:
|
||
|
||
```php
|
||
<?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."
|
||
```
|
||
|
||
To extend the character list:
|
||
|
||
```php
|
||
<?php
|
||
|
||
URLify::add_chars ([
|
||
'¿' => '?', '®' => '(r)', '¼' => '1/4',
|
||
'½' => '1/2', '¾' => '3/4', '¶' => 'P'
|
||
]);
|
||
|
||
echo URLify::downcode ('¿ ® ¼ ¼ ¾ ¶');
|
||
// "? (r) 1/2 1/2 3/4 P"
|
||
```
|
||
|
||
To extend the list of words to remove:
|
||
|
||
```php
|
||
<?php
|
||
|
||
URLify::remove_words (['remove', 'these', 'too']);
|
||
```
|
||
|
||
To prioritize a certain language map:
|
||
|
||
```php
|
||
<?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"
|
||
```
|
||
|
||
Please note that the "ü" is transliterated to "ue" in the first case, whereas it results in a simple "u" in the latter.
|