PHP.SU

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

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

> Найдено сообщений: 12
Hazrat Отправлено: 30 Июля, 2012 - 12:15:35 • Тема: Настройка NAT виртуальный веб сервер для доступа к локальным сайтам через WIFI • Форум: Apache и другие веб-серверы

Ответов: 1
Просмотров: 401
Приветствую всех.
У меня Возникла необходимость, получения доступа к сайтам на локальном веб сервере (open-server), через WIFI на ноутбук.
Ситуация такая есть WiFi роутер ASUS RT-N10 к нему подключен через кабель Комп, на котором стоит open-server(виртуальный сервер), хочу получить доступ к сайтам стоящие на open-server , через wifi на ноутбук, Возможно ли это? Вроде читал про NAT , но толком настроить так и не получилось, что подскажите?
Hazrat Отправлено: 13 Июля, 2012 - 22:15:44 • Тема: Медленная работа класса Simple_html_dom • Форум: HTTP и PHP

Ответов: 1
Просмотров: 2394
Нужна помощь, есть прайс на стороннем ресурсе, я по id тырю с другого сайта информацию о товаре, в прайсе 24000 товаров, используя simple_html_dom еле как пытаюсь спарсить, но блин все очень очень медленно парсится примерно на все уходит где то 2 дня, это нереально долго вот прмер кода, обьясните в чем прчина? я думаю скорей всего в simple_html_dom может использовать phpQuery?
сам код
PHP:
скопировать код в буфер обмена
  1. $html = file_get_html("http://www.******.ru/*****/*****/*******/$art");  # парсим с сайта
  2.  
  3.    
  4.     /*---------- Переменные которые работают с SIMPLE HTML DOM -- они подготавливают документ для *******----------*/
  5.  
  6.     $table = $html->find( 'table.text tbody', 1); # таблица которую ьуду парсить
  7.    if (isset($table)) {
  8.         $tr = $table->find('tr');  # тег tr где находиться нужная информация
  9.    } else {
  10.         $tr = array();
  11.     }
  12.    
  13.    
  14.     # Так как парсинг фотографий долгий, отправляем запрос что бы база не закрыла сессию                    
  15.    $sql_time = 'SET SESSION wait_timeout = 360000000';
  16.     DB_MYSQl($sql_time);
  17.    
  18.      # ---- Обработка изображений ------ #              
  19.    $img_html_element = $html->find('td.cat-r1');
  20.     $img_inc = 0;
  21.     $names_img = '';
  22.     foreach ($img_html_element as $img) {
  23.         $img_href = $img->first_child()->href ;
  24.         $thumbs = $img->first_child()->first_child()->src;
  25.         $names_images = $art.'_img_'.$img_inc.'.jpg';
  26.         copy($thumbs , './parser/thum/'.$names_images);
  27.         copy($img_href , './parser/img/'.$names_images);
  28.         $img_inc++;
  29.         $names_img .= ' '.$names_images;
  30.     }
  31.     $names_img = trim($names_img);
  32.     $names_img = $names_img == '' ? 'none.png' : $names_img;
Hazrat Отправлено: 28 Июня, 2012 - 19:58:58 • Тема: Парсер XLS , чем и как правильно его обработать? • Форум: XML и его обработка

Ответов: 0
Просмотров: 1258
Какой библеотекой лучше воспользоваться для выполнения данной операции, PHPEXEL вроде только он нет?
Hazrat Отправлено: 22 Июня, 2012 - 18:25:21 • Тема: Ошибка в SIMPLE_HTML_DOm , помогите разобраться в чем дело • Форум: XML и его обработка

Ответов: 3
Просмотров: 4247
fdr21 пишет:
Цитата:
Fatal error: Cannot redeclare file_get_html()

Фатальная ошибка: не могу повторно объявить file_get_html()
Функция повторно объявляется!!!
по ходу тут!
C:\Users\Hazard\new_server\domains\meridian\libs\simple_html_dom\simple_html_dom.php on line 80


Ну вот, это получаеться ошибка в библеотеки simple_html_dom ?
(Добавление)
Мелкий пишет:
Hazrat пишет:
дома на моем компьютере работает все стабильно

Чего быть не может. Чем-то код различается между собой либо проблемный кусок не вызывается на вашей машине.

Ну а самая распространённая причина ошибки - объявление функции в цикле или повторный include/require (на правах пророка - это ваш случай и есть)


