Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Usuwanie niechcianych znaków
deha21
post
Post #1





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Potrzebuję do ładnych linków zrobić nazwe tytułu, czyli: www.stronka.pl/news,123,tytul-jakis-fajniutki.html

Do tej pory miałem to trochę upośledzone (IMG:style_emoticons/default/winksmiley.jpg)
  1. $pattFrom = array('Ę','ę','Ó','ó','Ł','ł','Ś','ś','Ą','ą','Ż','ż','Ź','ź','Ć','ć','Ń','ń');
  2. $pattTo = array('e','e','o','o','l','l','s','s','a','a','z','z','z','z','c','c','n','n');
  3.  
  4. $polskie=str_replace($pattFrom,$pattTo,$row['title']);
  5. $space=trim(strtr($polskie," -?!:()@$%.\,\"", "--_____________"),"_-");
  6.  
  7. echo "<a href='news,".$row['id'].",".strtolower($space).".html'>".stripslashes($row['title'])."</a>";
  8.  
  9. }

Usuwa polskie znaki ale jeśli jest np. cudzysłów czy łącznik to robi _ . W sumie się nie dziwię bo tak ustawiłem ale tylko dlatego że nie wiedziałem jak to całkiem usunąć. Byłem zajęty i dopiero teraz mi się wspomniało że wypadałoby to naprawić (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




http://eriz.pcinside.pl/weblog/mod_rewrite...ac-208.html#t81
Go to the top of the page
+Quote Post
deha21
post
Post #3





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Super fajne to masz ale zamiast zmieniać polskie znaki to mi je całkiem usuwa. I np. łącznika mi zostawia a chciałbym żeby też go usuwało. Przecinki usuwa prawidłowo ale kropki też zostawia.
Go to the top of the page
+Quote Post
everth
post
Post #4





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


  1. function convertTitle($string) {
  2. $aWhat = array('ą','ć','ę','ł','ó','ń','ś','ż','ź',' ');
  3. $aOn = array('a','c','e','l','o','n','s','z','z','_');
  4. $converted = preg_replace('/[^a-zA-Z0-9_]*/','',str_ireplace($aWhat, $aOn, $string));
  5. return $converted;
  6. }

@deha21 i z tego samego powodu nie kocham iconv();

Ten post edytował everth 17.08.2010, 19:20:08
Go to the top of the page
+Quote Post
deha21
post
Post #5





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


O dzięki. Trochę sobie ulepszyłem. Zamiana na małe litery, zamiast spacji "-" a tekst "Bla bla bla - coś tam coś" przekonwertuje na "bla-bla-bla-coś-tam-coś" czyli potrójne "---" które by się wtedy tworzyło też znika. Super! (IMG:style_emoticons/default/biggrin.gif)
  1. function conv($string) {
  2. $aWhat = array('ą','ć','ę','ł','ó','ń','ś','ż','ź',' ');
  3. $aOn = array('a','c','e','l','o','n','s','z','z','-');
  4. $string = str_replace(" - "," ",$string);
  5. $converted = preg_replace('/[^a-zA-Z0-9-]*/','',str_ireplace($aWhat, $aOn, $string));
  6. return strtolower($converted);
  7. }

Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Super fajne to masz ale zamiast zmieniać polskie znaki to mi je całkiem usuwa.

Z jakiej paki? (IMG:style_emoticons/default/tongue.gif) To akurat kawałek z mojego frameworka, gdzie w tej chwili ta funkcja się pewnie wykonała z kilka razy. (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
deha21
post
Post #7





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Nie wiem z jakiej paki ale mi usuwało (IMG:style_emoticons/default/winksmiley.jpg) Może coś z serwerem albo wersją php że nie działa tak jak powinno?
Go to the top of the page
+Quote Post
everth
post
Post #8





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


@erix: Też chciałbym wiedzieć - jak potrzebowałem transliteracji to na początku oparłem się na iconv() - niestety po aktualizacji mojego Kubunciaka do Lucid przestało działać prawidłowo (zaczęło wycinać znaki). Może to problem leżącej pod spodem biblioteki libiconv - ja niestety nie mogę sobie pozwolić na to że działanie funkcji zależy od konfiguracji serwera.
Go to the top of the page
+Quote Post
erix
post
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Jeszcze nie spotkałem się z taką sytuacją, w której nie działała transliteracja...

Jeśli instalujesz PHP z paczek - wcale się nie dziwię. Ale paczkowanego PHP nie uznaję w swojej teorii istnienia świata. (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
everth
post
Post #10





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Teraz trochę poczytałem i właściwie całkowicie zgłupiałem - to rozwiązanie działa mi w trybie interaktywnej konsoli a za nic w świecie nie działa jako skrypt. Z komentarzy pod, wynika że nie tylko ja uświadczyłem podobnych problemów. W każdym razie chyba bezpieczniej jest stosować własne tablice transliteracji.

[offtop]
Co do PHPa to sugerujesz mi kompilację każdego nowego wydania? Gentoo skutecznie zniechęciło mnie do wyznawców tej sekty - są w życiu ciekawsze rzeczy niż obserwacja procesu kompilacji (IMG:style_emoticons/default/biggrin.gif) . Zresztą Debian rządzi.
[/offtop]
Go to the top of the page
+Quote Post
erix
post
Post #11





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Teraz trochę poczytałem i właściwie całkowicie zgłupiałem - to rozwiązanie działa mi w trybie interaktywnej konsoli a za nic w świecie nie działa jako skrypt. Z komentarzy pod, wynika że nie tylko ja uświadczyłem podobnych problemów. W każdym razie chyba bezpieczniej jest stosować własne tablice transliteracji.


Cóż, możliwe że obie instancje korzystają z innych plików konfiguracyjnych bądź pochodzą z innych paczek (zdarza się (IMG:style_emoticons/default/winksmiley.jpg) ).

Cytat
Co do PHPa to sugerujesz mi kompilację każdego nowego wydania? Gentoo skutecznie zniechęciło mnie do wyznawców tej sekty - są w życiu ciekawsze rzeczy niż obserwacja procesu kompilacji

Szkoda Ci 10 minut? Zwłaszcza, gdy sobie zapiszesz gdzieś konfigurację i skrypt podmiany binarek, to praktycznie przezroczyście...

Już nieraz były przypadki na forum, że działy się cyrki w paczkowanym PHP, a w skompilowanym śmigało jak rakieta. Z praktyki również tak wyszło.

Cytat
są w życiu ciekawsze rzeczy niż obserwacja procesu kompilacji

Owszem, dlatego nie mówię, że trzeba wszystko kompilować. (IMG:style_emoticons/default/winksmiley.jpg) Tylko httpd i PHP, reszta może być z binarek.

Cytat
Zresztą Debian rządzi.

Przesiadłem się jakiś czas temu na FreeBSD na serwerach i od momentu, gdy poznałem uroki systemu portów, świat stał się piękniejszy. (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
everth
post
Post #12





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Sprawa się wyjaśniła... chyba. W konsoli miałem ustawione kodowanie na ISO-8859-2. Może dlatego działało. Nie chce mi się dłużej w tym grzebać, kiedyś tak namieszałem z kodowaniem że system nie wstał.

Hmm, przyznam się bez bicia że nie kompilowałem PHPa, dopiero później naszła mnie refleksja że przecież sam interpreter nie musi być szczególnie duży i rzeczywiście 10MB to mniej niż cała biblioteka Qt. Więc mówisz 10min? Jak znajdę trochę czasu i obczaję checkinstall to spróbuję pobawić się w budowanie własnych paczek (dla czystości w systemie).

Z FreeBSD na serwerach ok. Tylko ja mówię o localhoście (IMG:style_emoticons/default/biggrin.gif) . Niespecjalnie widzi mi się działanie FreeBSD na laptopie, a wirtualizacja dla czegoś takiego to przesada.
Go to the top of the page
+Quote Post

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: 24.12.2025 - 09:26