Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Jak stworzyc funkcję przerabiającć nazwę artykułu tak, aby mozliwe było stworzenie pliku o takiej nazwie., chodzi o usunięcie spacji i wszystkich niedozwolonych znaczków z nazwy
kukix
post
Post #1





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Witam.

Zastanawiam się nad tym, jak stworzyć funkcję, która tak fomratowala by nazwę artykulu, żeby mozna bylo stworzyć plik o takiej nazwie.

dla przykładu podam link z allegro.
Prosze zwrócić uwage, jak nazwa produktu została zmodyfikowana.

Cytat
czytnik kart = Fotobank = z LCD (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) FV+GW wroclaw


Cytat



Jak zabezpieczyć się przed znakami, ktorych w tym momencie nie byłbym w stanie przewidziec?

Prosze o podpowiedź jak stworzyć taką funkcję.
Bede bardzo wdzięczny za wszelkie wypowiedzi.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
extreme-dh
post
Post #2





Grupa: Zarejestrowani
Postów: 21
Pomógł: 3
Dołączył: 25.05.2008

Ostrzeżenie: (0%)
-----


Ja używam czegoś takiego:

Kod
function URLize( $string ){
    $r = '';
    $s1 = iconv('UTF-8', 'ASCII//TRANSLIT', $string);
    for ($i = 0, $sLen=strlen($s1); $i < $sLen; $i++){
        $ch1 = $s1[$i];
        $ch2 = mb_substr($string, $i, 1);
        $r .= $ch1=='?'?$ch2:$ch1;
    }
    
    $r = trim( preg_replace( '/[\W_]+/', '_', $r ), '_' );
    return strtolower( $r );
}
Go to the top of the page
+Quote Post
kukix
post
Post #3





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


dzięki za podpowiedź.

Kod jest ok, tylko, że nie zamienia polskich literek np ą na a itd..

zmieniłem 3 linijke na:

Kod
$s1 = iconv('ISO-8859-2', 'ASCII//TRANSLIT', $tekst);


ale nie pomaga..

---------------------------------- EDIT ----------------------------
Dodalem jeszcze jedną linijke na poczatku funkcji:

Kod
$tekst = strtr($tekst,"ąśźćęń󳥌ŹĆĘŃÓŁąśĽˇŚŹ","aszcenolASZCENOLaszASZ");


Ten post edytował kukix 17.08.2008, 12:00:20
Go to the top of the page
+Quote Post
extreme-dh
post
Post #4





Grupa: Zarejestrowani
Postów: 21
Pomógł: 3
Dołączył: 25.05.2008

Ostrzeżenie: (0%)
-----


Cytat(kukix @ 17.08.2008, 11:30:10 ) *
Kod jest ok, tylko, że nie zamienia polskich literek np ą na a itd..


Wszystko działa jak należy, zapomniałem tylko o jednej rzeczy. trzeba ustawić wcześniej setLocale na jakiś UTF, np polski
Kod
setlocale(LC_ALL, 'pl_PL.UTF8');


Wtedy wszystko będzie ładnie działało.

SirZooro: Twoja funkcja jest może OK, ale zadziała jedynie dla polskiego alfabetu.

Ten post edytował extreme-dh 17.08.2008, 22:53:42
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 04:40