Я сам с удивлением смотрю на моей домашней машинке с вебсервером openserver все стабильно без проблем работает, копирую и ставлю это же на нескольких других, эт ошибка выскакивает, а цикла там вообше нет!
Hazrat Отправлено: 22 Июня, 2012 - 13:28:19 • Тема: Ошибка в SIMPLE_HTML_DOm , помогите разобраться в чем дело • Форум: XML и его обработка

Ответов: 3
Просмотров: 4247
Вот такая ошибка меня достало уже, дома на моем компьютере работает все стабильно парсит сайт как нужно, но только как я его установлю на какой нибудь сервер или просто на локальный вебсервер другого компьютера сразу вот такая ошибка
Fatal error: Cannot redeclare file_get_html() (previously declared in C:\Users\Hazard\new_server\domains\meridian\libs\simple_html_dom\simple_html_dom.php:65) in C:\Users\Hazard\new_server\domains\meridian\libs\simple_html_dom\simple_html_dom.php on line 80

С чем это связано??? я не понимаю
Hazrat Отправлено: 16 Июня, 2012 - 08:22:34 • Тема: Ограничение на выполнение скрипта. • Форум: Операционная система и системные вызовы

Ответов: 6
Просмотров: 3949
DeepVarvar пишет:
Hazrat пишет:
хостинг-сумащедший
Мой собственный.

У тебя собственный хостинг? имею ввиду можно платно устроиться у тебя на хостинге??? дай ссылку пожалуйста.
Hazrat Отправлено: 15 Июня, 2012 - 23:04:12 • Тема: Ограничение на выполнение скрипта. • Форум: Операционная система и системные вызовы

Ответов: 6
Просмотров: 3949
По моему, третий вариант по-русски дагестанцу очень подходит, спасибо за подсказку, но все же это не решение, не знаешь какой нибудь хостинг-сумащедший который не ограничивает время на выполнение скрипта нет таких?
Hazrat Отправлено: 15 Июня, 2012 - 21:14:03 • Тема: Ограничение на выполнение скрипта. • Форум: Операционная система и системные вызовы

Ответов: 6
Просмотров: 3949
Что делать в случае если у меня парсер, который парсит около 12 часов информацию, но он выполняеться лишь на 30 секунд, смотря как настроен хостинг, а хостер не хочет увеличивать время? пожалуйста не предлогайте VPS, или как то реализовать парсер по определенному времени через CRON планировшик каждые пять минут парсить? но это долго ибо интернет магазин и ему нужны реальные данные о наличии на складе дистрибьютера того или иного товара как поступить в данной ситуации?
Hazrat Отправлено: 07 Июня, 2012 - 11:05:59 • Тема: необьяснимое происходит в функции, несколько раз записывает в базу одну и туже информацию • Форум: Работа с СУБД

Ответов: 1
Просмотров: 836
Народ, нужна помощь, внизу указана функция, она по условию должна прописывать в базу один раз информацию спарсенную а она циклически вводит несколько раз в базу. вроде в цикла нет в том месте где отправляю sql запрос.

