Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Preg_replace z ograniczeniem ilości
jajcarzd1
post
Post #1





Grupa: Zarejestrowani
Postów: 215
Pomógł: 19
Dołączył: 24.12.2003
Skąd: Przemyśl

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


Witam

W jaki sposób zapisać wyrażenie preg_replace aby oprócz usunięcia niechcianych znaków ograniczył ciąg do konkretnej długości ? Chciałbym poniższe wyrażenie o to wzbogacić bo jak na razie to usuwa mi tylko znaki inne niż cyfry.

  1. echo preg_replace('/[^\d]/','',$a);


No i jak tam nikt mi nie podpowie ?
Go to the top of the page
+Quote Post
Wicepsik
post
Post #2





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Ciężko zajrzeć do manuala ?
Go to the top of the page
+Quote Post
cojack
post
Post #3





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


A to w necie nie ma tutoriali do REGEXPa? Temat do zamknięcia. Aż huczy w necie od tego typu danych. http://www.programuj.com/artykuly/www/regularne.php Sam się na nim uczyłem.
Go to the top of the page
+Quote Post
jajcarzd1
post
Post #4





Grupa: Zarejestrowani
Postów: 215
Pomógł: 19
Dołączył: 24.12.2003
Skąd: Przemyśl

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


Nie chodzi o to że nie zaglądałem do manula czy nie szukałem po necie. Zawsze jakoś mam problemy z tymi cholernymi wyrażeniami. Poniższe opcje nie za bardzo mi działają a nie mam pomysłu jakbymi miał to inaczej zrobić,

  1. preg_replace('/[^\d]{5}/','',$a);
  2. preg_replace('/([^\d]){5}/','',$a);


Ten post edytował jajcarzd1 7.07.2010, 09:33:45
Go to the top of the page
+Quote Post
smietek
post
Post #5





Grupa: Zarejestrowani
Postów: 306
Pomógł: 32
Dołączył: 20.01.2008

Ostrzeżenie: (20%)
X----


Chyba jednak nie szukałeś w Manualu rozwiązania swojego problemu:
preg_replace
Zobacz argumenty jakie przyjmuje ta funkcja...

A z resztą, nie możesz po prostu tego ciągu obciąż z pomocą substr?

Ten post edytował smietek 7.07.2010, 10:05:58
Go to the top of the page
+Quote Post
jajcarzd1
post
Post #6





Grupa: Zarejestrowani
Postów: 215
Pomógł: 19
Dołączył: 24.12.2003
Skąd: Przemyśl

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


Cytat(smietek @ 7.07.2010, 11:04:17 ) *
Chyba jednak nie szukałeś w Manualu rozwiązania swojego problemu:
preg_replace
Zobacz argumenty jakie przyjmuje ta funkcja...


Oczywiście ze patrzyłem do manula, ale przeciez argument limit ogranicza ilość możliwych zamian, ja natomiast potrzebuje po usunięciu niepotrzebnych znaków obciąć ciąg do danej długości. Jesli mam coś takeigo

  1. $a = '- 12-34 5677fdghdfhd1';
  2. echo preg_replace('/[^\d]/','',$a,2);


to usunię mi tylko dwukrotnie niedozwolony znak i otrzymam

Kod
12-34 5677fdghdfhd1



Cytat(smietek @ 7.07.2010, 11:04:17 ) *
A z resztą, nie możesz po prostu tego ciągu obciąż z pomocą substr?


No pewnie że mogę ale pytam w jaki sposób mogę to zrobićź od razu w pregu
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 5.10.2025 - 10:20