Skip to content

Instantly share code, notes, and snippets.

@B1-0S
Forked from meSingh/make_slug.php
Created November 15, 2015 22:20
Show Gist options
  • Save B1-0S/32e75ed0a84ae4c8ddbc to your computer and use it in GitHub Desktop.
Save B1-0S/32e75ed0a84ae4c8ddbc to your computer and use it in GitHub Desktop.
Create WordPress like slugs from any string in php.
<?php
/**
*
* Genrate Slugs from Title or any given string
*
* @param string $str
* @return Slug
*
**/
public function make_slug($str)
{
if($str !== mb_convert_encoding( mb_convert_encoding($str, 'UTF-32', 'UTF-8'), 'UTF-8', 'UTF-32') )
$str = mb_convert_encoding($str, 'UTF-8', mb_detect_encoding($str));
$str = htmlentities($str, ENT_NOQUOTES, 'UTF-8');
$str = preg_replace('`&([a-z]{1,2})(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig);`i', '\\1', $str);
$str = html_entity_decode($str, ENT_NOQUOTES, 'UTF-8');
$str = preg_replace(array('`[^a-z0-9]`i','`[-]+`'), '-', $str);
$str = strtolower( trim($str, '-') );
$str = substr($str, 0, 100);
return $str;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment