Problema data la interviu

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator


olympia
Senior Member
Mesaje: 374
Membru din: Lun Mai 26, 2008 11:12 pm
Contact:

Mesajde olympia » Sâm Sep 19, 2009 7:09 pm


Pirahna
Senior Member
Mesaje: 5985
Membru din: Dum Aug 22, 2004 2:04 am
Localitate: la birou
Contact:

Mesajde Pirahna » Sâm Sep 19, 2009 7:22 pm

1. Preiei pagina (cu file_get_contents, fopen sau curl, care iti e mai usor si accesibil) : http://www.google.ro/search?hl=ro&site=case&q=case

2. Vezi cum sunt aranjate elementele (in cazul google ai un <li class="g w0"> care marcheaza inceputul rezultatului).
Ai un <h3 class="r"> <a href="adresa site" class="l" onmousedown="blablabla"> titlu site </a></h3>
dupa care putin mai jos ai un
<div class="s"> descriere <br> (divul se termina ceva mai jos)

Deci practic ai de extras elementele respective.

3. Trebuie sa faci expresia regulata care sa extraga datele respective ... in cazul asta ar fi

preg_match_all("/<h3 class="r"><a href=\"(.*)\" (.*)>(.*)</a></h3>(.*)<div class=\"s\">(.*)<br>/",$variabila_in_care_tii_pagina_de_la_google,$array_final);

La asta ar trebui adaugati cativa parametri referitori la tipurile de caractere, cat de greedy sa fie, etc, dar in mare cam asta e.

Am pus cu bold sectiunile importante, anume link, titlu si descriere.

4. Adaugi valorile din $array_final in baza de date.
|

Nicolae Florescu
New Member
Mesaje: 3
Membru din: Sâm Sep 19, 2009 2:53 pm

Mesajde Nicolae Florescu » Mar Sep 22, 2009 3:40 pm


Pirahna
Senior Member
Mesaje: 5985
Membru din: Dum Aug 22, 2004 2:04 am
Localitate: la birou
Contact:

Mesajde Pirahna » Mar Sep 22, 2009 3:44 pm

<a href mai avea dupa link chestii gen id, onclick, etc, am pus si acolo ca sa le ia pe toate intr-o variabila si sa gasesti finalul tagului ( > ).

Aparent are nevoie de /miU la sfarsit (multiline, case-insensitive, ungreedy), altfel se opreste la primul rezultat.

Uite scriptul complet:


<?php

// google script thingie

$variabila_in_care_tii_pagina_de_la_google = file_get_contents("http://www.google.ro/search?hl=ro&q=casa");
preg_match_all("/<h3 class=r><a href=\"(.*)\"(.*)>(.*)<\/a><\/h3><div class=\"s\">(.*)<br>/miU",$variabila_in_care_tii_pagina_de_la_google,$array_final);

//print_r($array_final); // array final

for($i=0;$i<count($array_final[0]);$i++)
{
$titlu_link[$i] = $array_final[3][$i];
$adresa_link[$i] = $array_final[1][$i];
$descriere_link[$i] = $array_final[4][$i];
}

print_r($titlu_link);
print_r($adresa_link);
print_r($descriere_link);

// haha !

?>
|

olympia
Senior Member
Mesaje: 374
Membru din: Lun Mai 26, 2008 11:12 pm
Contact:

Mesajde olympia » Mar Sep 22, 2009 3:59 pm

Ultima oară modificat Mar Sep 22, 2009 4:01 pm de către olympia, modificat 1 dată în total.

Pirahna
Senior Member
Mesaje: 5985
Membru din: Dum Aug 22, 2004 2:04 am
Localitate: la birou
Contact:

Mesajde Pirahna » Mar Sep 22, 2009 4:00 pm

|

Nicolae Florescu
New Member
Mesaje: 3
Membru din: Sâm Sep 19, 2009 2:53 pm

Mesajde Nicolae Florescu » Mar Sep 22, 2009 4:06 pm


ktapet
PHPRomania Supporter
Mesaje: 13
Membru din: Joi Apr 02, 2009 12:53 am

Mesajde ktapet » Joi Oct 01, 2009 12:07 pm


Pirahna
Senior Member
Mesaje: 5985
Membru din: Dum Aug 22, 2004 2:04 am
Localitate: la birou
Contact:

Mesajde Pirahna » Joi Oct 01, 2009 2:05 pm

|


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 20 vizitatori