ugrás a tartalomhoz

karakterlánc: csak szám és betű

xeras · 2007. Dec. 2. (V), 17.47
sziasztok,

oldal nevéből ("Nyomtató akció!")
szeretnék url készíteni("nyomtato-akcio"), jelenleg itt tartok:

//url 1: minden kisbetű
//url 2: minden space legyen kötőjel
//url 3: egyéb jelek eltávolítása
//url 4: ékezetek eltávolítása

a 3. pontot nem tudom megcsinálni, erre kérnék ötletet!
az a lényeg, hogy szűrjön ki mindent, ami nem szám és nem betű,
pl: .?;%)(+" stb.

köszönöm szépen
 
1

Reguláris kifejezés

kicsy · 2007. Dec. 2. (V), 19.09
$uri = preg_replace("/[^a-z0-9-]/", "", $uri);
Az ékezeteket vagy ez előtt kell kicserélned, vagy a kifejezésbe még belevenni ezeket is.
Ezzel a sorrenddel viszont bent maradnak a szóközi kötőjelek is, alternatíva a [^a-z0-9 ] kifejezés, majd utána a szóközök cseréje kötőjelre.
2

"5ik" pont

razielanarki · 2007. Dec. 3. (H), 09.19
ne felejts el a végén trimmelni, és a fölös kötöjeleket összevonni

és nem tudom megállni :) úgyhogy bepostolom ide az enyémet (wordpressből nyúltam a regexeket)
function sanitize ($text)
{
        // ékezetek 
        $text = htmlentities ($text);
        $text = preg_replace ('/&([a-zA-Z])(uml|acute|grave|circ|tilde|cedil|ring);/', '\\1', $text);

        // wordpress alapokon :)
        $text = strtolower ($text);
        
        $text = preg_replace ('/&.+?;/',        '',  $text); // maradék entityk kinyírása
        $text = preg_replace ('/[^\w0-9 _-]/',  '-', $text); // minden betű, szám, space, kötőjel, aláhúzás marad, a többi - lesz
        $text = preg_replace ('/\s+/',          '-', $text); // whitespacekből itt lesz - 
        $text = preg_replace ('/-+/',           '-', $text); // kötőjelek összevonása

        $text = trim ($text, '-'); // és a trim

        return $text;
}
3

Már volt téma

vbence · 2007. Dec. 3. (H), 11.48
Itt:
http://weblabor.hu/forumok/temak/17300#comment-40720

leírtam a funkciót, amit én használok.
4

köszönet

xeras · 2007. Dec. 5. (Sze), 21.24
nagyon köszönöm mindenkinek a segítséget