File tree Expand file tree Collapse file tree 1 file changed +9
-14
lines changed
Expand file tree Collapse file tree 1 file changed +9
-14
lines changed Original file line number Diff line number Diff line change @@ -81,34 +81,29 @@ public function ascii(array $rules = []): self
8181 $ s = $ str ->string ;
8282 $ str ->string = '' ;
8383
84- if (!$ rules ) {
85- $ rules [] = '[:nonspacing mark:] remove ' ;
86- }
87-
88- array_unshift ($ rules , 'nfd ' );
89-
9084 if (\function_exists ('transliterator_transliterate ' )) {
85+ array_unshift ($ rules , 'nfd ' );
9186 $ rules [] = 'any-latin/bgn ' ;
9287 $ rules [] = 'nfkd ' ;
93- $ rules [] = '[:nonspacing mark:] remove ' ;
88+ } else {
89+ array_unshift ($ rules , 'nfkd ' );
9490 }
9591
92+ $ rules [] = '[:nonspacing mark:] remove ' ;
93+
9694 while (\strlen ($ s ) - 1 > $ i = strspn ($ s , self ::ASCII )) {
9795 if (0 < --$ i ) {
9896 $ str ->string .= substr ($ s , 0 , $ i );
9997 $ s = substr ($ s , $ i );
10098 }
10199
102- if ($ rules && !$ rule = array_shift ($ rules )) {
100+ if (!$ rule = array_shift ($ rules )) {
103101 $ rules = []; // An empty rule interrupts the next ones
104102 }
105103
106- if ($ rules && $ rule ) {
107- if ($ rule instanceof \Transliterator) {
108- $ s = $ rule ->transliterate ($ s );
109- continue ;
110- }
111-
104+ if ($ rule instanceof \Transliterator) {
105+ $ s = $ rule ->transliterate ($ s );
106+ } elseif ($ rule ) {
112107 if ('nfd ' === $ rule = strtolower ($ rule )) {
113108 normalizer_is_normalized ($ s , self ::NFD ) ?: $ s = normalizer_normalize ($ s , self ::NFD );
114109 } elseif ('nfkd ' === $ rule ) {
You can’t perform that action at this time.
0 commit comments