Autor | Zpráva | ||
---|---|---|---|
matthew Profil |
#1 · Zasláno: 22. 6. 2008, 20:03:24
Mám regulární výraz:
ereg("[import|([0-9]+)|(.*)]",$promenna,$import); Jak zjistím počet míst v proměnné $promenna, ve kterých se shoduje? |
||
nightfish Profil |
#2 · Zasláno: 22. 6. 2008, 20:32:03
preg_match_all s vhodnými parametry a count() na výsledek
|
||
matthew Profil |
#3 · Zasláno: 22. 6. 2008, 20:54:42
<?php $promenna = "[import|1|clanek] [import|2|clanek] [import|3|clanek] [import|4|clanek]"; $regular = preg_match_all("[import|([0-9]+)|(.*)]",$promenna,$import); $pocet = count($regular); echo $pocet; ?> Toto vypíše pouze: 1. Co je špatně? |
||
Str4wberry Profil |
#4 · Zasláno: 22. 6. 2008, 21:09:00
V proměnné $regular bude maximálně tak true. Proč se nepodíváš do manuálu na příslušnou funkci?
|
||
matthew Profil |
#5 · Zasláno: 22. 6. 2008, 21:18:47
Do manuálu jsem koukal, ale řešení jsem nenašel.
Zkoušel jsem místo $pocet = count($regular); zapsat takto: $pocet = count($import); , ale bez úspěchu. Vypsalo to 3. |
||
matthew Profil |
#6 · Zasláno: 23. 6. 2008, 17:17:21 · Upravil/a: matthew
Tak nakonec jsem si přeci jen poradil. :)
<?php $promenna = "[import|1|clanek] [import|2|clanek] [import|3|clanek] [import|4|clanek] [import|5]"; $regular = preg_match_all("/\[(import)\|([0-9]+)\|*([[:alnum:]]*)\]/",$promenna,$ import); $pocet = $regular; echo $pocet; ?> Funguje to zaručeně dobře. |
||
Časová prodleva: 16 let
|
0