Mysql make slug function

WBOY
リリース: 2016-06-01 13:08:02
オリジナル
1041 人が閲覧しました

New update on slugify

DROP FUNCTION IF EXISTS `slugify`;DELIMITER ;;CREATE DEFINER=CURRENT_USERFUNCTION `slugify`(dirty_string varchar(200))RETURNS varchar(200) CHARSET latin1DETERMINISTICBEGIN	DECLARE x, y , z, i Int;	Declare temp_string, allowed_chars, new_string VarChar(200);	Declare is_allowed Bool;	Declare c, check_char VarChar(1);	set i = 0;	set allowed_chars = "abcdefghijklmnopqrstuvwxyz0123456789-";	set temp_string = LOWER(dirty_string);	Select temp_string Regexp('&') Into x;	If x = 1 Then		Set temp_string = replace(temp_string, '&', ' and ');	End If;	Select temp_string Regexp('[^a-z0-9]+') into x;	If x = 1 then		set z = 1;		While z  1 Do			If Strcmp(SubString(temp_string, -1, 1), '-') = 0 Then				Set temp_string = Substring(temp_string,1, y-1);				Set y = y - 1;			Else				Leave Dash_check;			End If;			Set z = z - 1;		End While;	End If;	Repeat		Select temp_string Regexp("--") into x;		If x = 1 Then			Set temp_string = Replace(temp_string, "--", "-");		End If;	Until x  1 End Repeat;	If LOCATE('-', temp_string) = 1 Then		Set temp_string = SUBSTRING(temp_string, 2);	End If;SELECT COUNT(*) INTO i FROM fanpage WHERE slug LIKE CONCAT(temp_string,'%');If i > 0 Then	Set temp_string = CONCAT(temp_string,'-',i+1);End If;Return temp_string;END;;DELIMITER ;
ログイン後にコピー

P.S: change “fanpage” to your own table – this is to prevent duplicate on slug

credit goes to http://nastyhabit.wordpress.com/2008/09/25/mysql-slug-maker-function-aka-the-slugifier/

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート