Slammer Posted February 7, 2010 Report Share Posted February 7, 2010 (edited) Sveicināti, cenšos uzrakstīt regulāru izteiksmi, bet pagaidām ne pārāk labi sanāk. Ir pieejams strings - ar visu lapas html saturu. Ir jādabū no šī satura linku (<a> tegu) href atribūta saturu, ja starp <a></a> tegiem atrodas nepieciešamais kritērijs. piemērs: no šī koda jāizķer tikai 'index.php?item&module=1&category=13' <?php $a = "nail"; //meklējamais kritērijs starp <a></a> $s =<<<EOF <a class="level2" onmouseout="this.style.background = '';" onmouseover="this.style.background ='#2c7cf4';" href="index.php?item&module=1&category=11" style=""> kaut kas cits </a> <img> </img> <br> <a class="level2" onmouseout="this.style.background = '';" onmouseover="this.style.background ='#2c7cf4';" href="index.php?item&module=1&category=13" style=""> nails </a> <a class="level2" onmouseout="this.style.background = '';" onmouseover="this.style.background ='#2c7cf4';" href="index.php?item&module=1&category=15" style=""> kaut kas cits2 </a> EOF; //šitik tālu izdevās izveidot izteiksmi, kas strādā daļēji pareizi $regexp = "#<a\s[^>]*href=\"([^\"]*)\"[^>]*>.*{$a}+.*</a>[^<]*#siU"; /* rule explanation # - store pattern \s - whitespace char . - any char (exclude newline) * - 0 or more ? - match minimal string combo s - (PCRE_DOTALL) modifier i - match UPPER or lower case letters ^ - not U - (PCRE_UNGREEDY) modif. */ preg_match_all($regexp, $s, $matches); var_dump($matches); ?> paldies! Edited February 7, 2010 by Slammer Link to comment Share on other sites More sharing options...
Recommended Posts