Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Convert string to SEO-friendly form (lowercase hyphenated alphanumeric words)
<?php
/**
* Converts string to SEO-friendly form (lowercase hyphenated alphanumeric words)
*
* @param $string
* @return string
*/
function seoUrl($string)
{
// qv stackoverflow.com/questions/11330480, stackoverflow.com/questions/1017599
$src = 'àáâãäçèéêëìíîïñòóôõöøùúûüýÿßÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝ';
$rep = 'aaaaaceeeeiiiinoooooouuuuyysAAAAACEEEEIIIINOOOOOOUUUUY';
// strip off accents (assuming utf8 PHP - note strtr() requires single-byte)
$string = strtr(utf8_decode($string), utf8_decode($src), $rep);
// convert to lower case
$string = strtolower($string);
// strip all but alphanumeric, whitespace, dot, underscore, hyphen
$string = preg_replace("/[^a-z0-9\s._-]/", "", $string);
// merge multiple consecutive whitespaces, dots, underscores, hyphens
$string = preg_replace("/[\s._-]+/", " ", $string);
// convert whitespaces to hyphens
$string = preg_replace("/[\s]/", "-", $string);
return $string;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.