Skip to content

Instantly share code, notes, and snippets.

@pixelbart
Last active November 6, 2015 16:50
Show Gist options
  • Save pixelbart/ad997abf003cbb2e177c to your computer and use it in GitHub Desktop.
Save pixelbart/ad997abf003cbb2e177c to your computer and use it in GitHub Desktop.
PHP: Better URLs and slugs
<?php
/**
* From "That is a nice and cool title!" to "that-is-a-nice-and-cool-title"
*/
function betterSlug($text, $strict = false)
{
$text = html_entity_decode($text, ENT_QUOTES, 'UTF-8');
// replace non letter or digits by -
$text = preg_replace('~[^\\pL\d.]+~u', '-', $text);
// trim
$text = trim($text, '-');
setlocale(LC_CTYPE, 'en_GB.utf8');
// transliterate
if (function_exists('iconv')) {
$text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);
}
// lowercase
$text = strtolower($text);
// remove unwanted characters
$text = preg_replace('~[^-\w.]+~', '', $text);
if (empty($text)) {
return 'empty_$';
}
if ($strict) {
$text = str_replace(".", "_", $text);
}
return $text;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment