develpr
develpr

Reputation: 1406

How to parse plaintext data from a particular url with PHP?

I am using this code to pull data to my site from an external source, and am wondering how I would parse this using PHP.

include(app_path().'/Includes/simple_html_dom.php');
$html = file_get_html("http://www.teamsideline.com/sites/parkfun/schedule/153461/Adult-Outdoor-Soccer-Mens-Competitive", NULL, NULL, NULL, NULL);
$data = array();
foreach($html->find("tbody tr") as $tr){
$row = array();
foreach($tr->find("td") as $td){
    /* enter code here */
    $row[] = $td->plaintext;
}
$data[] = $row;
}

I am trying to extract the standings data in particular, and recreate the standings table on my page with the data from this site. How can I achieve this?

Upvotes: 1

Views: 491

Answers (1)

Nathan van Jole
Nathan van Jole

Reputation: 521

Seems like the website doesn't allow file_get_html(). Atleast for me it's not working.

Anyway, you could use cUrl to get the html string and then parse that string using str_get_html().

To display the table on your website, simply echo the found data like this:

$url = 'http://www.teamsideline.com/sites/parkfun/schedule/153461/Adult-Outdoor-Soccer-Mens-Competitive';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
$result = curl_exec($curl);

$html = str_get_html($result);

$data = "";

$data .= "<table width='100%'>";

    foreach($html->find("tbody tr") as $tr){

        $data .= "<tr>";

        foreach($tr->find("td") as $td){

            $data .= "<td style='border: 1px black solid'>";
            $data .= $td->plaintext;
            $data .= "</td>";

        }

        $data .= "</tr>";

    }

$data .= "</table>";

echo $data;

Upvotes: 1

Related Questions