Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [preg_replace] pliki
Forum PHP.pl > Forum > Przedszkole
Guest
w jaki sposob zrobic zapytanie do preg_replace aby usunelo wsyzstko oprocz znakow asci od 46 do 57, od 65 do 90 i od 97 do 122 questionmark.gif
hwao
To trzeba zrobic inaczej, mianowicie:

Trzeba wyrazenie ktre wyppaluje wszytkie asic bez roznicy
Dajemy je do fukcjii preg_replace_callback" title="Zobacz w manualu PHP" target="_manual()

W funkcji do ktorej prowadzi callback sprawdzamy jaka to liczba i jak jest w przedziale (if'em) to dajemy return i zwacamy ja w przeciwnym wypadku return null;

To tyle.
FiDO
Ale gdzie tam.. nie trzeba callbacka do tego smile.gif

Mozna:
  1. <?php
  2.  
  3. preg_replace('#[^x2E-x39]+#', '', $tresc);
  4.  
  5. ?>

i tak dla reszty przedzialow.. mozna zapisac przedzialy jeden po drugim, tylko trzeba sobie najpierw zamienic liczby na hex.
hwao
Swoja droga jednak mysle ze moje wygodniejsze, ale smile.gif szczerze nie znalem tego sposobu - dopiero ucze sie RegEx winksmiley.jpg.

Widac zawsze moza sie cos nauczyc:)
FiDO
Wygodniejsze to napewno, ale z wydajnoscia to juz gorzej... callback na kazdym znaku z osobna to nie jest dobry pomysl ;]
Guest
hmm
mam taki kod
  1. <?php
  2.  
  3. $str='(@abcdef@)';
  4. echo preg_replace('#[^x2E-x39]+[^x41-x5a]+[^x61-x7a]+#', '', $str);
  5.  
  6. ?>

i cosik nie idzie, gdize zrobilem blad ?
FiDO
Zle skleiles przedzialy..
Powinno byc tak:
  1. <?php
  2.  
  3. echo preg_replace('#[^x2E-x39x41-x5ax61-x7a]+#', '', $str);
  4.  
  5. ?>
Guest
thx
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.