PHP.SU

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

Страниц (27): В начало « ... 6 7 8 9 [10] 11 12 13 14 ... » В конец

> Найдено сообщений: 394
NeuroZ Отправлено: 26 Июля, 2014 - 12:38:08 • Тема: Зависает парсинг XML • Форум: Вопросы новичков

Ответов: 6
Просмотров: 313
Пришел к выводу, что UNSET для переменных очень даже неплохо помогает освободить память.

+ на всякий случай я скачал xml файл на свой сервер и перебор начал из него (хотя это по сути никак ни на что не влияет, т.к. все данные все равно в переменной хранятся)

Сам файл xml весит 12 Мб. Но помимо информации о товаре, к каждому товару хранится еще порядка пяти путей к файлам картинок, которые я тоже выкачиваю со стороннего сервера к себе на сайт. Возможно именно поэтому 50 товаров у меня парсились минуту. Но если у меня 10 000 товаров? получается первочначальный парсинг займет около 2х часов? С выкачкой всех картинок? - и это нормально?
(Добавление)
Кстати для сохранения картинок использую функцию COPY
(Добавление)
Может есть какой-то более правильное решение с точки зрения логики?
Если в XML файле хранятся данные о товарах и пути к картинкам (на стороннем сайте) - то как оптимизировать парсинг данных и картинок?
NeuroZ Отправлено: 26 Июля, 2014 - 10:40:19 • Тема: Зависает парсинг XML • Форум: Вопросы новичков

Ответов: 6
Просмотров: 313
Мелкий пишет:
Профилируйте, где течёт память.

Подскажите как это сделать? Я просто никогда таким раньше не занимался...
NeuroZ Отправлено: 26 Июля, 2014 - 09:50:09 • Тема: Зависает парсинг XML • Форум: Вопросы новичков

Ответов: 6
Просмотров: 313
Всем добрый день.
Сталкнулся с проблемой пасринга через simple_xml

$xml = simplexml_load_file($link);
Я получаю xml файл с товарами с другого сервера и записываю его в переменную. Проблема в том, что файл нереально большой.
Потом я прохожу по $xml через foreach и сортирую данные по своим 10 таблицам в БД.

Но при парсинге малого числа товара (ставлю ограничение в итерации) - всё работает.
Когда запускаю полный цикл - он может час парсится и потом выдать ошибку о том, что не хватает памяти для выполнения скрипта.

Подскажите как решается такая проблема?

в этой файле также прописано:
ini_set('memory_limit', '1449M');
ini_set('max_execution_time', '0');
set_time_limit(0);
NeuroZ Отправлено: 30 Июня, 2014 - 10:34:34 • Тема: Не работает рекурсивный вызов функции... • Форум: Вопросы новичков

Ответов: 0
Просмотров: 90

Самое главное похожую рекурсивную функцию написал (для вывода неограниченного числа подкатегорий меню), и она работает... а вот эта на отрез отказывается... вообще не пойму в чем дело Недовольство, огорчение

В функция не работает при рекурсивном вызове... Именно если попадает в первый IF...

