Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Jak przefiltrować string?
Forum PHP.pl > Forum > Przedszkole
ggg
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ć?
ikssde
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 !
JoShiMa
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. ?>
ggg
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?
JoShiMa
Polskie znaki: ±ćęłń󶿼ˇĆĘŁŃӦݬ zapisz w odpowiednim kodowaniu smile.gif
ggg
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?
_olo_1984
może o to ci chodzi ...
http://php.net.pl/manual/pl/function.iconv.php

pozdr
golaod
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±.
To jest wersja lo-fi głównej zawarto¶ci. Aby zobaczyć pełn± wersję z większ± zawarto¶ci±, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.