Srodne teme
Kliknite za generisanje liste srodnih tema...
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

kako da matchujem...

[es] :: PHP :: kako da matchujem...

[ Pregleda: 1492 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Aleksandar1987

Član broj: 129312
Poruke: 119
*.adsl.verat.net.



+1 Profil

icon kako da matchujem...17.09.2008. u 10:12 - pre 190 meseci
Ima na sajtu www.vokabular.org recnik nasih reci.
Ono sto ja hocu jeste da matchujem samo definiciju reci sa tog sajta i da je ubacim u moju rpomenljivu.

Recimo za rec "auditorijum", pozivam http://www.vokabular.org/?lang=sr-lat&search=auditorijum
i dobijam sledeci kod:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<head>
<title>Vokabular - Srpski rečnik - pretraga: auditorijum</title>
<meta name="description" content="Srpsko-srpski recnik sa recnikom stranih reci i izraza - on line pretraga">
<meta name="keywords" content="recnik, srpski recnik, recnik stranih izraza, vujaklija, vujaklijin recnik, baza, pretraga, srpski jezik">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>

<table width="100%"  border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="260"><a href="./?lang=sr-lat"><img src="slike/vokabular_logo_horiz_=sr-lat=.gif" alt="Vokabular, recnik srpskog jezika" width="231" height="53" border="0"></a></td>
<td valign="top" align="left"><img src="slike/pixel.gif" width="300" height="11"><link rel="stylesheet" type="text/css" href="style.css" />

<table cellpadding="0" cellspacing="0">
<tr>
<td valign="top">
    <form action="./" method="get">
    <input name="lang" type="hidden" value="sr-lat">
    <input name="search" type="text" class="naslovna_search_input" value="auditorijum" size="40"> 
    &nbsp;<input name="Submit" type="submit" value="Traži"></form>
    </td><td valign="top">
    <div align="left" class="naslovna_search_napredno">&nbsp;&nbsp;<a href="#">detaljnije pretraživanje</a>
    <br>

    &nbsp;&nbsp;<a href="pomoc.php?lang=sr-lat">pomoć</a>
    </div>
</td>
</tr>
</table></td>
</tr>
</table><br>
<img src="slike/pixel.gif" height="3"><br>
<table class="natpis" width="100%" cellspacing="0"><tr><th bgcolor="#ceddc7">
<div align="left" class="natpis">&nbsp;Rezultati pretrage</div>
</th><th align="right" bgcolor="#ceddc7">
<div class="ukupnorez">Pronađeno pojmova: <b>1</b>&nbsp;</div>

</th></tr></table>

<p class="rezultat_pogodak"><span class="rezultat_rec">auditorijum</span>&nbsp;<span class="rezultat_poreklo">(l. auditorium)</span><br>
slušaonica, učionica; sudnica; slušaoci.    
</p>


<hr size="1" noshade="noshade">
<p><a href="./?lang=sr-lat">Naslovna strana</a> - <a href="prijava.php?lang=sr-lat">Postanite saradnik</a> - <a href="http://forum.vokabular.org" target="vokforum">Forum</a> - <a href="oprojektu.php?lang=sr-lat">O
projektu</a></p>

<div class="naslovna_search_napredno">&copy;&nbsp;2006 Vokabular, verzija 0.2.10</div>
</body>
</html>


Treba "uhvatiti" ovo posle <br> a pre </p>
Code:

<p class="rezultat_pogodak"><span class="rezultat_rec">auditorijum</span>&nbsp;<span class="rezultat_poreklo">(l. auditorium)</span><br>
slušaonica, učionica; sudnica; slušaoci.
</p>


Kapiram da je to zezanje sa regularnim izrazima... ali meni je to malo zbun.
I uopsteno, kako da iscupam nesto izmedju recimo petog <p></p>?
Unapred, hvala puno.
 
Odgovor na temu

kazil
Robert Bašić
Full time PHP dev :)
Bačka Topola - Novi Sad

Član broj: 120044
Poruke: 686
*.cable-3.sattrakt.net.

Jabber: robertbasic@elitesecurity.org
ICQ: 446475288
Sajt: robertbasic.com


+2 Profil

icon Re: kako da matchujem...17.09.2008. u 19:47 - pre 190 meseci
Evo na brzaka nesto, videcu kasnije da odradim jos lepse:

Ovo sto dobijas sajt, recimo stavis u promenljivu $str.

Code:

//Ovo bi trebalo da da taj jedan paragraf gde je ono sto trazis, samo iz nekog razloga preskace prvi </p> i zaustavlja se tek kod drugog.
//Nema veze, ocisticemo ;)
preg_match('|<p class="rezultat_pogodak">(.*)</p>|is',$str,$matches);

$str1 = $matches[1];

preg_match('|<br>(.*)</p>|is',$str1,$matches1);

$trazeno = $matches1[1];


Namerno sam prvo ulazio u taj paragraf koji ima klasu "rezultat_pogodak", jer kad sam samo "unutar" njega, mogu da matchujem na osnovu <br>-a i </p>-a, jer ima jos drugih <br>-a na stranici.

Videcu da napisem neki regexp koji odradi sve iz jednog koraka.

Edit: Evo odgovora na pitanje za peti paragraf.

Code:

$str = "
Imamo nesto van paragrafa, pre.
<p class='neka_klasa'>Prvi paragraf</p>
<p style='color:#f00;'>Drugi paragraf</p>
<p id='ili_id'>Treci paragraf</p>
<p >Cetvrti paragraf</p>
<p>Peti paragraf</p>
<P>Sesti paragraf</p>
I van, posle.<br />
Ili neki drugi <b>tag</b>
";

preg_match_all('|<p.*>(.*)</p>|iU',$str,$matches);

echo $matches[0][4]; //<p>Peti paragraf</p>
echo $matches[1][4]; //Peti paragraf


Happy coding :)

[Ovu poruku je menjao kazil dana 17.09.2008. u 21:24 GMT+1]
 
Odgovor na temu

Aleksandar1987

Član broj: 129312
Poruke: 119
*.adsl.verat.net.



+1 Profil

icon Re: kako da matchujem...18.09.2008. u 01:24 - pre 190 meseci
E, care, hvala ti puno!!!

...ih sta mu sad radim...;)
 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
*.fibertel.com.ar.

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: kako da matchujem...18.09.2008. u 02:43 - pre 190 meseci
Moze to i ovako.
Code:


function GetPageResult($pagecontent) {
$result= null;
$doc = new DOMDocument();
if ( $doc->loadHTML($pagecontent) ) {
  $xpath = new DOMXPath($doc);
   $answerlist = $xpath->query('//p[@class="rezultat_pogodak"]/text()');
   if ( ($answerlist !== false) && ($answerlist->length > 0) ) {
     $result = $answerlist->item(0)->nodeValue;
   }
 }
  return result;
}



Ucite ljudi xpath. vredi.
Tko leti vrijedi
 
Odgovor na temu

[es] :: PHP :: kako da matchujem...

[ Pregleda: 1492 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Srodne teme
Kliknite za generisanje liste srodnih tema...
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.