Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]przepuszczanie tylko liter i cyfr - jak?
Forum PHP.pl > Forum > Przedszkole
messmaker
Witam,

Poszukuję funkcji, która z abc[]def^*)123 zrobi abcdef123 czyli prosto mówiąc pozbawi ciąg znaków wszystkiego, co nie jest literą lub cyfrą.
Szukanie zakończyło się znalezieniem co najwyżej funkcji preg_match() zwracającej true jeśli dany string składał się wyłącznie z liter i cyfr i false jeśli nie, a to tylko połowa sukcesu.

Będę wdzięczny za każdą pomoc, mam nadzieję, że obejdzie się bez funkcji sprawdzającej po kolei każdy znak.

Pozdrawiam
piaseq
Moim zdaniem preg_replace() pasuje idealnie.
r4xz
pierwszy z brzegu skrypt (napewno jest lepsza metoda winksmiley.jpg

  1.  
  2. <?php
  3. function czysc($str) {
  4. for($i = 0; $i < strlen($str); $i++) {
  5. if(preg_match('/[\w]/', $str[$i])) {
  6. $str2 .= $str[$i];
  7. }
  8.  
  9. }
  10.  
  11. return $str2;
  12. }
  13.  
  14. $string = 'abc[]def^*)123';
  15. echo czysc($string);
  16. ?>
  17.  
  18.  


jasin
Jeden ze sposobów:
  1. $subject = "abc[]def^*)123";
  2. $pattern = '/[A-Za-z0-9]/';
  3.  
  4. preg_match_all($pattern, $subject, $matches);
  5. $test = implode('', $matches[0]);
  6. echo $test;
messmaker
Wielkie dzięki!
Wicepsik
  1. $tekst = 'abc[]def^*)123';
  2. echo preg_replace('/[^a-zA-Z0-9]/', '\1',$tekst);


Proszę, mniej kodu, lepszy w edycji.
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.