я использую simple_html_dom
чтобы получить ссылки с URL, но я не могу решить эту проблему, которая у меня есть.
<?php
$title_name_lower = strtolower($title_name);
$file_headers = @get_headers($title_name_lower);
if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
echo '<center><strong style="color: #dd3333;">No links found :( </strong><center>';
}
else {
$title_url = file_get_html(''.$title_name_lower.'');
$items = array();
$items_text = array();
foreach($title_url->find('table[class=alternate_color variousfont] tr td a') as $item) {
$items[] = $item->href.'<br>';
$items_text[] = $item->plaintext.'<br>';
}
//print_r($items_text);
//print_r($items);
$m_title_1 = file_get_html(''.$items[3].'');
$m_title_2 = file_get_html(''.$items[6].'');
$m_title_3 = file_get_html(''.$items[9].'');
$m_title_4 = file_get_html(''.$items[12].'');
$m_title_5 = file_get_html(''.$items[15].'');
$m_title_6 = file_get_html(''.$items[27].'');
$m_title_7 = file_get_html(''.$items[30].'');
$link_1 = $m_title_1->find('div[class=post-single-content box mark-links] a', 0)->href;
$link_2 = $m_title_2->find('div[class=post-single-content box mark-links] a', 0)->href;
$link_3 = $m_title_3->find('div[class=post-single-content box mark-links] a', 0)->href;
$link_4 = $m_title_4->find('div[class=post-single-content box mark-links] a', 0)->href;
$link_5 = $m_title_5->find('div[class=post-single-content box mark-links] a', 0)->href;
$link_6 = $m_title_6->find('div[class=post-single-content box mark-links] a', 0)->href;
$link_7 = $m_title_7->find('div[class=post-single-content box mark-links] a', 0)->href;
}
echo $link_1.' - '.$items_text[3];
echo $link_5.' - '.$items_text[15];
echo $link_7.' - '.$items_text[30];
?>
$items
переменная может быть 100 ссылок может быть только 4, и если $items
например 50 ссылок $items_text
такой же (50).
Теперь, когда я эхо $link_1
, $link_5
, $link_7
На некоторых страницах это работает, но на некоторых он показывает ошибку:
Вызов функции-члена find () для необъекта
Я не хочу показывать какие-либо ошибки. Я хочу, если переменная пуста, чем ничего не показывать.
Вы должны сделать что-то вроде этого, я думаю.
if (is_object($m_title_7)) {
$link_7 = $m_title_7->find('div[class=post-single-content box mark-links] a', 0)->href;
} else {
$link_7 = "";
}
Это проверит, чтобы видеть, является ли $ m_title_7 сначала объектом, и если это так, то он установит $ link_7.
редактировать добавлено еще, чтобы очистить $ link_7
Других решений пока нет …