kmunky
kmunky

Reputation: 15583

PHP get external page content

i get the html from another site with file_get_contens, my question is how can i get a specific tag value?

let's say i have:

<div id="global"><p class="paragraph">1800</p></div>

how can i get paragraph's value? thanks

Upvotes: 2

Views: 3253

Answers (4)

Christian
Christian

Reputation: 28124

You need to parse the HTML. There are several ways to do this, including using PHP's XML parsing functions.

However, if it is just a simple value (as you asked above) I would use the following simple code:

// your content
$contents='<div id="global"><p class="paragraph">1800</p></div>';

// define start and end position
$start='<div id="global"><p class="paragraph">';
$end='</p></div>';

// find the stuff
$contents=substr($contents,strpos($contents,$start)+strlen($start));
$contents=substr($contents,0,strpos($contents,$end));

// write output
echo $contents;

Best of luck!

Christian Sciberras

(tested and works)

Upvotes: 3

Tim Green
Tim Green

Reputation: 2032

preg_match_all('#paragraph">(.*?)<#is', $input, $output);

print_r($output);

Untested.

Upvotes: 0

hsz
hsz

Reputation: 152216

$input  = '<div id="global"><p class="paragraph">1800</p></div>';
$output = strip_tags($input);

Upvotes: 0

Michael Mrozek
Michael Mrozek

Reputation: 175375

If the example is really that trivial you could just use a regular expression. For generic HTML parsing though, PHP has DOM support:

$dom = new domDocument();
$dom->loadHTML("<div id=\"global\"><p class=\"paragraph\">1800</p></div>");
echo $dom->getElementsByTagName('p')->item(0)->nodeValue;

Upvotes: 4

Related Questions