[php] Redukcja wyrazów

Witam. Mam problem z redukcją wyrazów. M.in. takie zdanie “GP Chin: Trening 1 - Ferrari na czele (akt.)” chcę zamienić na takie “gp_chin_trening_1___ferrari_na_czele_akt”. Przydatne mi to jest do przyjaznych linków i m.in. w pliku .htaccess to działa w kod wygląda tak:

RewriteRule ^news-([0-9]+)-([a-z0-9_]+)\.html$ news.php?readmore=$1&titlenews=$2 [L]

Niestety nie wiem jak to przerobić do php by działało identycznie jak to. Próbowałem wielu sposobów i każdy kończył się albo nie wyświetleniem niczego, ale wyświetlenie identycznego hasła jakie chce zmienić.

function nopl($src){

$src=mb_strtolower($src,'utf-8');

$src = iconv('utf-8','ascii//translit',$src);

$src=preg_replace('/[^a-z0-9 _-]+/si','',$src);

$src=preg_replace('/[_-]+/i','_',$src);

return $src;

}



$test='GP Chin: Trening 1 - Ferrari na czele (akt.)';


echo nopl($test);
49 echo "

\n"; 50 function nopl($src){ 51 $src=mb_strtolower($src,‘utf-8’);

Zmień nazwę funkcji, gdyż ta zostało już zdeklarowana.

Zmieniłem na taką, której na pewno nie ma i ten sam błąd.

a może byś tak wkleił cały kod a nie tylko 3 linijki ? :expressionless:

Proszę Cię bardzo: link

Paskudny kod, jednak poważniejszych błędów w nim nie widzę.

Jeżeli więc sypie ci jakieś błędy, to pewnie wcześniej dołączasz jakieś pliki poprzez include/require …albo ten właśnie plik dołączasz do innego.

-tutaj szukał bym powodu.

Poza tym, tą funkcję lepiej przenieść na sam początek.

$tekst = 'GP Chin: Trening 1 - Ferrari na czele (akt.)';


function tralalala($txt){

$txt = str_replace(' ','_',$txt);

$txt = str_replace('(','',$txt);

$txt = str_replace(')','',$txt);

$txt = str_replace('.','',$txt);

return $txt;

}


echo 'Tekst bez przeróbek: '.$tekst;

echo '
';

echo 'Tekst po przeróbkach: '.tralalala($tekst);