Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyrazenia regularne
Forum PHP.pl > Forum > PHP
arti1
robie cos takiego
[php:1:3e11b4a48d]<?php
$nazwa_kat=eregi_replace("('|;|-|:|<|>|.|,|#|^|&|*|%|(|))","",$nazwa_kat);

$nazwa_kat=eregi_replace("ą","a",$nazwa_kat);
$nazwa_kat=eregi_replace("ę","e",$nazwa_kat);
$nazwa_kat=eregi_replace("ć","c",$nazwa_kat);
$nazwa_kat=eregi_replace("ż","z",$nazwa_kat);
$nazwa_kat=eregi_replace("ź","z",$nazwa_kat);
$nazwa_kat=eregi_replace("ó","o",$nazwa_kat);
$nazwa_kat=eregi_replace("ł","l",$nazwa_kat);
$nazwa_kat=eregi_replace("ń","n",$nazwa_kat);
$nazwa_kat=eregi_replace("ś","s",$nazwa_kat);
?>[/php:1:3e11b4a48d]

czyli usuwam wszystkie śmieci :wink: i polskie "ogonki" ze zmiennej. Zdaje sobie sprawe, ze robie to troche kalecznie.
Wlasnie chcialem zapytac jak mozna to zrobic lepiej - moze w jednym zapytaniu?
Jakie macie propozycje?
medec
bylo to tutaj ze sto razy:

http://php.net/strtr
http://php.net/preg_replace
dob
Ja proponuje zamiast uzywac eregi 10 razy, wstawić sobei funkcję [manual:d39313f286]str_replace[/manual:d39313f286] i jako 2 pierwsze argumenty podac tablice
np.
[php:1:d39313f286]<?php
$z1=array("ą", "ć", "ń");
$z2=array("a", "c", "n");
$tekst="blalabana ć ened ń ą";
$tekst=str_replace($z1, $z2, $tekst);
echo $tekst;
?>[/php:1:d39313f286]

Jedynym minusem (chodź może niekoniecznie) jest to że funkcja rozróznia wielkosc liter czyli w obu tablicach powinienes napisac małe jak i duże litery do zmiany. No chya ze uzywasz php 5 gdzie jest funkcja [manual:d39313f286]str_ireplace[/manual:d39313f286]
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.