Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Strip php variable, replace white spaces with dashes

Tags:

php

How can I convert a PHP variable from "My company & My Name" to "my-company-my-name"?

I need to make it all lowercase, remove all special characters and replace spaces with dashes.

like image 319
Rob Avatar asked Jul 04 '12 13:07

Rob


3 Answers

This function will create an SEO friendly string

function seoUrl($string) {
    //Lower case everything
    $string = strtolower($string);
    //Make alphanumeric (removes all other characters)
    $string = preg_replace("/[^a-z0-9_\s-]/", "", $string);
    //Clean up multiple dashes or whitespaces
    $string = preg_replace("/[\s-]+/", " ", $string);
    //Convert whitespaces and underscore to dash
    $string = preg_replace("/[\s_]/", "-", $string);
    return $string;
}

should be fine :)

like image 152
rorypicko Avatar answered Nov 03 '22 01:11

rorypicko


Yop, and if you want to handle any special characters you'll need to declare them in the pattern, otherwise they may get flushed out. You may do it that way:

strtolower(preg_replace('/-+/', '-', preg_replace('/[^\wáéíóú]/', '-', $string)));
like image 26
Pierre Voisin Avatar answered Nov 03 '22 00:11

Pierre Voisin


Replacing specific characters: http://se.php.net/manual/en/function.str-replace.php

Example:

function replaceAll($text) { 
    $text = strtolower(htmlentities($text)); 
    $text = str_replace(get_html_translation_table(), "-", $text);
    $text = str_replace(" ", "-", $text);
    $text = preg_replace("/[-]+/i", "-", $text);
    return $text;
}
like image 9
NoLifeKing Avatar answered Nov 03 '22 00:11

NoLifeKing