Jump to content
UnixDevel

Ajutor[PHP]

Recommended Posts

Cum spune si titlu ,am nevoie de ajutor :

problema este urmatoare :exista ceva prin care sa imi dau seama ,de o portiune mare de text dintr-0 pagina html,adika extrag continutul unei pagini html prin metoda file_get_contents si ca raspuns primesc o pagina html ,cum imi pot da seama generic care este cea mai mare portiune de text ,fara indetificatoare css

Link to comment
Share on other sites

Banuiesc ca vrei sa faci ceva de scrape. Normal ar fi sa te uiti pe site si sa identifici unde este contentul. De exemplu, sa spunem ca el se afla in "<div id='content'>". Tu iti faci un preg_match sa-ti extraga absolut tot ce este in div-ul cu id-ul content.

ps: stiu ca id-ul div-ului este un identificator css, insa nu vad cum ai putea face daca ai 3 paragrafe anume in site, sa le extragi si sa le vezi care este mai mare. (fara sa fie necesara o verificare ceva in prealabil sau sa le stii dupa identificator)

Edited by aelius
Link to comment
Share on other sites

Incearca sa bagi asta:

PHP Simple HTML DOM Parser


require_once 'simple_html_dom.php';
$page = file_get_contents('veveve.page.com');
$page = str_get_html($page);
$pageDivs = $page->find('div');

$maxLength = 0;
$maxKey = false;

foreach($pageDivs as $pageDivKey => $pageDivData)
{
$currentLen = strlen($pageDivData->plaintext);
if($currentLen > $maxLength)
{
$maxLength = $currentLen;
$maxKey = $pageDivKey;
}
}

if($maxKey)
{
echo '<pre>'.print_r($pageDivs[$maxKey], true).'</pre>'; // Foarte mult verbose, sa-ti faci o idee
echo $pageDivs[$maxKey]->plaintext;
}

Inventat la minut ca salam, forum in quick edit. Ti-am dat o idee, va trebui sa-l analizezi.

EDIT: E posibil ca daca un div are un alt div in el, cand ii dai plaintext sa-ti afiseze si div-ul child. Daca-i asa mai ai putin de munca. Poti modifica div cu orice alt tag.

  • Upvote 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...