Hey
Weet iemand hoe je in een uitgelezen broncode (via CURL), rij per rij kan zoeken op een bepaalde waarde:
Ik heb nu dit maar dit lukt niet echt.
$result2 = de volledige broncode
$rijen[] = $result2;
// werk iedere rij af
foreach($rijen as $rij)
{
//echo($result2);
$beurscijfer = get_string_between($result2, "R><TD id=stats class=COL><PRE class=WW>Backed up", "Throughput");
echo($beurscijfer);
}
- uitlezen broncode
-
20-07-2012, 14:23 #1
- Berichten
- 66
- Lid sinds
- 15 Jaar
uitlezen broncode
-
-
20-07-2012, 14:28 #2
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: uitlezen broncode
Misschien kun je hier wat mee: http://simplehtmldom.sourceforge.net/
Heb ik pasgeleden ook nog gebruikt, de ingelezen broncode lees je in de SimpleHTMLDom in, en vervolgens kun je met soort jQuery commando's elementen ophalen (en hun content) bijv
$dom->find('td[id=stats]')->innertext;
Als je echt per regel wilt gaan zoeken moet je de verkregen broncode gewoon exploden op \n (newline) en elke regel apart laten matchen met je zoekwoord. Dus iets als: $rijen = explode($result2, "\n");
Mocht dat niet direct lukken (omdat er geen \n character gevonden wordt, zou best kunnen) kun je altijd nog met de SimpleHTMLDom class de broncode inlezen en met $textCode = str_get_html($broncode)->plaintext; alsnog de normale tekst kunnen krijgen, die zou dan wel weer te exploden moeten zijn op het newline character.
-
20-07-2012, 14:37 #3
- Berichten
- 66
- Lid sinds
- 15 Jaar
Re: uitlezen broncode
Dus dan zou het zo moeten?
$result2 = str_get_html($pagina)->plaintext;
//$rijen = explode($result2, "\n");
// werk iedere rij af
foreach($rijen as $rij)
{
//echo($result2);
$beurscijfer = get_string_between($result2, "R><TD id=stats class=COL><PRE class=WW>Backed up", "Throughput");
$deel1 = get_string_between($beurscijfer,'Processed ',' bytes in ');
$deel2 = get_string_between($beurscijfer,'bytes in ','onds');
echo($beurscijfer);
echo('<br>'.$deel1);
echo("<br>".$deel2);
}
-
20-07-2012, 14:45 #4
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: uitlezen broncode
Ik ken de broncode niet van je pagina.. maar volgens mij kan het best stukken makkelijker dan wat je probeert te doen. Als je met de SimpleHTMLDom class de broncode inlaad en vervolgens een loop maakt door de resultaten van $dom->find('td')
En daarbij eerst een controle doet met een regex op 'Processed (.*) bytes in (.*) seconds' of iets dergelijks. Dan heb je direct de resultaten die je nodig hebt al bij de regex gevonden..
Als een bepaalde class een resultaten kolom aangeeft, kun je ook nog specifieker zoeken in de DOM met $dom->find('td[class=classnaam]');
Anyway, zoals je het hebt moet het ook wel lukken ja.. Je kunt het makkelijk genoeg testen:
$result = str_get_html($pagina)->plaintext;
$rijen = explode($result, "\n");
for($i=0; $i<count($rijen); $i++) {
echo 'regel '.$i.': '.$rijen[$i].'<br>';
}
als je alleen regel 0 ziet staan, dan heeft hij niet goed geexplode op het newline teken. Zie je regel 0 t/m regel X dan heb je dus elke regel apart in die array $rijen staan en moet je het op jouw manier ook prima kunnen doen ja.
-
20-07-2012, 14:50 #5
- Berichten
- 66
- Lid sinds
- 15 Jaar
Re: uitlezen broncode
Call to undefined function str_get_html() in ...
Moet ik nog een bepaalde class includen?
-
20-07-2012, 14:51 #6
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: uitlezen broncode
Er staat een download link op de pagina die ik je gaf. Het is inderdaad geen class die standaard bij PHP zit.
Aanvullend bericht:
http://sourceforge.net/projects/simp...d?source=filesLaatst aangepast door Joshua de Gier : 20-07-2012 om 14:51 Reden: Automatisch samengevoegd.
-
20-07-2012, 15:00 #7
- Berichten
- 66
- Lid sinds
- 15 Jaar
Re: uitlezen broncode
Ik het geprobeerd en deze code (class is er)
<?php
// example of how to use basic selector to retrieve HTML contents
include('../simple_html_dom.php');
// get DOM from URL or file
$pagina = file_get_html('http://ip.xx.xxx.hier/~xxxxx/werk/intern.php');
$result = str_get_html($pagina)->plaintext;
$rijen = explode($result, "\n");
for($i=0; $i<count($rijen); $i++) {
echo 'regel '.$i.': '.$rijen[$i].'<br>';
}
?>
en helaas zie ik enkel regel 0
-
20-07-2012, 15:03 #8
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: uitlezen broncode
Ik heb het fout om gezegd zie ik :-) Parameters van explode() even omwisselen:
$rijen = explode("\n", $result);
// Edit: ik ben ervandoor op kantoor :-) dus mocht je geen reactie meer krijgen van me weet je waarom. Je hebt in elk geval een duw in de juiste richting gekregen lijkt me en volgens mij gaat het je wel lukken. Zo niet => google is ook jouw beste vriend! :D
-
20-07-2012, 15:07 #9
- Berichten
- 2.690
- Lid sinds
- 15 Jaar
Re: uitlezen broncode
+1 voor Joshua.
Reactie van mij is offtopic maar af en toe moet het gezegd worden als iemand zijn best heeft gedaan.
-
20-07-2012, 15:09 #10
- Berichten
- 66
- Lid sinds
- 15 Jaar
Re: uitlezen broncode
Bedankt, helaas doet hij het nog steeds niet goed.(vooral in de foreach lus(ziet u wrm ik de gegevens niet kan ophalen?))
PHP Code:<?php
// example of how to use basic selector to retrieve HTML contents
include('../simple_html_dom.php');
function get_string_between($string, $start, $end)
{
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
// get DOM from URL or file
$pagina = file_get_html('httplink);
$result = str_get_html($pagina)->plaintext;
$rijen = explode("\n", $result);
foreach($rijen as $rij){
$beurscijfer = get_string_between($rij, "R><TD id=stats class=COL><PRE class=WW>Backed up", "Throughput");
$deel1 = get_string_between($beurscijfer,'Processed ',' bytes in ');
$deel2 = get_string_between($beurscijfer,'bytes in ','onds');
echo($beurscijfer);
echo('<br>'.$deel1);
echo("<br>".$deel2);
}
?>
-
20-07-2012, 15:59 #11
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: uitlezen broncode
doe eens:
echo count($rijen); ertussen plaatsen, dan weten we in elk geval of we al meerdere resultaten hebben of niet.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic