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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Последовательная обработка строк

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
alterman91
Отправлено: 29 Июля, 2014 - 17:27:30
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Июнь 2014  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <meta charset="utf-8"/>
  5. </head>
  6. <body>
  7. <?
  8. include 'simple_html_dom.php';
  9. // Create DOM from URL or file
  10.  
  11. $list = file_get_contents('urls.txt');
  12. $list = explode("\n", $list);
  13. $all = array();
  14.  
  15. foreach($list as $address) {
  16.     $html = file_get_html($address);
  17.  
  18.     $image = $html->find('.agency-card-logo img', 0);
  19.     $data['image'] = 'http://kvadroom.ru' . $image->src;
  20.     unset($image);
  21.  
  22.     $name = $html->find('.agency-card h2', 0);
  23.     $data['name'] = $name->plaintext;
  24.     unset($name);
  25.  
  26.     $description = $html->find('.f14 p', 0);
  27.     $data['description'] =  str_replace("\r\n", '',$description->plaintext);
  28.     unset($description);
  29.  
  30.     $phone = $html->find('.tel', 0);
  31.     $data['phone'] = explode('+', preg_replace("/\s/i", '',$phone->plaintext));
  32.  
  33.     for ($i=0; $i < count($data['phone']); $i++) {
  34.         if (empty($data['phone'][$i])) unset($data['phone'][$i]);
  35.     }
  36.     $data['phone'] = implode(",",$data['phone']);
  37.     //echo $all;
  38.     $all[] = implode("[",$data);
  39.     $csv = implode("\n", $all);
  40. }
  41.  
  42. file_put_contents('file.csv', $csv);
  43.  
  44. ?>
  45. </body>
  46. </html>

в файле ursl.txt находятся ссылки, если помещать туда больше 10 то парсер прогружается но не записывает,нужно сделать так что бы от туда бралось по 10 ссылкок записывалось и перезапускалось пока ссылки не закончаться
 
 Top
Tyoma5891
Отправлено: 29 Июля, 2014 - 17:37:20
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 621
Дата рег-ции: Авг. 2013  


Помог: 5 раз(а)




первое что пришло в голову, сделайте текущий код функцией например pars($key) и потом в цикле Вашем ставите условие:
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($list as $key => $address) {
  3. if ($key > 10)
  4. {
  5. //тут выполнятете что нужно
  6. }
  7. else
  8. {
  9. pars($key);
  10. }
  11. }
  12.  

(Отредактировано автором: 29 Июля, 2014 - 17:37:58)

 
 Top
esterio
Отправлено: 29 Июля, 2014 - 17:41:45
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




проще убрать лимит времени и использовать multi_curl.
 
 Top
alterman91
Отправлено: 29 Июля, 2014 - 17:56:53
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Июнь 2014  


Помог: 0 раз(а)




Tyoma5891 пишет:
первое что пришло в голову, сделайте текущий код функцией например pars($key) и потом в цикле Вашем ставите условие:
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($list as $key => $address) {
  3. if ($key > 10)
  4. {
  5. //тут выполнятете что нужно
  6. }
  7. else
  8. {
  9. pars($key);
  10. }
  11. }
  12.  


PHP:
скопировать код в буфер обмена
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <meta charset="utf-8"/>
  5. </head>
  6. <body>
  7. <?
  8. include 'simple_html_dom.php';
  9.  
  10. // Create DOM from URL or file
  11. foreach($list as $key => $address) {
  12. if ($key > 10)
  13. {
  14.  
  15. $list = file_get_contents('urls.txt');
  16. $list = explode("\n", $list);
  17. $all = array();
  18.  
  19. foreach($list as $address) {
  20.     $html = file_get_html($address);
  21.  
  22.     $image = $html->find('.agency-card-logo img', 0);
  23.     $data['image'] = 'http://kvadroom.ru' . $image->src;
  24.     unset($image);
  25.  
  26.     $name = $html->find('.agency-card h2', 0);
  27.     $data['name'] = $name->plaintext;
  28.     unset($name);
  29.  
  30.     $description = $html->find('.f14 p', 0);
  31.     $data['description'] =  str_replace("\r\n", '',$description->plaintext);
  32.     unset($description);
  33.  
  34.     $phone = $html->find('.tel', 0);
  35.     $data['phone'] = explode('+', preg_replace("/\s/i", '',$phone->plaintext));
  36.  
  37.     for ($i=0; $i < count($data['phone']); $i++) {
  38.         if (empty($data['phone'][$i])) unset($data['phone'][$i]);
  39.     }
  40.     $data['phone'] = implode(",",$data['phone']);
  41.     //echo $all;
  42.     $all[] = implode("---",$data);
  43.  
  44. }
  45.  
  46. $csv = implode("\n", $all);
  47. $file = fopen("test.csv", "w+");
  48. fputs($file, $csv);
  49. fclose($file);
  50. }
  51. else
  52. {
  53.     pars($key);
  54. }
  55. }
  56.  
  57.  
  58. ?>
  59. </body>
  60. </html>
  61.  

так?непомогает
 
 Top
Tyoma5891
Отправлено: 29 Июля, 2014 - 17:59:05
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 621
Дата рег-ции: Авг. 2013  


Помог: 5 раз(а)




эммм....
почитайте что такое функции хотя бы касательно пхп...
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB