Autor Zpráva
nicmund
Profil
nevím jestli taková funkce existuje a pokud jo, tak nevím, pod čím bych jí měl hledat.
Tak tedy:

Potřeboval bych funkci, která přetransformuje text např. "Renault Megane 1,9TD s klimatizací" na "renault-megane-1,9TD-s-klimatizaci"

předem dík za odpovedi
Ssob
Profil
Jedine strtolower spolecne s strreplace. Ale to by bylo i TD malym.
nicmund
Profil
to vubec nevadi. dik za radu
jonge
Profil
nicmund
Tady ji máš:

<?php

function text2url($text) {
$text = mb_strtolower($text, "UTF-8");

$zmenit = array("xc3xa1"=>"a","xc3xa4"=>"a","xc4x8d"=>"c","xc4x8f"=>"d", "xc3xa9"=>"e","xc4x9b"=>"e","xc3xad"=>"i","xc4xbe"=>"l","xc4 xba"=>"l","xc5x88"=>"n","xc3xb3"=>"o","xc3xb6"=>"o","xc5x91"=> "o","xc3xb4"=>"o","xc5x99"=>"r","xc5x95"=>"r","xc5xa1"=>"s"," xc5xa5"=>"t","xc3xba"=>"u","xc5xaf"=>"u","xc3xbc"=>"u","xc5xb 1"=>"u","xc3xbd"=>"y","xc5xbe"=>"z");

$text = strtr($text, $zmenit);

$text = preg_replace("#[^-a-z0-9]#", "-", $text);
$text = preg_replace("#[-]+#", "-", $text);
$text = preg_replace("#[-]*$#", "", $text);
$text = preg_replace("#^[-]*#", "", $text);

return $text;
}
?>


Vznikne renault-megane-19td-s-klimatizaci. Pokud chceš, přidělej si tam čárky, já to ale nedoporučuji.
DJ Miky
Profil
Já jsem si na generování CoolURI napsal funkci:

function cooluri($uri) {
$nahradit=array('á','Á','č','Č','ď','Ď','é','É','ě','Ě','í','Í','ň',' Ň','ó','Ó','ř','Ř','š','Š','ť','Ť','ú','Ú','ů','Ů','ý','Ý','ž','Ž');
$nahrady=array( 'a','a','c','c','d','d','e','e','e','e','i','i','n','n','o','o','r','r ','s','s','t','t','u','u','u','u','y','y','z','z');
$cooluri=str_replace($nahradit,$nahrady,$uri);
$cooluri=strtolower($cooluri);
$cooluri=preg_replace('([^a-z0-9-]+)','-',$cooluri);
while(strpos($cooluri,'--')) $cooluri=str_replace('--','-',$cooluri);
while($cooluri{0}=='-') $cooluri=substr($cooluri,1);
while(substr($cooluri,-1)=='-') $cooluri=substr($cooluri,0,-1);
$cooluri=htmlspecialchars($cooluri);
$cooluri=urlencode($cooluri);
return $cooluri;
}

Nahradí diakritiku za znaky bez diakritiky, převede na malá písmena, nahradí všechny nealfabetické znaky bez pomlčku za pomlčku, odstraní zdvojené pomlčky a odstraní pomlčky na začátku nebo konci řetězce. Potom ještě pro jistotu zakóduje řetězec pro URI (urlencode())...

Kdyby někdo našel chybu, tak ji prosím napište, budu rád.
nicmund
Profil
oba příklady fungují. děkuji za ochotu
Toto téma je uzamčeno. Odpověď nelze zaslat.