Я хочу использовать PHP Simple HTML DOM Parser, чтобы отобразить все мои достижения Left4Dead Steam на моем сайте. Список достижений на сайте пара сообщества выглядит примерно так:PHP Простая проблема с DOM Parser PHP с split()
<img src="…" /><br />
<div class="achieveImgHolder"><img src="…" /></div>
<div class="achieveTxtHolder">
<img src="…" />
<div class="achieveTxt">
<h3>Stand Tall</h3>
<h5>Survive a campaign without being incapacitated.</h5>
</div>
</div>
<br clear="left" />
Активные достижения отделены от неактивных достижений по
<br /><br /><br />
Так что я написал этот код, чтобы показать свои достижения:
<?php
include("simple-html-dom-parser.php");
$achievementPage = file_get_html("http://steamcommunity.com/id/snorpey/stats/L4D?tab=achievements");
$activeInactiveSplit = split("<br /><br /><br />", $achievementPage);
$actives = str_get_html($activeInactiveSplit[0]);
$inactives = str_get_html($activeInactiveSplit[1]);
foreach($actives->find(".achieveTxtHolder") as $achievement)
{
echo $achievement->find(".achieveTxt h3", 0)->innertext;
}
?>
Я всегда получаю следующую ошибку и понятия не имею, откуда она взялась.
Fatal error: Call to a member function find() on a non-object in testing.php on line 8
Я проверил парсер с другой частью страницы, и он работал правильно. Кажется, что у него проблемы с разделением страницы.
echo $actives // works w/out errors
Что именно здесь не так?
Благодарим за быстрый ответ. Я изменил сценарий, как вы предлагали, но он продолжает работать с той же ошибкой. – snorpey
Вы пытались сбросить содержимое '$ activeInactiveSplit [0]' и '$ activeInactiveSplit [1]' (через что-то вроде 'print_r ($ activeInactiveSplit)' и посмотреть, соответствуют ли они вашим ожиданиям? Аналогично, попробуйте сбросить то, что вы вернитесь из своего первого вызова 'find()' и посмотрите, что вы ожидаете. – Amber
@Snorpey и, пожалуйста, нажмите на чек, чтобы принять ответ Дава, thx. – Don