(PECL event >= 1.2.6-beta)
EventBuffer::search β Π‘ΠΊΠ°Π½ΠΈΡΡΠ΅Ρ Π±ΡΡΠ΅Ρ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ
ΠΠ΅ΡΠΎΠ΄ ΡΠΊΠ°Π½ΠΈΡΡΠ΅Ρ Π±ΡΡΠ΅Ρ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ
what.
ΠΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎΠ²ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false,
Π΅ΡΠ»ΠΈ Π½Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡ ΡΡΡΠΎΠΊΡ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ
start
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΏΠΎΠ·ΠΈΡΠΈΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄
Π½Π°ΡΠ½ΡΡ ΠΏΠΎΠΈΡΠΊ; ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠΈΡΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Ρ Π½Π°ΡΠ°Π»Π° ΡΡΡΠΎΠΊΠΈ.
ΠΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°
end
ΠΏΠΎΠΈΡΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ
ΠΏΠΎΠ·ΠΈΡΠΈΡΠΌΠΈ Π±ΡΡΠ΅ΡΠ°.
what
Π‘ΡΡΠΎΠΊΠ° Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ°.
start
ΠΠΎΠ·ΠΈΡΠΈΡ Π½Π°ΡΠ°Π»Π° ΠΏΠΎΠΈΡΠΊΠ°.
end
ΠΠΎΠ·ΠΈΡΠΈΡ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΏΠΎΠΈΡΠΊΠ°.
ΠΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎΠ²ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ
Π² Π±ΡΡΠ΅ΡΠ΅ ΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false, Π΅ΡΠ»ΠΈ Π½Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡ ΡΡΡΠΎΠΊΡ.
Π€ΡΠ½ΠΊΡΠΈΡ
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠ°ΠΊ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false,
ΡΠ°ΠΊ ΠΈ Π½Π΅Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ false.
ΠΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°Π·Π΄Π΅Π»
Β«ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΈΠΏΒ»,
ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ===
Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΡΠ΅ΡΠ° Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ EventBuffer::search()
<?php
// ΠΠΎΠ΄ΡΡΠΈΡΠ°ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠ° 'str' Π²Ρ
ΠΎΠ΄ΠΈΡ Π² ΡΡΡΠΎΠΊΡ 'buf'
function count_instances($buf, $str)
{
$total = 0;
$p = 0;
$i = 0;
while (1) {
$p = $buf->search($str, $p);
if ($p === FALSE) {
break;
}
++$total;
++$p;
}
return $total;
}
$buf = new EventBuffer();
$buf->add("Some string within a string inside another string");
var_dump(count_instances($buf, "str"));
?>ΠΡΠ²ΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π°:
int(3)