Skocz do zawartości

Mod_rewrite a polskie znaki


Mlody

Rekomendowane odpowiedzi

Mam otóż taki problem - mam skrypt forum który zamienia "brzydkie" linki php na html np. takie t20-znalazłeś-błąd-zgłoś.html ale jak wiadomo

przeglądarki nie lubią polskich czcionek w adresie i wtedy pojawia się strasznie brzydki adres - /t20-znalaz%C5%82e%C5%9B-b%...%82o%C5%9B.html.

Kod za zmianę linków to:

<?php
function makeurl($type, $id, $name) {
# Type must be "f" for forum, "t" for topic or "p" for post
# ID is the id of the content wanted
# Name is the title of the category or topic


$words = explode(" ", $name);
$url;
foreach ($words as $word) {
	if(strlen($word) > 3)
		$url .= '-' . $word;
}
$url = strtr($url,'/ABCDEFGHIJKLMNOPRSTWZXY:','-abcdefghijklmnoprstwzxy-');
$url = urlencode($type . $id . $url . ".html");

return $url;
}
?>

W nim zrobiłem aby zamieniał duże litery na małe ale nie wiem jak zrobić aby zamieniał linki z ogonkami na linki bez ogonków oraz żeby zamieniał nawiasy na "-" (myślniki-kreski).

Wszystkich za pomoc wielkie dzięki.

Pozdrawiam.

Odnośnik do komentarza
Udostępnij na innych stronach

/**
* Create URL Title
*
* Takes a "title" string as input and creates a
* human-friendly URL string with either a dash
* or an underscore as the word separator.
*
* @access	public
* @param	string	the string
* @param	string	the separator: dash, or underscore
* @return	string
*/
function url_title($str, $separator = 'dash')
{
if ($separator == 'dash')
{
	$search		= '_';
	$replace	= '-';
}
else
{
	$search		= '-';
	$replace	= '_';
}

$replace_pairs = array(
'ę' => 'e',
'ó' => 'o',
'ą' => 'a',
'ś' => 's',
'ł' => 'l',
'ż' => 'z',
'ź' => 'z',
'ć' => 'c',
'ń' => 'n',
'Ę' => 'e',
'Ó' => 'o',
'Ą' => 'a',
'Ś' => 's',
'Ł' => 'l',
'Ż' => 'z',
'Ź' => 'z',
'Ć' => 'c',
'Ń' => 'n'
);
$str = strtr($str, $replace_pairs);

$trans = array(
				$search								=> $replace,
				"\s+"								=> $replace,
				"[^a-z0-9".$replace."]"				=> '',
				$replace."+"						=> $replace,
				$replace."$"						=> '',
				"^".$replace						=> ''
			   );

$str = strip_tags(strtolower($str));

foreach ($trans as $key => $val)
{
	$str = preg_replace("#".$key."#", $val, $str);
}

return trim(stripslashes($str));
}

Odnośnik do komentarza
Udostępnij na innych stronach

Czy ja wiem czy to wędka jak dla mnie to tylko "haczyk" a samym haczykiem ryby się nie złapie potrzebne jest jeszcze wiele osprzętu tak samo tutaj podałeś kod może i ok ale zadaptowanie do moich potrzeb nie jest jakieś super bo to tak jak miał bym ja sam kombinować a już kombinowałem kilka dni i nic nie chce działać ...

Moja strona jest na UTF-8 i myślę, że tutaj jest utrudnienie że takie zwyczajna zamiana jak np.

$url = strtr($url,'/ABCDEFGHIJKLMNOPRSTWZXY:ąęść','-abcdefghijklmnoprstwzxy-aesc');
Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności