PHP получить внешний контент страницы - PullRequest
2 голосов
/ 22 апреля 2010

я получаю html с другого сайта с file_get_contens, мой вопрос: как я могу получить определенное значение тега?

скажем, у меня есть:

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

как я могу получить значение абзаца? спасибо

Ответы [ 4 ]

4 голосов
/ 22 апреля 2010

Если пример действительно такой тривиальный, вы можете просто использовать регулярное выражение. Для общего анализа HTML, PHP имеет поддержку DOM:

$dom = new domDocument();
$dom->loadHTML("<div id=\"global\"><p class=\"paragraph\">1800</p></div>");
echo $dom->getElementsByTagName('p')->item(0)->nodeValue;
3 голосов
/ 22 апреля 2010

Вам нужно разобрать HTML.Есть несколько способов сделать это, в том числе с помощью PHP-функций синтаксического анализа XML.

Однако, если это просто простое значение (как вы спрашивали выше), я бы использовал следующий простой код:

// 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;

Удачи!

Christian Sciberras

(проверено и работает)

0 голосов
/ 22 апреля 2010
preg_match_all('#paragraph">(.*?)<#is', $input, $output);

print_r($output);

Непроверенные.

0 голосов
/ 22 апреля 2010
$input  = '<div id="global"><p class="paragraph">1800</p></div>';
$output = strip_tags($input);
...