Forum dla administratorów stron WWW i developerów

Witaj!

AdminZone.pl to miejsce w którym możesz dowiedzieć się jak szybko i skutecznie wypromować swoją stronę WWW, zachęcić użytkowników do wypowiadania się i aktywnego udziału w życiu takiej strony.
Dołącz do naszej społeczności aby w pełni korzystać z usług oferowanych przez AdminZone.pl
Zaloguj się
lub
Zarejestruj się
 
Awatar użytkownika
Macsch15
Administrator
Posty: 1968
Rejestracja: 10 sie 2012, 16:12
Lokalizacja: Polska
Kontaktowanie:

[Poradnik] Polskie znaki w linkach/domenach

Autor tematu

28 sie 2012, 13:49

Naprawianie parsera URL z linkami które mają polskie znaki w sobie.

Najpierw otwieramy plik functions.php i zmieniany jego kodowanie na UTF-8 bez BOM.

Następnie odnajdujemy funkcję
function get_preg_expression($mode)


I w niej kod:
        case 'url':
        case 'url_inline':
            $inline = ($mode == 'url') ? ')' : '';
            $scheme = ($mode == 'url') ? '[a-z\d+\-.]' : '[a-z\d+]'; // avoid automatic parsing of "word" in "last word.http://..."
            // generated with regex generation file in the develop folder
            return "[a-z]$scheme*:/{2}(?:(?:[a-zA-Z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})+|[0-9.]+|\[[a-z0-9.]+:[a-z0-9.]+:[a-z0-9.:]+\])(?::\d*)?(?:/(?:[a-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?";
        break;

Zamieniamy go na:
        case 'url':
        case 'url_inline':
            $inline = ($mode == 'url') ? ')' : '';
            $scheme = ($mode == 'url') ? '[a-z\d+\-.]' : '[a-z\d+]'; // avoid automatic parsing of "word" in "last word.http://..."
            // generated with regex generation file in the develop folder
            return "[a-z]$scheme*:/{2}(?:(?:[ęóąśłżźćńĘÓĄŚŁŻŹĆŃa-zA-Z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})+|[0-9.]+|\[[a-z0-9.]+:[a-z0-9.]+:[a-z0-9.:]+\])(?::\d*)?(?:/(?:[ęóąśłżźćńĘÓĄŚŁŻŹĆŃa-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?";
        break

Przed zmianą, generowany url dla adresu forów.pl:
<!-- m --><a class="postlink" target="_blank" href="http://www.for">http://www.for</a><!-- m -->ów.pl

Po zmianie:
<!-- m --><a class="postlink" target="_blank" href="http://www.forów.pl">http://www.forów.pl</a><!-- m -->

<!-- m --><a class="postlink" target="_blank" href="http://forów.pl/ówdzie.żób">http://forów.pl/ówdzie.żób</a><!-- m -->


:)


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 6 gości