Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]zmiana polskich znaków w permalinku
Forum PHP.pl > Forum > Przedszkole
bethebest
mam taka funkcje do zmiany tytulu danego artykulu na PERMALINKA. Czyli jesli jest tytuł "Zo¶ka poszła spać" to zmmienia na zoska-poszla-spac. Problem tkwi w tym, że nie wiem jak zmienić litery ę¶±ć itp na esac itp . $result = preg_replace('/¶/', ' s', $result); nnie działa;/

public function getStrippedTitle()
{



$result = strtolower($this->getTitle());

// strip all non word chars
$result = preg_replace('/\W/', ' ', $result);


// replace all white space sections with a dash
$result = preg_replace('/\ +/', '-', $result);

// trim dashes
$result = preg_replace('/\-$/', '', $result);
$result = preg_replace('/^\-/', '', $result);





return $result;
}
.radex
$result = str_replace('ś', 's', $result);

i tak z pozostałymi.

btw. Jaki to ma związek z frameworkami?
bethebest
a to akurat z przykladu z tutoriala symfony, nie dziala, w pasku przegladarki wyskakuja krzaczki np %E% itp
.radex
działa, tylko Ľle to robisz.

Kod
public function getStrippedTitle()
{



$result = strtolower($this->getTitle());

// strip all non word chars
$result = preg_replace('/\W/', ' ', $result);


// replace all white space sections with a dash
$result = preg_replace('/\ +/', '-', $result);

// trim dashes
$result = preg_replace('/\-$/', '', $result);
$result = preg_replace('/^\-/', '', $result);

$result = str_replace('¶', 's', $result);
$result = str_replace('ę', 'e', $result);
$result = str_replace('±', 'a', $result);

// tutaj pozostałe pozamieniaj.

return $result;
}
bethebest
dziala ale jesli ta funkcje co zamienia znak np ś na dam na sam poczatek wtedy zamieni tylko ś, czyli
$result = str_replace('ś', 's', $result);
$result = str_replace('ę', 'e', $result);
to z wyrazu święty, zamieni tylko ś a ę bedzie krzeczkowate...



znalazlem rozwiazanie:


$polskie = array('ą','ć','ę','ł','ń','ó','ś','ź','ż','Ą','Ć','Ę','Ł','Ń','Ó','Ś','Ź','Ż');
$zmienione = array('a','c','e','l','n','o','s','z','z','A','C','E','L','N','O','S','Z','Z');

$result = str_replace($polskie, $zmienione, $result);



tak zadziala prawidlowo pozdrawiam:)
To jest wersja lo-fi głównej zawarto¶ci. Aby zobaczyć pełn± wersję z większ± zawarto¶ci±, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.