2013-05-21 2 views
2

У меня есть некоторый код, чтобы получить некоторые общественности имеющихся данных, которые я забирающие с сайтаошибки ручки в простом HTML DOM

//Array of params 

foreach($params as $par){ 

$html = file_get_html('WEBSITE.COM/$par'); 

$name = $html->find('div[class=name]'); 
$link = $html->find('div[class=secondName]'); 

foreach($link as $i => $result2) 
{ 

$var = $name[$i]->plaintext; 
echo $result2->href,"<br>"; 
//Insert to database 
} 
} 

Так что идет на данном веб-сайт с другим параметром в URL каждый раз, когда на цикл, я продолжаю получать ошибки, которые нарушают сценарий, когда появляется 404 или сервер временно недоступен. Я попробовал код, чтобы проверить заголовки и проверить, является ли $ html объектом первым, но я все еще получаю ошибки, есть ли способ, которым я могу просто пропустить ошибки и оставить их и продолжить с помощью скрипта?

код я попытался проверяемых заголовки

function url_exists($url){ 
if ((strpos($url, "http")) === false) $url = "http://" . $url; 
$headers = @get_headers($url); 
//print_r($headers); 
if (is_array($headers)){ 
//Check for http error here....should add checks for other errors too... 
if(strpos($headers[0], '404 Not Found')) 
    return false; 
else 
    return true;  
}   
else 
return false; 
} 

код я попытался проверить, если объект

if (method_exists($html,"find")) { 
// then check if the html element exists to avoid trying to parse non-html 
if ($html->find('html')) { 
     // and only then start searching (and manipulating) the dom 

ответ

1

Вы должны быть более конкретными, какие ошибки вы получаете? Какие ошибки строки отсутствуют?

Edit: Так как вы сделали указать ошибки вы получаете, вот что нужно сделать:

Я заметил, что вы используете SINGLE кавычки строкой, которая содержит переменные. Это не сработает, вместо этого используйте двойные кавычки, то есть:

$html = file_get_html("WEBSITE.COM/$par"); 

Возможно, это проблема?

Кроме того, вы можете использовать file_get_contents()

if (file_get_contents("WEBSITE.COM/$par") !== false) { 
    ... 
} 
+0

не удалось открыть поток: HTTP запрос не удалось! HTTP/1.1 503 Service Временно недоступен, или он дает 404. Связывание, которое он ломает, - это foreach ($ link as $ i) – Bren

+0

Отредактировано мое первоначальное сообщение, так как вы добавили фактическую ошибку и где она встречается –

+0

Я изменил кавычки и устали, если ($ html! == false) запустите цикл, но я все равно получаю много ошибок, когда определенная страница возвращается как 404 или недоступна и разбивает скрипт – Bren

Смежные вопросы