@@ -28,7 +28,7 @@ function utf8ize($mixed) {
2828 //$db = new mysqli($tmdbt_mysql["url"], $tmdbt_mysql["user"], $tmdbt_mysql["pass"], $tmdbt_mysql["db"]); Used for tests or for database maintanance
2929
3030 $ db ->query ("SET sql_mode=''; " );
31- mysqli_set_charset ("utf8 " );
31+ mysqli_set_charset ("utf8 " , $ db );
3232
3333
3434 //Used for list api
@@ -51,5 +51,131 @@ function utf8ize($mixed) {
5151 $ ignoredIds = "1 " ;
5252 }
5353 }
54+
55+ function clean_title ($ title ) {
56+ $ title = strtolower ($ title );
57+ $ title = str_replace ("ä " , "ae " , $ title );
58+ $ title = str_replace ("ö " , "oe " , $ title );
59+ $ title = str_replace ("ß " , "ss " , $ title );
60+ $ title = str_replace ("ü " , "ue " , $ title );
61+ $ title = remove_accents ( $ title );
62+ $ title = preg_replace ("/((?:\b|_)(?<!^)(a(?!$)|an|the|and|or|of)(?:\b|_))|\W|_/ " , "" , $ title );
63+ return $ title ;
64+ }
65+
66+ function echo_plural ($ noun , $ number , $ append = "s " ) {
67+ if ($ number == 1 ) {
68+ echo $ number . " " . $ noun ;
69+ } else {
70+ echo $ number . " " . $ noun . $ append ;
71+ }
72+ }
73+
74+
75+ function remove_accents ($ string ) {
76+ if ( !preg_match ('/[\x80-\xff]/ ' , $ string ) )
77+ return $ string ;
78+
79+ $ chars = array (
80+ // Decompositions for Latin-1 Supplement
81+ chr (195 ).chr (128 ) => 'A ' , chr (195 ).chr (129 ) => 'A ' ,
82+ chr (195 ).chr (130 ) => 'A ' , chr (195 ).chr (131 ) => 'A ' ,
83+ chr (195 ).chr (132 ) => 'A ' , chr (195 ).chr (133 ) => 'A ' ,
84+ chr (195 ).chr (135 ) => 'C ' , chr (195 ).chr (136 ) => 'E ' ,
85+ chr (195 ).chr (137 ) => 'E ' , chr (195 ).chr (138 ) => 'E ' ,
86+ chr (195 ).chr (139 ) => 'E ' , chr (195 ).chr (140 ) => 'I ' ,
87+ chr (195 ).chr (141 ) => 'I ' , chr (195 ).chr (142 ) => 'I ' ,
88+ chr (195 ).chr (143 ) => 'I ' , chr (195 ).chr (145 ) => 'N ' ,
89+ chr (195 ).chr (146 ) => 'O ' , chr (195 ).chr (147 ) => 'O ' ,
90+ chr (195 ).chr (148 ) => 'O ' , chr (195 ).chr (149 ) => 'O ' ,
91+ chr (195 ).chr (150 ) => 'O ' , chr (195 ).chr (153 ) => 'U ' ,
92+ chr (195 ).chr (154 ) => 'U ' , chr (195 ).chr (155 ) => 'U ' ,
93+ chr (195 ).chr (156 ) => 'U ' , chr (195 ).chr (157 ) => 'Y ' ,
94+ chr (195 ).chr (159 ) => 's ' , chr (195 ).chr (160 ) => 'a ' ,
95+ chr (195 ).chr (161 ) => 'a ' , chr (195 ).chr (162 ) => 'a ' ,
96+ chr (195 ).chr (163 ) => 'a ' , chr (195 ).chr (164 ) => 'a ' ,
97+ chr (195 ).chr (165 ) => 'a ' , chr (195 ).chr (167 ) => 'c ' ,
98+ chr (195 ).chr (168 ) => 'e ' , chr (195 ).chr (169 ) => 'e ' ,
99+ chr (195 ).chr (170 ) => 'e ' , chr (195 ).chr (171 ) => 'e ' ,
100+ chr (195 ).chr (172 ) => 'i ' , chr (195 ).chr (173 ) => 'i ' ,
101+ chr (195 ).chr (174 ) => 'i ' , chr (195 ).chr (175 ) => 'i ' ,
102+ chr (195 ).chr (177 ) => 'n ' , chr (195 ).chr (178 ) => 'o ' ,
103+ chr (195 ).chr (179 ) => 'o ' , chr (195 ).chr (180 ) => 'o ' ,
104+ chr (195 ).chr (181 ) => 'o ' , chr (195 ).chr (182 ) => 'o ' ,
105+ chr (195 ).chr (182 ) => 'o ' , chr (195 ).chr (185 ) => 'u ' ,
106+ chr (195 ).chr (186 ) => 'u ' , chr (195 ).chr (187 ) => 'u ' ,
107+ chr (195 ).chr (188 ) => 'u ' , chr (195 ).chr (189 ) => 'y ' ,
108+ chr (195 ).chr (191 ) => 'y ' ,
109+ // Decompositions for Latin Extended-A
110+ chr (196 ).chr (128 ) => 'A ' , chr (196 ).chr (129 ) => 'a ' ,
111+ chr (196 ).chr (130 ) => 'A ' , chr (196 ).chr (131 ) => 'a ' ,
112+ chr (196 ).chr (132 ) => 'A ' , chr (196 ).chr (133 ) => 'a ' ,
113+ chr (196 ).chr (134 ) => 'C ' , chr (196 ).chr (135 ) => 'c ' ,
114+ chr (196 ).chr (136 ) => 'C ' , chr (196 ).chr (137 ) => 'c ' ,
115+ chr (196 ).chr (138 ) => 'C ' , chr (196 ).chr (139 ) => 'c ' ,
116+ chr (196 ).chr (140 ) => 'C ' , chr (196 ).chr (141 ) => 'c ' ,
117+ chr (196 ).chr (142 ) => 'D ' , chr (196 ).chr (143 ) => 'd ' ,
118+ chr (196 ).chr (144 ) => 'D ' , chr (196 ).chr (145 ) => 'd ' ,
119+ chr (196 ).chr (146 ) => 'E ' , chr (196 ).chr (147 ) => 'e ' ,
120+ chr (196 ).chr (148 ) => 'E ' , chr (196 ).chr (149 ) => 'e ' ,
121+ chr (196 ).chr (150 ) => 'E ' , chr (196 ).chr (151 ) => 'e ' ,
122+ chr (196 ).chr (152 ) => 'E ' , chr (196 ).chr (153 ) => 'e ' ,
123+ chr (196 ).chr (154 ) => 'E ' , chr (196 ).chr (155 ) => 'e ' ,
124+ chr (196 ).chr (156 ) => 'G ' , chr (196 ).chr (157 ) => 'g ' ,
125+ chr (196 ).chr (158 ) => 'G ' , chr (196 ).chr (159 ) => 'g ' ,
126+ chr (196 ).chr (160 ) => 'G ' , chr (196 ).chr (161 ) => 'g ' ,
127+ chr (196 ).chr (162 ) => 'G ' , chr (196 ).chr (163 ) => 'g ' ,
128+ chr (196 ).chr (164 ) => 'H ' , chr (196 ).chr (165 ) => 'h ' ,
129+ chr (196 ).chr (166 ) => 'H ' , chr (196 ).chr (167 ) => 'h ' ,
130+ chr (196 ).chr (168 ) => 'I ' , chr (196 ).chr (169 ) => 'i ' ,
131+ chr (196 ).chr (170 ) => 'I ' , chr (196 ).chr (171 ) => 'i ' ,
132+ chr (196 ).chr (172 ) => 'I ' , chr (196 ).chr (173 ) => 'i ' ,
133+ chr (196 ).chr (174 ) => 'I ' , chr (196 ).chr (175 ) => 'i ' ,
134+ chr (196 ).chr (176 ) => 'I ' , chr (196 ).chr (177 ) => 'i ' ,
135+ chr (196 ).chr (178 ) => 'IJ ' ,chr (196 ).chr (179 ) => 'ij ' ,
136+ chr (196 ).chr (180 ) => 'J ' , chr (196 ).chr (181 ) => 'j ' ,
137+ chr (196 ).chr (182 ) => 'K ' , chr (196 ).chr (183 ) => 'k ' ,
138+ chr (196 ).chr (184 ) => 'k ' , chr (196 ).chr (185 ) => 'L ' ,
139+ chr (196 ).chr (186 ) => 'l ' , chr (196 ).chr (187 ) => 'L ' ,
140+ chr (196 ).chr (188 ) => 'l ' , chr (196 ).chr (189 ) => 'L ' ,
141+ chr (196 ).chr (190 ) => 'l ' , chr (196 ).chr (191 ) => 'L ' ,
142+ chr (197 ).chr (128 ) => 'l ' , chr (197 ).chr (129 ) => 'L ' ,
143+ chr (197 ).chr (130 ) => 'l ' , chr (197 ).chr (131 ) => 'N ' ,
144+ chr (197 ).chr (132 ) => 'n ' , chr (197 ).chr (133 ) => 'N ' ,
145+ chr (197 ).chr (134 ) => 'n ' , chr (197 ).chr (135 ) => 'N ' ,
146+ chr (197 ).chr (136 ) => 'n ' , chr (197 ).chr (137 ) => 'N ' ,
147+ chr (197 ).chr (138 ) => 'n ' , chr (197 ).chr (139 ) => 'N ' ,
148+ chr (197 ).chr (140 ) => 'O ' , chr (197 ).chr (141 ) => 'o ' ,
149+ chr (197 ).chr (142 ) => 'O ' , chr (197 ).chr (143 ) => 'o ' ,
150+ chr (197 ).chr (144 ) => 'O ' , chr (197 ).chr (145 ) => 'o ' ,
151+ chr (197 ).chr (146 ) => 'OE ' ,chr (197 ).chr (147 ) => 'oe ' ,
152+ chr (197 ).chr (148 ) => 'R ' ,chr (197 ).chr (149 ) => 'r ' ,
153+ chr (197 ).chr (150 ) => 'R ' ,chr (197 ).chr (151 ) => 'r ' ,
154+ chr (197 ).chr (152 ) => 'R ' ,chr (197 ).chr (153 ) => 'r ' ,
155+ chr (197 ).chr (154 ) => 'S ' ,chr (197 ).chr (155 ) => 's ' ,
156+ chr (197 ).chr (156 ) => 'S ' ,chr (197 ).chr (157 ) => 's ' ,
157+ chr (197 ).chr (158 ) => 'S ' ,chr (197 ).chr (159 ) => 's ' ,
158+ chr (197 ).chr (160 ) => 'S ' , chr (197 ).chr (161 ) => 's ' ,
159+ chr (197 ).chr (162 ) => 'T ' , chr (197 ).chr (163 ) => 't ' ,
160+ chr (197 ).chr (164 ) => 'T ' , chr (197 ).chr (165 ) => 't ' ,
161+ chr (197 ).chr (166 ) => 'T ' , chr (197 ).chr (167 ) => 't ' ,
162+ chr (197 ).chr (168 ) => 'U ' , chr (197 ).chr (169 ) => 'u ' ,
163+ chr (197 ).chr (170 ) => 'U ' , chr (197 ).chr (171 ) => 'u ' ,
164+ chr (197 ).chr (172 ) => 'U ' , chr (197 ).chr (173 ) => 'u ' ,
165+ chr (197 ).chr (174 ) => 'U ' , chr (197 ).chr (175 ) => 'u ' ,
166+ chr (197 ).chr (176 ) => 'U ' , chr (197 ).chr (177 ) => 'u ' ,
167+ chr (197 ).chr (178 ) => 'U ' , chr (197 ).chr (179 ) => 'u ' ,
168+ chr (197 ).chr (180 ) => 'W ' , chr (197 ).chr (181 ) => 'w ' ,
169+ chr (197 ).chr (182 ) => 'Y ' , chr (197 ).chr (183 ) => 'y ' ,
170+ chr (197 ).chr (184 ) => 'Y ' , chr (197 ).chr (185 ) => 'Z ' ,
171+ chr (197 ).chr (186 ) => 'z ' , chr (197 ).chr (187 ) => 'Z ' ,
172+ chr (197 ).chr (188 ) => 'z ' , chr (197 ).chr (189 ) => 'Z ' ,
173+ chr (197 ).chr (190 ) => 'z ' , chr (197 ).chr (191 ) => 's '
174+ );
175+
176+ $ string = strtr ($ string , $ chars );
177+
178+ return $ string ;
179+ }
54180
55181 ?>
0 commit comments