PHP:
скопировать код в буфер обмена
  1. function itemExist($hash, $hashLength, $db, $step, $catId) {
  2.     $thisHash = $hash[$step];
  3.     if ($step != $hashLength) { //Валидация на существование списка категорий по заданному url
  4.         $query = "SELECT"; //мой секретный запрос к БД
  5.         $db->setQuery($query);
  6.         $catId = $db->loadResult(); //Например возвращает 1
  7.         $step++;
  8.         if (!empty($catId)) itemExist($hash, $hashLength, $db, $step, $catId);
  9.     } else {
  10.         $query = "SELECT";
  11.         $db->setQuery($query);
  12.         $items = $db->loadObject();
  13.         if (empty($items)) {
  14.             $query = "SELECT";
  15.             $db->setQuery($query);
  16.             $items = $db->loadObject();
  17.             if (empty($items)) $items = false;
  18.         }
  19.         return $items;
  20.     }
  21. }
  22.  
  23. //Первый вариант (работает) т.к. не попадает в условие (IF), и объект $pages не пустой
  24. $hash = '/tours';
  25. $hash = explode ('/', $hash);
  26. $hashLength = count($hash) - 1;
  27. $pages = itemExist($hash, $hashLength, $db, 1, 0);
  28.  
  29. //Второй вариант ничего не возвращает... А должен по идее войти в IF, там вызваться рекурсивно, попать в ELSE и вернуть результат в виде объекта в $pages
  30. $hash = '/tours/my_tour';
  31. $hash = explode ('/', $hash);
  32. $hashLength = count($hash) - 1;
  33. $pages = itemExist($hash, $hashLength, $db, 1, 0);
  34.  
  35. //Если возврашет false - тогда ошибка 404 (но этот false не возвращается).
  36.  


p.s. Сама функция - это вырезка из SPA
(Добавление)
К слову - я после 7ой строки пробовал вернуть все параметры, которые я передаю в рекурсивный вызов - возвращает $hash, 2, $db, 2, 1
(Добавление)
А еще пробовал в начале функции написать условие:
if ($step == 2) return 1;
так вот единицу не возвращает... следовательно она почему-то не хочет вызываться рекурсивно...
(Добавление)
Блин! Осенило! Я же результат рекурсии не записываю в переменную!!! Которую должен потом вернуть!
(Добавление)
Спасибо мне, очень помог!
NeuroZ Отправлено: 27 Июня, 2014 - 15:21:43 • Тема: Удаленное подключение к БД с использованием FTP аутентификации • Форум: Работа с СУБД

Ответов: 9
Просмотров: 2383
LIME пишет:
тебе талдычат что используя SSH-туннель можно с любым удаленным сервером работать как на локалхосте
гуй ты будешь пользовать или командную строку никого не волнует
что надо разрабам было сделать? SSH туннель встроить в гуеву программу?

Да, я понял)

Спасибо всем)) в навикате есть SSH Tunel ^^
Просто мало с SSH работаю... не привык к такому использованию...
NeuroZ Отправлено: 27 Июня, 2014 - 09:01:30 • Тема: Удаленное подключение к БД с использованием FTP аутентификации • Форум: Работа с СУБД

Ответов: 9
Просмотров: 2383
Ch_chov пишет:
phpMyAdmin это не визуальный интерфейс?

Конечно визуальный!
Я о том, что программы придумывают для удобства в использовании тех или иных функций.
NeuroZ Отправлено: 27 Июня, 2014 - 08:44:07 • Тема: Удаленное подключение к БД с использованием FTP аутентификации • Форум: Работа с СУБД

Ответов: 9
Просмотров: 2383
Ch_chov пишет:
Потому что не надо ничего реализовывать. Если есть SSH тунель то это уже работает.

Визуальный интерфейс гораздо удобней и приятней.
Например зачем был разработан Navicat MySQL, если уже есть phpMyAdmin ?
NeuroZ Отправлено: 27 Июня, 2014 - 08:18:36 • Тема: Удаленное подключение к БД с использованием FTP аутентификации • Форум: Работа с СУБД

Ответов: 9
Просмотров: 2383
Ch_chov пишет:
Как раз SSH для этого и нужен. Можно пробросить порт и работать через него.

Я к тому, что может можно тогда подключиться через SSH но с использованием программного интерфейса как в Navicat? (просто не вижу причин почему это не может работать, а если может, то почему до сих пор никто из разработчиков это не реализовал)
NeuroZ Отправлено: 26 Июня, 2014 - 17:01:32 • Тема: Удаленное подключение к БД с использованием FTP аутентификации • Форум: Работа с СУБД

Ответов: 9
Просмотров: 2383
Всем привет)

