Autor Zpráva
matthew
Profil
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
preg_match_all s vhodnými parametry a count() na výsledek
matthew
Profil
<?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
V proměnné $regular bude maximálně tak true. Proč se nepodíváš do manuálu na příslušnou funkci?
matthew
Profil
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: