Pereiti prie turinio

Padekite pakoreguoti php


Rekomenduojami pranešimai

Yra darbas php programuotojui.

 

Reikia sia funkcija pertvarkyti taip, kad nuoroda rodytu taip:

www.puslapis.lt/graži-diena-šia-vasarą.html

arba taip:

www.puslapis.lt/grazi-diena-sia-vasara.html

 

Nuorodoje neturi buti sio zenklo "/"

 

Su sita funkcija nuoroda atrodo: www.puslapis.lt/grai-diena-ia-vasar.html

------------------------------------------------

function RemoveBadURLChars($str)

{

return preg_replace("/[^0-9a-zA-Z]+/", "-", $str);

}

-------------------------------------------------

Ka sioje funkcijoje reikia dadeti ar pakeisti, kad url atrodytu taip: www.puslapis.lt/graži-diena-šia-vasarą.html

Ir butinai, kad zenklas "/" nebutu rodomas (Pasitaiko sraipsiu pavadinimuose).

 

Jei yra ismananciu prasau padeti.

Parasykite vis funkcija aiskiai kaip turi but, kad man tik copy paste butu, nes as is vis zalias ant programavimo.

 

Dekui.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aš naudoju tokią:

function raw($string,$space="-") {
if (function_exists('iconv')) {
	  $string = @iconv('UTF-8', 'ASCII//TRANSLIT', $string);
}
$string = preg_replace("/[^a-zA-Z0-9 -]/", "", $string);
$string = strtolower($string);
$string = str_replace(" ", $space, $string);
return $string;
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aurimas, jei tu naudoji tai nereiskia kad visuose scriptuose taip pat :)

 

 

funkcija turetu atrodyti mazdaug taip:

 

function RemoveBadURLChars($str)
{
$str = preg_replace("/[^0-9a-zA-Z]+/", "-", $str);
$str = stripslashes($str);
return $str;
}

 

aisku žšė ir kitu raidziu vistiek nerodys, tam reikia encodinti faila i UTF formata.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Aurimas, jei tu naudoji tai nereiskia kad visuose scriptuose taip pat :)

 

 

funkcija turetu atrodyti mazdaug taip:

 

function RemoveBadURLChars($str)
{
$str = preg_replace("/[^0-9a-zA-Z]+/", "-", $str);
$str = stripslashes($str);
return $str;
}

 

aisku žšė ir kitu raidziu vistiek nerodys, tam reikia encodinti faila i UTF formata.

 

tai ko tu cia rasai nesamones? aiskiai parase kad reikia lt raidziu

Nuoroda į pranešimą
Dalintis kituose puslapiuose
ko cia keli bangas? As parasiau kad nebutu / pries kabutes

 

Namų darbų užduotis: pratestuok visas tris funkcijas.

 

Namų darbų užduoties atsakymas:

Ir temos autoriaus ir mano pateiktos funkcijos slešus naikino, taigi tavoji darė tą patį, tik kažkodėl dar kvietė papildomą funkciją, taigi resursų atžvilgiu žiūrint: vienas bereikalingas funkcijos kvietimas + vienas bereikalingas prisikabinimas prie manęs. Neekonomiška. (Mano funkcija irgi truputį bereikalingų dalykų turi, tai, ta proga, pasiekonomininau - iš klaidų mokomės)

 

Redagavo Aurimas
Nuoroda į pranešimą
Dalintis kituose puslapiuose
Namų darbų užduotis: pratestuok visas tris funkcijas.

 

Namų darbų užduoties atsakymas:

Ir temos autoriaus ir mano pateiktos funkcijos slešus naikino, taigi tavoji darė tą patį, tik kažkodėl dar kvietė papildomą funkciją, taigi resursų atžvilgiu žiūrint: vienas bereikalingas funkcijos kvietimas + vienas bereikalingas prisikabinimas prie manęs. Neekonomiška. (Mano funkcija irgi truputį bereikalingų dalykų turi, tai, ta proga, pasiekonomininau - iš klaidų mokomės)

 

 