PHP:
скопировать код в буфер обмена
  1. function PARSER () {  
  2.    
  3.     /* - Здесь мы будем вытасскивать с базы все товары и по очереди добавлять в новую таблицу, группируем - */
  4.     # $basa_sql_select_tovar = 'SELECT * FROM '
  5.    $art = '557445';  
  6.     include './libs/simple_html_dom/simple_html_dom.php';  # Подключаем библеотеку  DOM - simple_dom_html
  7.    $html = new simple_html_dom();
  8.     $art = trim($art);
  9.     $html->load_file("http://merlion/");  # парсим с сайта мерлиона
  10.    #$html = file_get_html('./files/parrrrrser.htm');
  11.    
  12.     /*---------- Переменные которые работают с SIMPLE HTML DOM -- они подготавливают документ для марсинга ----------*/
  13.    
  14.     $name =  iconv('windows-1251','utf-8',$html->find('h1',0)->plaintext); # Название товара
  15.    
  16.     $table = $html->find( 'table.text tbody', 1); # таблица которую ьуду парсить
  17.    $tr = $table->find('tr');                     # тег tr где находиться нужная информация
  18.    
  19.     static $cpu  = '';       # Процессор (core i3)
  20.    static $cpu_parent = ''; # AMD vs INTEL
  21.    static $ram  = '';       # RAM  
  22.    static $hdd  = '';       # HDD
  23.    static $video = '';      # VIDEO GRAPHIC
  24.    static $diagonal = '';   # Диагональ
  25.    static $os = '';         # Операционная система
  26.    static $model_cpu = '' ; # Модель процессора ( 2600K == core i7)  
  27.    static $model = '';      # Модель Ноутбука  
  28.    static $part_no = '';    # Артикул производителя
  29.    static $brand = '';      # Бренд производителя
  30.    static $seria = '';      # Серия ноутбука. например ThinkPad
  31.    
  32.     foreach ( $tr as $value ) { # В данном цикле перебираем все возможные описания товара
  33.        
  34.         $info  =  iconv('windows-1251','utf-8',$value->first_child()->first_child()   == '' ? $value->first_child()->plaintext : $value->first_child()->first_child()->plaintext);
  35.         $info_ =  iconv('windows-1251','utf-8',$value->last_child()->plaintext )  ;
  36.         $info  = trim($info);
  37.         $info_ = trim($info_);
  38.        
  39.         if ($info == 'Ноутбуки Процессор Серия') {
  40.             $cpu  = $info_;
  41.         } elseif ($info == 'Ноутбуки Процессор Производитель') {
  42.            
  43.             if ($info_ == 'AMD') {
  44.                 $cpu_parent = 'AMD';
  45.             } elseif ($info_ == 'INTEL') {
  46.                 $cpu_parent = 'INTEL';
  47.             }
  48.                        
  49.         } elseif ($info == 'Ноутбуки Объем оперативной памяти') {
  50.             $ram = $info_;
  51.         } elseif ($info == 'Жесткий диск') {
  52.             $hdd = $info_;
  53.         } elseif ($info == 'Ноутбуки Модель Графического Контроллера') {
  54.             $video = $info_;
  55.         } elseif ($info == 'Ноутбуки Размер экрана') {
  56.             $diagonal = $info_;
  57.         } elseif ($info == 'Операционная система') {
  58.             $os = $info_;
  59.         } elseif ($info == 'Ноутбуки Модель процессора') {
  60.             $model_cpu = $info_;
  61.         } elseif ($info == 'Модель') {
  62.             $model = $info_;
  63.         } elseif ($info == 'PatrNumber/Артикул Производителя') {
  64.             $part_no = $info_;
  65.         } elseif ($info == 'Брэнд') {
  66.             $brand = $info_;
  67.         } elseif ($info == 'Ноутбуки Серия') {
  68.             $seria = $info_;
  69.         }
  70.        
  71.     }
  72.    
  73.     $cpu = $cpu_parent.' '.$cpu;  # Добавляем производителя процессорв в начало
  74.    $sql_insert_tovar = "INSERT INTO `notebooks` (`No`, `type`, `brand`, `partNo`, `model`, `seria`, `name`, `cpu`, `ram`, `hdd`, `video`, `cpu_parent`, `os`, `model_cpu`, `price`, `avail`)
  75.                         VALUES ( '$art', 'Ноутбуки', '$brand', '$part_no', '$model', '$seria', '$name', '$cpu', '$ram', '$hdd', '$video', '$cpu_parent', '$os', '$model_cpu', '', '');";
  76.     DB_MYSQl($sql_insert_tovar);
  77.  
  78.      
  79.      
  80.       /*************** И так перебор информации окончен, начнем перебирать изображения и сохранять в базу данных ************
  81.       *---------------------------------------------------------------------------------------------------------------------*/
  82.       /*
  83.       $img_html = $html->find('td.cat-r1');
  84.       $icount = 0;
  85.       $img_sql = array();
  86.       foreach ($img_html as $images) {
  87.          $img_link = $images->first_child()->href;
  88.          $thumbs =  $images->first_child()->first_child()->src;
  89.          
  90.          $name_img = $art.'_image_'.$icount.'.jpg'; # Название фотографий
  91.          copy($thumbs ,'./parser/thum/'.$name_img);
  92.          copy($img_link ,'./parser/img/'.$name_img);
  93.  
  94.          
  95.    
  96.          $img_sql[$icount] = $name_img;
  97.          $icount++;
  98.       }
  99.       */
  100.      
  101.      
  102.          
  103.  
  104.    
  105.  
  106.  }
Hazrat Отправлено: 03 Июня, 2012 - 20:18:45 • Тема: Как узнать количество дочерних элементов в simple hyml dom • Форум: XML и его обработка

Ответов: 0
Просмотров: 1610
Делаю парсер html, дошел до место где нужно от присуствуюшего количества элемента, заноcить их в базу через цикл for () , подскажите пожалуйста как узнать количество дочерних элементов в simple html dom ?

PHP:
скопировать код в буфер обмена
  1. $table = $html->find( 'table.text tbody', 1);
Hazrat Отправлено: 30 Мая, 2012 - 20:33:06 • Тема: Ошибка в SQL , Warning: mysql_error() expects parameter 1 to be resource, null given in • Форум: Работа с СУБД

Ответов: 21
Просмотров: 16869
есть функция , которая парсит xml файл , в котором 15000 товаров, нужно их завести в базу данных, Все вроде нормально , но когда доходит до 4000 строки выходит ошибка типо
Warning: mysql_error() expects parameter 1 to be resource, null given in W:\html\meridian\www\modules\main\control.php on line 60

Сама функция
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. function PARSER_XML () {
  4.     $price_xml = 'files/price.xml';      # Документ в Формате XML для Парсинга
  5.    
  6.     $xml = simplexml_load_file($price_xml); # Инициируем обьект SimpleXML
  7.    
  8.     define('MONEY',$xml->Currency); # Курс Валюты в данном XML Документе
  9.    define('DATE',$xml->Date);      # Дата Создания XML файла , Актуальность ее
  10.    
  11.     define ('NUM_CATALOG', $xml->G1->count()); # Число каталогов с тегом G1 т.е самых начальных это Комплектуюшие ноутбуки и т.д.
  12.    
  13.     for ($i = 0; $i < NUM_CATALOG; $i++ ) {
  14.         $root = $xml->G1[$i]; # Корневой элемент. Как бы ссылка для доступа к дочерним элементам
  15.        $G1_MainGroup = $root->MainGroup; # тег MainGroup -  это тег содержаший название данной категории (Категория КОМПЛЕКТУЮЩИЕ ДЛЯ КОМПЬЮТЕРОВ , НОУТБУКИ )
  16.        
  17.         $root_G2 = $root->G2; # Дочерний Элемент G2  
  18.        $root_G2_num =  $root_G2->count(); # Число дочерних Элементов в G2
  19.        
  20.        
  21.         for ( $y = 0 ; $y < $root_G2_num ; $y++ ){
  22.            
  23.              $G2 = $root->G2[$y]; # Корневой Тег для доступа к под каталогам
  24.             $G2_Group = $G2->Group; # Тег Goup - это тег названия под каталога Для Товара тоже самое что и G1->G2->Group 'Видеокарты'
  25.             $root_G3 = $root_G2->G3; # переменная для перебора дочерних элементов G3 , Т.е последний каталог
  26.             $num_G3 =  $G2->G3->count(); # Количество Элементов Подгруппы G1->G2->G3->SubGroup
  27.            
  28.             for ($e = 0; $e < $num_G3; $e++) {
  29.                
  30.                 @$G3_SubGroup = $G2->G3[$e]->SubGroup; # Переменная Храняшая Тег группы товаров G1->G2->G3->SubGroup
  31.                
  32.                 $num_item = $G2->G3[$e]->Item->count(); # Количество Товаров G1->G2->G3->Item
  33.            
  34.                 for ($q = 0; $q < $num_item; $q++ ){
  35.                    
  36.                     $Item = $G2->G3[$e]->Item[$q]; # Переменная Содержашая Элементы
  37.                    #$cURL = cURL_PARSER($Item->No);
  38.                    
  39.                     #$parser_info = PARSER_INFO($cURL); скачиваем информацию с сервера
  40.                    #$parser_img = PARSER_IMG($cURL); и картинки
  41.                  
  42.                     $sql = "INSERT INTO `tovar` ( `MainGroup`, `Group`, `SubGroup`, `No`, `Name`, `Brand`, `PartNo`, `Price`, `Avail`)
  43.                                       VALUES   ( '$G1_MainGroup', '$G2_Group', '$G3_SubGroup', '$Item->No', '$Item->Name', '$Item->Brand', '$Item->PartNo', '$Item->Price', '$Item->Avail');" ;
  44.                    
  45.                     $res = DB_MYSQl($sql); # Отпраляем Запрос                  
  46.                }
  47.             }
  48.            
  49.         }
  50.        
  51.        
  52.          
  53.      
  54.          
  55.        
  56.          
  57.     }
  58.    
  59.  }
  60.  
  61.  


