Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Что не так?
Форумы портала PHP.SU » » Вопросы новичков » Что не так?

Страниц (1): [1]
 

1. alterman91 - 05 Августа, 2014 - 16:38:58 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <html>
  2. <!DOCTYPE html>
  3. <meta charset="utf-8">
  4. <?PHP
  5. include ('simple_html_dom.php');
  6. // Create DOM from URL or file
  7. $list = file_get_html('urls.txt');
  8. $list = explode("\n", $list);
  9.  
  10. foreach($list as $address) {
  11. $html = file_get_html($address);
  12. $all=array();
  13.  
  14.     $image = $html->find('.fotorama__stage__frame fotorama__active fotorama__loaded fotorama__loaded--img img', 0);
  15.     $data['image'] = 'http://novostroy-m.ru' . $image->src;
  16.     unset($image);
  17.  
  18.  
  19.    $description=$html->find('.field-item even p',0);
  20.    $data['description']=$description->innertext;
  21.    unset($description);
  22.  
  23.     $property=$html->find('.property',0);
  24.     $data['property']=$property->innertext;
  25.     unset($property);
  26.  
  27.     $all[] = implode("[",$data);
  28.  
  29.  
  30.  
  31. }
  32. $csv = implode("\n", $all);
  33. file_put_contents('file.csv', $csv);
  34. ?>


Urls.txt
CODE (html):
скопировать код в буфер обмена
  1. http://www.novostroy-m.ru/baza/zhk_zolotaya_zvezda

выводит кучу хлама , с данной страницы просто нужно вытащить все фото, текст описания и адресс
2. esterio - 05 Августа, 2014 - 16:49:55 - перейти к сообщению
http://forum.php.su/topic.php?fo...&topic=14880
не дублируйте темы.
Та все не так

alterman91 пишет:
<html>
<!DOCTYPE html>

доктайп должен быть первым в теле документа

alterman91 пишет:
$list = file_get_html('urls.txt');

должен быть file_get_contents
или еще лучше file

зачем unset понатикали повсюду. переменные и так удаляться

alterman91 пишет:
$all[] = implode("[",$data);
}
$csv = implode("\n", $all);
file_put_contents('file.csv', $csv);

это не csv формат. csv формат имеет разделитель
а у вас будет что-то вроде
Цитата:
[abrakadabra[abrakadabra[abrakadabra
[abrakadabra[abrakadabra[abrakadabra

а также строкы заключены в скобкы
используйте fputcsv
3. alterman91 - 05 Августа, 2014 - 17:43:01 - перейти к сообщению
esterio пишет:
http://forum.php.su/topic.php?fo...&topic=14880
не дублируйте темы.
Та все не так

alterman91 пишет:
<html>
<!DOCTYPE html>

доктайп должен быть первым в теле документа

alterman91 пишет:
$list = file_get_html('urls.txt');

должен быть file_get_contents
или еще лучше file

зачем unset понатикали повсюду. переменные и так удаляться

alterman91 пишет:
$all[] = implode("[",$data);
}
$csv = implode("\n", $all);
file_put_contents('file.csv', $csv);

это не csv формат. csv формат имеет разделитель
а у вас будет что-то вроде
Цитата:
[abrakadabra[abrakadabra[abrakadabra
[abrakadabra[abrakadabra[abrakadabra

а также строкы заключены в скобкы
используйте fputcsv

[ это и есть разделитель в данном случае
4. Tyoma5891 - 05 Августа, 2014 - 17:47:19 - перейти к сообщению
у csv файла есть разделитель поля и разделитель текста, у Вас же просто свой формат какйото но не csv...
5. alterman91 - 05 Августа, 2014 - 17:48:18 - перейти к сообщению
Tyoma5891 пишет:
у csv файла есть разделитель поля и разделитель текста, у Вас же просто свой формат какйото но не csv...

я просто указываю в csv разделитель [
(Добавление)
Tyoma5891 пишет:
у csv файла есть разделитель поля и разделитель текста, у Вас же просто свой формат какйото но не csv...
6. Tyoma5891 - 05 Августа, 2014 - 17:53:12 - перейти к сообщению
пользуйтесь
на каждом этапе для $data
7. alterman91 - 05 Августа, 2014 - 17:57:54 - перейти к сообщению
Tyoma5891 пишет: на каждом этапе для $data


PHP:
скопировать код в буфер обмена
  1. <!DOCTYPE html>
  2. <html>
  3.  
  4. <meta charset="utf-8">
  5. <!--error--><b>Fatal error</b>:  Call to a member function find() on a non-object in <b>D:\home\test1.ru\www\parser.php</b> on line <b>15</b><script language=JavaScript src='/denwer/errors/phperror_js.php'></script>
8. Tyoma5891 - 05 Августа, 2014 - 18:02:11 - перейти к сообщению
видимо проблемка в этой строке:
PHP:
скопировать код в буфер обмена
  1. $html = file_get_html($address);

$html не явлеятся объектом класса

 

Powered by ExBB FM 1.0 RC1