Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Jak przefiltrować string?
ggg
post 29.08.2008, 11:03:11
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.08.2007

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


Potrzebuje zmienną $tekst tak przefiltrować aby zostały mi tylko małe litery (baz znaczków narodowych) i cyfry. Myślałem, żeby zrobić sobie pętle i sprawdzać po kolej każdy znak z $tekst z każdym dozwolonym i odrzucać te nie pasujące, ale to jest kupa roboty. Da się to jakoś "w jednej linijce" zrobić?
Go to the top of the page
+Quote Post
ikssde
post 29.08.2008, 11:08:03
Post #2





Grupa: Zarejestrowani
Postów: 217
Pomógł: 40
Dołączył: 20.08.2008

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


Wszystko sie da smile.gif

CODE


Przefiltrowujemy sobie (funkcja zamienia znaki podane w 2 argumencie na znaki z 3 argumentu):

$tekst = strtr($tekst,"ĄĆĘŁŃÓŚŻŹąćęłńóśżź","ACELNOSZZacelnoszz");

A potem zmieniamy na male litery :

strtolower($tekst);



Chyba ze chcesz te znaki usunąć (szczerze nie wiem po co) w takim wypadku patrz wyżej !

Ten post edytował ikssde 29.08.2008, 11:09:20
Go to the top of the page
+Quote Post
JoShiMa
post 29.08.2008, 11:11:54
Post #3





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


A Ty chcesz zamienić te znaki na inne, ćzy je wyciąć. JEśli chcesz wyciąć wszystkie znaki poza małymi literami to wystarczy wyrażenie regularne:

  1. <?php
  2. $nowy_tekst = preg_replace( '/([^a-z])/', '',$tekst);
  3. ?>


--------------------
Go to the top of the page
+Quote Post
ggg
post 29.08.2008, 13:47:06
Post #4





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.08.2007

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


Właściwie to chciałem wyrzucić wszystko co nie jest od a do z (bez znaczków narodowych) i cyfr, ale natchnął mnie ikssde i zrobie tak:

  1. <?php
  2. $tekst = &#092;"aąbcćdeęfghijklłmnńoópqrsśtuwxyzżźAĄBCĆDEĘFGHIJKLŁMNŃOÓPQRSŚTUWXYZŻŹ1234567
  3. 90!@#$%^&*()-";
  4. $tekst = strtolower($tekst);
  5. $tekst = strtr($tekst,&#092;"ąćęłńóśżź","acelnoszz");
  6. print(preg_replace('/[^a-z0-9]/', '',$tekst));
  7. ?>


Dzięki za pomoc!

Jednak nie działa to jak należy ;(

Opisze pokrótce co robię. Otrzymuje po stronie serwera plik wysłany za pomocą formularza i mam tak:

  1. <?php
  2. $plik_nazwa = $_FILES['program_file']['name'];
  3. print($plik_nazwa); // i tutaj dostaję taką nazwę "ŚĆśćWniosek.pdf" jak uploadowany plik
  4. $plik_nazwa = strtr($plik_nazwa,'ąćęłńóśżźĄĆĘŁŃÓŚŻŹ','acelnoszzacelnoszz');
  5. print($plik_nazwa); // a tutaj dostaję taką "z�n�znnlWniosek.pdf"
  6. ?>


o co chodzi?

Ten post edytował ggg 29.08.2008, 13:49:45
Go to the top of the page
+Quote Post
JoShiMa
post 29.08.2008, 13:58:32
Post #5





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Polskie znaki: ąćęłńóśżźĄĆĘŁŃÓŚŻŹ zapisz w odpowiednim kodowaniu smile.gif


--------------------
Go to the top of the page
+Quote Post
ggg
post 29.08.2008, 14:03:15
Post #6





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.08.2007

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


Cytat(JoShiMa @ 29.08.2008, 14:58:32 ) *
Polskie znaki: ąćęłńóśżźĄĆĘŁŃÓŚŻŹ zapisz w odpowiednim kodowaniu smile.gif

Jest w php jakaś funkcji do konwersji stringów?
Go to the top of the page
+Quote Post
_olo_1984
post 29.08.2008, 14:21:49
Post #7





Grupa: Zarejestrowani
Postów: 289
Pomógł: 77
Dołączył: 5.08.2006

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


może o to ci chodzi ...
http://php.net.pl/manual/pl/function.iconv.php

pozdr


--------------------
awake
Go to the top of the page
+Quote Post
golaod
post 29.08.2008, 14:50:21
Post #8





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


Wiecie...zawsze myślałem, że strstr zwraca numer pozycji wystąpienia znaku/znaków w stringu, a zamienia się co najwyżej za pomocą str_replace lub preg_replace. Mogę się jednak mylić bo w końcu widzę, że tu wszyscy php.net to na pamięć znają.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 15.08.2025 - 03:14