В чем может быть ошибка? вроде бы до 4000 нормально заводит и под конец ошибка
Hazrat Отправлено: 29 Мая, 2012 - 21:48:46 • Тема: Очень Медленная Работа SilmpleXML парсера • Форум: XML и его обработка

Ответов: 0
Просмотров: 1675
Народ помогите, очень не простая ситуация, парсер долго парсит XML документ, я бы сказал очень долго в чем может быть причина?

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3.  
  4.  function PARSER_XML () {
  5.     $price_xml = 'files/price.xml';      # Документ в Формате XML для Парсинга
  6.    
  7.     $xml = simplexml_load_file($price_xml); # Инициируем обьект SimpleXML
  8.    
  9.     define('MONEY',$xml->Currency); # Курс Валюты в данном XML Документе
  10.    define('DATE',$xml->Date);      # Дата Создания XML файла , Актуальность ее
  11.    
  12.     define ('NUM_CATALOG', $xml->G1->count()); # Число каталогов с тегом G1 т.е самых начальных это Комплектуюшие ноутбуки и т.д.
  13.    
  14.     for ($i = 0; $i < NUM_CATALOG; $i++ ) {
  15.         $root = $xml->G1[$i]; # Корневой элемент. Как бы ссылка для доступа к дочерним элементам
  16.        $G1_MainGroup = $root->MainGroup; # тег MainGroup -  это тег содержаший название данной категории (Категория КОМПЛЕКТУЮЩИЕ ДЛЯ КОМПЬЮТЕРОВ , НОУТБУКИ )
  17.        
  18.         $root_G2 = $root->G2; # Дочерний Элемент G2  
  19.        $root_G2_num =  $root_G2->count(); # Число дочерних Элементов в G2
  20.        
  21.        
  22.         for ( $y = 0 ; $y < $root_G2_num ; $y++ ){
  23.            
  24.              $G2 = $root->G2[$y]; # Корневой Тег для доступа к под каталогам
  25.             $G2_Group = $G2->Group; # Тег Goup - это тег названия под каталога Для Товара тоже самое что и G1->G2->Group 'Видеокарты'
  26.             $root_G3 = $root_G2->G3; # переменная для перебора дочерних элементов G3 , Т.е последний каталог
  27.             $num_G3 =  $G2->G3->count(); # Количество Элементов Подгруппы G1->G2->G3->SubGroup
  28.            
  29.             for ($e = 0; $e < $num_G3; $e++) {
  30.                
  31.                 @$G3_SubGroup = $G2->G3[$e]->SubGroup; # Переменная Храняшая Тег группы товаров G1->G2->G3->SubGroup
  32.                
  33.                 $num_item = $G2->G3[$e]->Item->count(); # Количество Товаров G1->G2->G3->Item
  34.            
  35.                 for ($q = 0; $q < $num_item; $q++ ){
  36.                    
  37.                     $Item = $G2->G3[$e]->Item[$q]; # Переменная Содержашая Элементы
  38.                    $cURL = cURL_PARSER($Item->No);
  39.                    
  40.                     #$parser_info = PARSER_INFO($cURL); скачиваем информацию с сервера
  41.                    #$parser_img = PARSER_IMG($cURL); и картинки
  42.                  
  43.                     $sql = "INSERT INTO `tovar` ( `MainGroup`, `Group`, `SubGroup`, `No`, `Name`, `Brand`, `PartNo`, `Price`, `Avail`)
  44.                                       VALUES   ( '$G1_MainGroup', '$G2_Group', '$G3_SubGroup', '$Item->No', '$Item->Name', '$Item->Brand', '$Item->PartNo', '$Item->Price', '$Item->Avail');" ;
  45.                    
  46.                     DB_MYSQl($sql); # Отпраляем Запрос                  
  47.                }
  48.             }
  49.            
  50.         }
  51.        
  52.        
  53.          
  54.      
  55.          
  56.        
  57.          
  58.     }
  59.    
  60.  }
  61.  
  62.  


Файл XML прилагается, заранее спасибо , очень жду помощи
(Добавление)
Народ Вопрос снят, просто недоглядел , была включена функция $cURL = cURL_PARSER($Item->No); она парсит с сайта , поэтому и долго обрабатывала . Радость

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB