![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 13.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam
tym razem mam wątpliwości co do tworzenia linków ze stringów zawierających np polskie znaki bądź inne symbole nie mogące pojawić sie w linku. czy jest jakaś funkcja albo już gotowy skrypt "robiący" coś takiego? na przykład chcę zamienić tekst Agencja Reklamowa - Łódź, Studio reklamy. Chcesz się dowiedzieć więcej? na agencja_reklamowa_lodz_studio_reklamy_chcesz_sie_dowiedziec_wiecej napisałem już cześć skryptu, ale po pierwsze tu tylko usuwa "złe" znaki, a po drugie wymyślenie i dopisanie wszystkich możliwości wydaje się być bardzo czasochłonne. Kod <?php
echo '<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">'; $tekst_old = 'Agencja Reklamowa - Łódź, Studio reklamy. Chcesz się dowiedzieć więcej?'; $bez = array("ą", "ć", "ę", "ł", "ń", "ó", "ś", "ź", "ż", "-", ","); $tekst_new = str_replace(' ','_',$tekst_old); $tekst_new = str_replace($bez,'',$tekst_new); echo $tekst_old; echo " "; echo $tekst_new; ?> |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 4 Dołączył: 9.10.2007 Skąd: Morąg Ostrzeżenie: (0%) ![]() ![]() |
A gdybys tak stworzyl taką tablice dwuwymiarowa:
$bez =Array ( [0] => Array ( [0] => ń [1] => n ) [1] => Array ( [0] => ą [1] => a ) itd.. ) i dalej $tekst_new = str_replace(' ','_',$tekst_old); for($i=0;$i<count($bez);$i++){ $tekst_new = str_replace($bez[i][0],$bez[i][1],$tekst_new); } wtedy kazdy nieprawidlowy znak zamienisz na prawidlowy! Nie wiem czy zadziala ale warto sprobowac. pozdr Ten post edytował gutek84 2.02.2008, 16:55:51 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
A gdybys tak stworzyl taką tablice dwuwymiarowa: Tak jest chyba prościej:
Tą tablicę zrobiłem kiedyś do zamiany polskich ogonków (w obydwu kodowaniach)... Nie wiem właśnie jak będzie z kodowaniem ale generalnie powinno działać... EDIT: no tak... :/ tak jak myślałem... forum rozwaliło kodowanie... Ten post edytował nowotny 2.02.2008, 17:49:03 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 13.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
dziękkuje uprzejmie zaispirowało mnie to to posukania dokłądniejszego w googlu już gotowych funkcji. Takową znalazłem i znmodyfikowałem na moje potrzeby
Kod <?php function przerobNalink($string) { $string = str_replace('Ľ','z',$string); $string = str_replace('¬','z',$string); $string = strtolower($string); $banned = array('www.','.pl','.com','.eu','.net','.org','http://'); $altern = array('','','','','','',''); $string = str_replace($banned, $altern, $string); $polskie = array(',', ' - ',' ','ę', 'Ę', 'ó', 'Ó', 'ˇ', '±', '¦', '¶', 'ł', 'Ł', 'ż', 'Ż', '¬', 'Ľ', 'ć', 'Ć', 'ń', 'Ń','-',"'","/","?", '"', ":", '!','.', '&', '&', '#', ';', '[',']', '(', ')', '`', '%', '"', '"', '.'); $miedzyn = array('_','_','_','e', 'e', 'o', 'o', 'a', 'a', 's', 's', 'l', 'l', 'z', 'z', 'z', 'z', 'c', 'c', 'n', 'n','_',"","","","","",'','_', '', '', '', '', '', '', '', '', '', '', ''); $string = str_replace($polskie, $miedzyn, $string); // usuń wszytko co jest niedozwolonym znakiem $string = preg_replace('/[^0-9a-z\_]+/', '', $string); // zredukuj liczbę my¶lników do jednego obok siebie $string = preg_replace('/[\_]+/', '_', $string); // usuwamy możliwe my¶lniki na pocz±tku i końcu $string = trim($string, '_'); $string = stripslashes($string); $koniec = strpos($string,_,40); if($koniec !== false) { $string = substr($string,0,$koniec); } // na wszelki wypadek $string = urlencode($string); return $string; } ?> co ciekawe nie działa zamiana liter ź na z i Ź na z w tablicy musialem zrobiś specjalnie 2 osobne wersy, taka oto ciekawostka. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 10:42 |