"Ka sioje funkcijoje reikia dadeti ar pakeisti, kad url atrodytu taip: www.puslapis.lt/graži-diena-šia-vasarą.html

Ir butinai, kad zenklas "/" nebutu rodomas"

 

pagal sita parasyma supratau kad jam rodo.

Redagavo EuRoMAN
Nuoroda į pranešimą
Dalintis kituose puslapiuose
function lt($x)

{

$lt = array('ą','č','ę','ė','į','š','ų','ū','ž','Ą','Č','Ę','Ė','Į','Š','Ų','Ū','Ž');

$en = array('a','c','e','e','i','s','u','u','z','A','C','E','E','I','S','U','U','Z');

 

for($i=0; $i<count($lt); $i++){

$x = str_replace($lt[$i], $en[$i], $x);

}

 

return $x;

}

 

Su notepad++ failui nustatyk:

Format-> Encode in UTF-8 without BOM

 

P.S. Cia f-ja kad pakeistu ą į a, ė į e...

Redagavo crezzyman
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Geras, bet nežinau, kiek šiuo atveju tinkantis snippet'as:

function RemoveBadURLChars($str) {
return filter_var($str, FILTER_SANITIZE_URL);
}

 

Yra darbas php programuotojui.

Šiaip jei yra darbas, įprasta, kad ir atlygis būt turi. Išnaudotojai :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose
function lt($x)
{
$lt = array('ą','č','ę','ė','į','š','ų','ū','ž','Ą','Č','Ę','Ė','Į','Š','Ų','Ū','Ž');
$en = array('a','c','e','e','i','s','u','u','z','A','C','E','E','I','S','U','U','Z');

for($i=0; $i<count($lt); $i++){
$x = str_replace($lt[$i], $en[$i], $x);
}

return $x;
}

 

Su notepad++ failui nustatyk:

Format-> Encode in UTF-8 without BOM

 

 

Galima ir be ciklo tai padaryt. Panaudojant vietoj str_replace strtr funkcija.

 

<?php

function normalize ($string) {
$table = array(
	'Š'=>'S', 'š'=>'s', 'Đ'=>'Dj', 'đ'=>'dj', 'Ž'=>'Z', 'ž'=>'z', 'Č'=>'C', 'č'=>'c', 'Ć'=>'C', 'ć'=>'c',
	'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E',
	'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O',
	'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss',
	'à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a', 'å'=>'a', 'æ'=>'a', 'ç'=>'c', 'è'=>'e', 'é'=>'e',
	'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o',
	'ô'=>'o', 'õ'=>'o', 'ö'=>'o', 'ø'=>'o', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ý'=>'y', 'ý'=>'y', 'þ'=>'b',
	'ÿ'=>'y', 'Ŕ'=>'R', 'ŕ'=>'r',
);

return strtr($string, $table);
}

?>

 

Tam paciam php.net radau pavyzduka prie tos funkcijos. :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Geras, bet nežinau, kiek šiuo atveju tinkantis snippet'as:

function RemoveBadURLChars($str) {
    return filter_var($str, FILTER_SANITIZE_URL);
}

 

Dėkui už funkciją - paprasčiau bus validuot email/url, bet šiuo atveju ji netinka:

 

 

Remove all characters except letters, digits and !#$%&'*+-/=?^_`{|}~@.[].

 

Nebijokit naudot: http://lt2.php.net/manual/en/function.iconv.php (žr. mano funkciją ankstesnėj žinutėj) - nereikės apsirašinėt masyvių masyvų su simbolių keitimais.

 

 

 

Galima ir be ciklo tai padaryt. Panaudojant vietoj str_replace strtr funkcija.

 

Tik papildau, kad tai pačiai str_replace funkcijai galima perduot masyvus, o ne po vieną elementą.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...