Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]eregi - kto mi to wytłumaczy?
f1xer
post 18.08.2008, 13:10:44
Post #1





Grupa: Zarejestrowani
Postów: 403
Pomógł: 68
Dołączył: 20.03.2008

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


Otóż mam taki kod
  1. <?php
  2. $nazwa="cos(+5.00z), cos2(+10.00z)";
  3. if (eregi("(+[0-9]+.[0-9]+z)",$nazwa, $wynik))
  4. {
  5. print_r($wynik);
  6. }
  7. ?>

dlaczego tablica wynik ma tylko element o indeksie 0 ? jak zrobić żeby znalazły się tam 2 wartości [0]=>(+5.00z)
[1]=>(+10.00z)


--------------------
Pomogłem? wyraź to i kliknij "Pomógł"
Go to the top of the page
+Quote Post
kipero
post 18.08.2008, 13:16:28
Post #2





Grupa: Zarejestrowani
Postów: 233
Pomógł: 50
Dołączył: 28.10.2006
Skąd: Radom

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


Może użyj funkcji preg_match_all" title="Zobacz w manualu PHP" target="_manual?


--------------------
Go to the top of the page
+Quote Post
f1xer
post 18.08.2008, 13:23:01
Post #3





Grupa: Zarejestrowani
Postów: 403
Pomógł: 68
Dołączył: 20.03.2008

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


Ale mi chodziło o eregi, nie chodzi mi o rozwiązanie problemu tylko o odpowiedź dlaczego to nie działa? wydaje mi się że powinno zwracać dwuelementową tablicę


--------------------
Pomogłem? wyraź to i kliknij "Pomógł"
Go to the top of the page
+Quote Post
golaod
post 18.08.2008, 13:25:52
Post #4





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


Odpowiedź znajduje się w manulu na php.net
Cytat
Zwracane wartości

Returns the length of the matched string if a match for pattern was found in string , or FALSE if no matches were found or an error occurred.

If the optional parameter regs was not passed or the length of the matched string is 0, this function returns 1.
Go to the top of the page
+Quote Post
f1xer
post 18.08.2008, 13:36:45
Post #5





Grupa: Zarejestrowani
Postów: 403
Pomógł: 68
Dołączył: 20.03.2008

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


Cytat
Returns the length of the matched string if a match for pattern was found in string , or FALSE if no matches were found or an error occurred.
If the optional parameter regs was not passed or the length of the matched string is 0, this function returns 1


Ale co to ma do rzeczy? ja nie pytam się jakie funkcja zwraca wartości tylko dlaczego zapisuje TYLKO jeden element do tablicy
wyczytałem w manualu:

Cytat
If matches are found for parenthesized substrings of pattern and the function is called with the third argument regs , the matches will be stored in the elements of the array regs .
$regs[1] will contain the substring which starts at the first left parenthesis; $regs[2] will contain the substring starting at the second, and so on. $regs[0] will contain a copy of the complete string matched.


czyli tablica $wynik powinna zawierać wszystkie pasujące do wzorca elementy tak?

Znów powracam do pytania ponieważ to co przed chwilą wymyśliłem dawało złe wyniki

Ten post edytował f1xer 18.08.2008, 13:40:10


--------------------
Pomogłem? wyraź to i kliknij "Pomógł"
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 15.07.2025 - 01:39