Autor Zpráva
Pojišťovák
Profil
Dobrý den, mám v jednom zdrojáku tuto funkci:

# if anyone can help with international translations please correct the file and upload
function strip($convert_me) {
$strip_array = array("'",chr(33),chr(34),chr(35),chr(36),chr(37),chr(38),chr(39),chr(4 0),chr(41),chr(42),chr(43),chr(44),chr(45),chr(46),chr(47),chr(58),chr (59),chr(60),chr(61),chr(62),chr(63),chr(91),chr(92),chr(93),chr(94),c hr(95),chr(96),chr(123),chr(124),chr(125),chr(126) );
$convert_me = str_replace($strip_array, '', $convert_me);
$convert_me = str_replace(array(' ', ' ', '__', '--'), '-', $convert_me);
$convert_me = strtolower($convert_me);
return $convert_me;
}

Chápu to dobře, že tato funkce umí přepsat například "č" na "c", "š" na "s" a podobně? Jestli ano, v jakém tvaru tam mám dopsat tyto znaky?
Díky za každou pomoc, PHP mi moc nejde.
rabbit
Profil
A co takhle čtení manuálu? ;-)
Popisy funkcí:
string chr ( int ascii )
a ještě důležitější str_replace ( string needle, string str, string haystack [, int &count] )
... hlavně by tě mohlo zajímat následující:
Pokud jsou parametry search a replace pole, funkce str_replace() bere hodnoty těchto polí a používá je pro vyhledávání a nahrazení v parametru subject. Pokud má parametr replace méně hodnot než parametr search, tak se pro chybějící hodnoty použije prázdný řetězec. Pokud je parametr search pole a parametr replace je řetězec, tak se tento řetězec použije pro každou hodnotu parametru search.
Pojišťovák
Profil
No vidíš, já doteď netušil že chr je funkce...jdu se na to podívat, díky za odkaz..snad to zvládnu...
rabbit
Profil
Hele, ty tu funkci chr() ani nepotřebuješ ... ta funkce strip($convert_me) ve skutečnosti ty znaky zadané v poli $strip_array (pomocí ascii kódu a funkce chr()) maže. Poznáš to podle toho, že v řádku
$convert_me = str_replace($strip_array, '', $convert_me); 

je druhý argument funkce str_replace prázdný řetězec (ty dva apostrofy).

Co vlastně potřebuješ ty? Nahradit č za c atp.?
Pojišťovák
Profil
Ano, jde o to, že tahle funkce má z URL dostat znaky co tam nepatří. Byl bych vděčný kdybys mi ukázal jak to tam dostat, já v tom plavu až to hezký není:-((
rabbit
Profil
Tak ty znaky, co jsou v tom poli $strip_array, jsou tyto (snad se to tu zobrazí):
'
!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
:
;
<
=
>
?
[
\
]
^
_
`
{
|
}
~


což je asi i dobře, že se odstraní.

Pokud chceš odstranit české znaky, vlož si před řádek obsahující return $convert_me;:


$zamen_znaky = array( 'á', 'č', 'ď', 'é', 'ě' );
$za_znaky = array( 'a', 'c', 'd', 'e', 'e' );
$convert_me = str_replace($zamen_znaky, $za_znaky, $convert_me);


Nevypisoval jsem ti všechny české znaky, doplnit si to snad zvládneš. Stačí malá písmena, předchozí funkce strtolower() ti ten řetězec už zkonvertovala na pouze malá písmena.
Pojišťovák
Profil
Ok, díky moc, jdu to vyzkoušet..aspoň mám do rána co dělat..dám pak vědět:-)
Pojišťovák
Profil
Tak jsem z toho nějak vedle....Když tam dám to co jsi mi napsal, tak nic..
Když ale upravím řádek: $convert_me = str_replace(array(' ', ' ', '__', '--'), '-', $convert_me); třeba ma $convert_me = str_replace(array(' ', ' ', '__', '--'), 'a', $convert_me); tak to opravdu vymění pomlčku za a..ale jinak to proste nefunguje...
mig
Profil *

<?php
$text ="Příliš žluťoučký kůň úpěl ďábelské ódy, PŘÍLIŠ ŽLUŤOUČKÝ KŮŇ ÚPĚL ĎÁBELSKÉ ÓDY";

function odstran_diakritiku ($vstup)
{
$vystup = StrTr($vstup, "áäčďéěëíľňóöôŕřšťúůüýžÁÄČĎÉĚËÍĽŇÓÖÔŘŔŠŤÚŮÜÝŽ", "aacdeeeilnooorrstuuuyzAACDEEELINOOORRSTUUUYZ");
return $vystup;
}

$vysledek = odstran_diakritiku ($text);
echo $vysledek;

?>
krteczek
Profil

function seo_uri($uri, $maxlength = false, $separator = "-")
{
$uri = strtolower(trim($uri));
$hemzy = Array("á" => "a", "ä" => "a", "ă" => "a", "č" => "c", "ç" => "c", "ď" => "d", "đ" => "d",
"é" => "e", "ë" => "e", "ě" => "e", "ę" => "e", "i" => "i", "í" => "i", "ĺ" => "l",
"ľ" => "l", "ł" => "l", "ň" => "n", "ó" => "o", "ö" => "o", "ř" => "r", "Š" => 's',
"š" => "s", "ť" => "t", "ú" => "u", "ů" => "u", "Ů" => "u", "Ú" => "u","Ü" => "u", "ü" => "u", "ý" => "y", "ž" => "z",
"Á" => "a", "Ä" => "a", "Â" => "a", "Ă" => "a", "Ä" => "a", "Č" => "c", "Ď" => "d", "É" => "e", "Ě" => "e",
"Ë" => "e", "Î" => "i", "Í" => "i", "Ł" => "l", "Ą" => "a", "Ś" => "s","Ý" => "y",
"Ť" => "t", "Ž" => "z", "Ş" => "s", "Ż" => "z", "ą" => "a", "ş" => "s",
"Ľ" => "l", "ľ" => "l", "ż" => "z", "Ŕ" => "r", "Ĺ" => "l", "Ć" => "c", "Ç" => "c",
"Č" => "c", "Ę" => "e", "Ë" => "e", "Í" => "i", "Ě" => "e", "Ď" => "d", "Đ" => "d",
"Ń" => "n", "Ň" => "n", "Ó" => "o", "Ô" => "o", "Ö" => "o", "Ř" => "r", "ń" => "n","&amp;" =>"-", "&" => "-",
"ő" => "o", "ű" => "u", "ţ" => "t", "ý" => "y",":" => "-", '.' =>"-", ',' => "-", "\t" => " ",
"'" => "-", '"' => "-", "!" => "-", '\\' => "");
$uri = strtr($uri, $hemzy);
$uri = preg_replace("/(\.)|(\.){1,}|(\|)|(\|){1,}|(\+){1,}|(\%){1,}|(\*){1,}| (\?)|(\?){1,}/", "", $uri);
$uri = preg_replace("/(.*)\-$/", "\\1",$uri);
//$uri=trim($uri);
$casti=explode(" ",$uri);
$uri = implode($separator, $casti);
$uri=preg_replace("/(-){2,}/","-",$uri);
$uri = preg_replace("/^(-)(.*)$/","\\2", $uri);
if ($maxlength !== false && is_int($maxlength) && $maxlength < strlen($uri))
{
$uri = substr($uri, 0, $maxlength);
$uri = substr($uri, 0, strrpos($uri, $separator));
}
return $uri;
}
Toto téma je uzamčeno. Odpověď nelze zaslat.

0