В общем созрел такой необычный вопрос... Возможно ли удаленное подключение к БД с использованием FTP аутентификации?

Для чего/как/зачем?

Я использую для удаленного подключения Navicat MySQL. Не всегда хостер разрешает удаленное подключение к БД. Так вот может есть какой-то способ, авторизоваться через FTP и под видом "сервера" отправить запрос на подключение к БД на localhost с известными мне логином и паролем от БД ?

ммм... надеюсь идея ясна... Так вот возможно ли это? Если да, то как? (SSH не предлагать, интересует визуальное управление БД, как в Navicat)
NeuroZ Отправлено: 04 Июня, 2014 - 15:39:33 • Тема: Как закомментировать include? • Форум: Вопросы новичков

Ответов: 29
Просмотров: 1341
В php файле используй
PHP:
скопировать код в буфер обмена
  1. header("Content-Type: text/html; charset=utf-8");
NeuroZ Отправлено: 04 Июня, 2014 - 10:43:58 • Тема: Как обработать RESTful запрос? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 106
Да, спасибо, помогло Улыбка
NeuroZ Отправлено: 04 Июня, 2014 - 10:33:57 • Тема: Как обработать RESTful запрос? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 106
Как обработать RESTful запрос?
Не могу понять, как в PHP принять и обработать (например POST) запрос, отправленный через RESTful ?
Т.е. переменная $_POST пустая. Что делать?
NeuroZ Отправлено: 28 Мая, 2014 - 18:02:44 • Тема: SOAP + WSDL с авторизацией • Форум: Вопросы новичков

Ответов: 6
Просмотров: 870
teddy пишет:
Это в свойство класса Вы передали логин и пароль в качестве массива или скормили методу двумерный массив?

CODE (htmlphp):
скопировать код в буфер обмена
  1. $apiFunction = $client->getAllCruiseNames(array('wsLoginPassword' => array('wslogin' => $login, 'wspassword' => $password)));
NeuroZ Отправлено: 28 Мая, 2014 - 10:11:32 • Тема: SOAP + WSDL с авторизацией • Форум: Вопросы новичков

Ответов: 6
Просмотров: 870
Спасибо, вам большое и за развернутый и за краткий ответ!
Я просто думал, что будет понятно в каком формате передавать логин и пароль (из тех ссылок, что я привел). Но больше документации нет. Пишу в тех.поддержку - там сидит "явист", который про php вообще ничего не знает и может в ответ кидать только ссылки на эти документации и описание WSDL.
(Добавление)
Кстати авторизовался путем передачи в wsLoginPassword массив с переменными wsLogin и wsPassword
NeuroZ Отправлено: 27 Мая, 2014 - 21:05:46 • Тема: SOAP + WSDL с авторизацией • Форум: Вопросы новичков

Ответов: 6
Просмотров: 870
Здравствуйте, уважаемые, форумчане!
Вот столкнулся недавно с необходимостью "парсинга" через SOAP WSDL с авторизацией. Логи и пароль у меня есть.
Вот тут http://www[dot]natalie-tours[dot]ru/webs[dot][dot][dot]U[dot]html#op[dot]N10B5E описаны методы работы с системой.
Вот тут http://www[dot]natalie-tours[dot]ru/webs[dot][dot][dot]e/BookingWS?WSDL сам wsdl
Мне непонятно... как исходя из этих данных мне составить запросы к серверу и получить от него ответ??? Что мне надо отправлять (вообще как понять что отправлять?)
Знаю только что надо начать с этой строчки:
PHP:
скопировать код в буфер обмена
  1. $client = new SoapClient("http://www.natalie-tours.ru/webservice/BookingWS?WSDL");

А дальше то что? Как обратиться к нужному методу, где прописать мой логин и пароль? И как сохранить ответ? Помогите пожалуйста....

Страниц (27): В начало « ... 6 7 8 9 [10] 11 12 13 14 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB