Autor Zpráva
strposasda
Profil *
Zdravim je nejaky lepsi zpusob na najiti urcityho obsahu v nejakem textu nez pouziti fce strpos? Jde mi o to jen zjistit jestli dane slovo to najde nebo ne.
Radek Cvek
Profil
Regulární výrazy
strposasda
Profil *
to samozrejme vim, ale jde mi o to jestli je lepsi regular nebo strpos
Radek Cvek
Profil
	              n=1 	       2      	3 	      10      100     	1000 	10000
strpos() 	     0.01 ms        0.02 ms    0.04 ms 	0.2 ms 	0.9 ms 	2.6 ms 	25.6 ms
preg_match()  	0.2 ms     	0.2 ms 	0.3 ms 	0.47 ms 	0.95 ms 	7.4 ms 	72.2 ms
Ratio 	        1/20       	1/10       1/7     	1/2     	1/1     	1/3     	1/3

Toto jsem našel přes Google - nic oficiálního to není.
Nonetheless preg_match() will always be more expensive than strpos().
strposasda
Profil *
takze strpos bude lepsi ;)

jeste mam jeden dotaz na regular: kdyz bych chtel zisakt obsah mezi:
<p id="neco"> TO CO CHCI
</p>

jak to mam udelat? Hlavni problem mam v tom, ze na zacatku a konci textu TO CO CHCI je spousta mezer
Radek Cvek
Profil
Dobře bych ten výraz asi nesplácal, ale pokud mám $TO_CO_CHCI s mezerami, tak to přece nevadí trim();
strposasda
Profil *
no to jo ale neumim to kvuli tomu vybrat, kdyz by to bylo jedno slovo tak jo ale ne vic slov
Radek Cvek
Profil
a toto se ti nelíbí?
<?php
$html = '
<html>
<p id="neco">     TO CO CHCI
</p> 
<p id="neco2">   Drama v Egyptě se nezklidňuje. Podle komisařky OSN si nepokoje vyžádaly až 300 životů. 
</p>     
<p id="neco3"> Odpůrci prezidenta Husního Mubaraka se v pondělí rozhodli vyhlásit časově neomezenou generální stávku.
</p> 
<h1 id="neco4"> TO CO NECHCI
</h1> 
</html>';

    $dom = new domDocument;
    $dom->loadHTML($html);
    $odstavec = $dom->getElementsByTagName('p');
    foreach ($odstavec as $row)
    {
        echo $row->nodeValue.'<br />';
        echo '<hr />';
    }
?> 
oiuoiuo
Profil *
ani ne stacil by mne nejakej jednoduchej regular :D
oiuoiuo
Profil *
vyreseno ;)

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:

0