92 $vowels =
'AEIOUYÄÖÜ';
94 $word = str_replace(
'ß',
'SS', $word);
96 $word = preg_replace(
'/([' . $vowels .
'])U([' . $vowels .
'])/',
"\\1u\\2", $word);
97 $word = preg_replace(
'/([' . $vowels .
'])Y([' . $vowels .
'])/',
"\\1y\\2", $word);
98 $word_len = mb_strlen($word);
103 while ( ($R1 < $word_len) && (mb_strpos($vowels, mb_substr($word, $R1, 1)) ===
false))
107 while ( ($R1 < $word_len) && (mb_strpos($vowels, mb_substr($word, $R1, 1)) !==
false))
119 while ( ($R2 < $word_len) && (mb_strpos($vowels, mb_substr($word, $R2, 1)) ===
false))
123 while ( ($R2 < $word_len) && (mb_strpos($vowels, mb_substr($word, $R2, 1)) !==
false))
139 $s_ending =
'BDFGHKLMNRT';
142 $st_ending =
'BDFGHKLMNT';
144 $word_r1 = mb_substr($word, $R1);
150 if (preg_match(
'/(ERN|EM|ER)$/', $word_r1, $match))
152 $word = mb_substr($word, 0, -mb_strlen($match[1]));
156 elseif (preg_match(
'/(ES|EN|E)$/', $word_r1, $match))
158 $word = mb_substr($word, 0, -mb_strlen($match[1]));
159 if (preg_match(
'/NISS$/', $word))
161 $word = mb_substr($word, 0, -1);
166 elseif (mb_substr($word_r1, -1) ==
'S' && preg_match(
'/[' . $s_ending .
']S$/', $word))
168 $word = mb_substr($word, 0, -1);
171 $word_r1 = mb_substr($word, $R1);
176 if (preg_match(
'/(EST|EN|ER)$/', $word_r1, $match))
178 $word = mb_substr($word, 0, -mb_strlen($match[1]));
181 elseif (preg_match(
'/ST$/', $word_r1) && preg_match(
'/.{3,}[' . $st_ending .
']ST$/', $word))
183 $word = mb_substr($word, 0, -2);
189 $word_r2 = mb_substr($word, $R2);
193 if (preg_match(
'/KEIT$/', $word_r2))
195 $word = mb_substr($word, 0, -4);
196 $word_r2 = mb_substr($word, $R2);
197 if (preg_match(
'/(LICH|IG)$/', $word_r2, $match))
199 $word = mb_substr($word, 0, -mb_strlen($match[1]));
205 elseif (preg_match(
'/(LICH|HEIT)$/', $word_r2))
207 $word = mb_substr($word, 0, -4);
208 $word_r1 = mb_substr($word, $R1);
209 if (preg_match(
'/(ER|EN)$/', $word_r1))
211 $word = mb_substr($word, 0, -2);
217 elseif (preg_match(
'/(END|UNG)$/', $word_r2))
219 $word = mb_substr($word, 0, -3);
220 $word_r2 = mb_substr($word, $R2);
221 if (preg_match(
'/(^|[^E])(IG)$/', $word_r2))
223 $word = mb_substr($word, 0, -2);
228 elseif (preg_match(
'/(^|[^E])(IG|IK|ISCH)$/', $word_r2, $match))
230 $word = mb_substr($word, 0, -mb_strlen($match[2]));
235 $word = str_replace([
'u',
'y',
'Ä',
'Ö',
'Ü'], [
'U',
'Y',
'A',
'O',
'U'], $word);
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)