PHP.SU

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

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

> Найдено сообщений: 7
Kot137 Отправлено: 23 Февраля, 2019 - 18:28:47 • Тема: Выполнить PHP из PHP и запарсить • Форум: Работа с файловой системой и файлами

Ответов: 3
Просмотров: 1627
LIME пишет:
лучше http://www.php.su/lessons/?lesson_11

Спасибо.

В итоге сделал и работает через парсер simple_html_dom.php
PHP:
скопировать код в буфер обмена
  1.  
  2. $html = file_get_html($tmp_link);
  3. $html=$html->find('div[id=main_c_div]', 0)->innertext(); // содержимое контейнера
  4. file_put_contents($fnrss, $html. PHP_EOL, FILE_APPEND | LOCK_EX);

Но, несмотря на простоту кода, какой-то осадочек остался. Как в Простоквашено, когда герои, находясь в одной комнате, телеграммами через почту общаются)))
Kot137 Отправлено: 23 Февраля, 2019 - 15:36:13 • Тема: Выполнить PHP из PHP и запарсить • Форум: Работа с файловой системой и файлами

Ответов: 3
Просмотров: 1627
Здравствуйте!
Посоветуйте пожалуйста нормальное решение. Хочу сделать автоматическое создание RSS всего сайта для я.турбостраниц. Исходные данные: есть PHP скрипт, который запускается по расписанию и перебирает все страницы сайта(тоже написаны на PHP), из каждой надо получить итоговой html и записать в RSS файл. Т.е. каждую страницу надо выполнить и запарсить результат этого выполнения.
(Добавление)
Пока у меня только один вариант в голове крутиться: каждую страницу(php-файл) запарсить через .

Может есть более элегантное и быстрое решение?
Kot137 Отправлено: 26 Февраля, 2017 - 16:22:10 • Тема: Настройка REDIS • Форум: Администрирование БД

Ответов: 1
Просмотров: 2980
Разобрался. Ошибка была совсем в другом месте: я сам херил часть точек в множестве. В процедуре обновления удалял точку затем создавал новую и переаутал долготу с широтой:
PHP:
скопировать код в буфер обмена
  1. $m->ZREM($redis_index . 'all_obj', $row['id']);
  2. $m->GEOADD($redis_index . 'all_obj', $row['coordy'], $row['coordx'], $row['id']);

В итоге часть объектов просто не добавлялось, т.к. координаты выходили за диапазон.

2) Написал тест, который показал, что значительное увеличение объема данных хранимых в REDIS не приводит к потерям и сбоям.

3) systemd supervision requested, but NOTIFY_SOCKET not found - вылечил, поменяв в конфиге на supervised auto

4) с Increased maximum number of open files to 10032 (it was originally set to 1024). я так и не разобрался, если кто знает напишите, что это?
Kot137 Отправлено: 26 Февраля, 2017 - 12:22:05 • Тема: Настройка REDIS • Форум: Администрирование БД

Ответов: 1
Просмотров: 2980
Здравствуйте!
Есть ubuntu 16.04 х64, на виртуальном сервере, установлен REDIS, использую его в PHP 7. REDIS использую как КЭШ оболочку MySQL – в нем хранятся характеристики 7-10тыс объектов, в том числе географические координаты. При заполнении множества координат с помощью GEOADD, после нескольких тысяч записей начинают пропадать объекты занесенные вначале. Т.е.
PHP:
скопировать код в буфер обмена
  1. $m->GEORADIUS($redis_index.'all_obj',$coordy, $coordx, $radius, "m", []);
выдает, например не 4тыс точек, а 2тыс.
В redis.conf установил: maxmemory 734003200 однако, процесс сервера использует всего 35Mb. (На сервере общий объем RAM - 1Gb, занято всего 40%).
Поставил maxmemory-policy noeviction – чтобы поймать его на нехватке памяти, но он не ругается, что памяти нет. Просто по-тихому удаляет, даже не ключи, а записи из множества ключа.
При перезапуске REDIS имею:
CODE (htmlphp):
скопировать код в буфер обмена
  1. root@127262-10001:~# redis-server /etc/redis/redis.conf                                                     4902:C 26 Feb 13:03:54.517 # systemd supervision requested, but NOTIFY_SOCKET not found
  2. 4902:M 26 Feb 13:03:54.518 * Increased maximum number of open files to 10032 (it was originally set to 1024).
  3. 4902:M 26 Feb 13:03:54.519 # Creating Server TCP listening socket 127.0.0.1:6379: bind: Address already in use
  4.  
(Не знаю, что это значит и не уверен, что это связанно с проблемой)

Может в REDIS ограничение по максимальному объему одного Key?
Подскажите, как грамотно настроить REDIS чтобы избежать потерь данных?
Kot137 Отправлено: 03 Октября, 2016 - 19:07:07 • Тема: PHP7 + REDIS 3.2 • Форум: Администрирование БД

Ответов: 4
Просмотров: 3003
Мелкий пишет:
Либо разбираться с ошибками. Сейчас ткнул палочкой - модуль собрался и под 7.0.8 и под 5.6.25. Работает ли - не проверял, только собрал


Спасибо за помощь! Все заработало. Проблема решена.

Собрал модуль по следующей нагугленной инструкции:
CODE (htmlphp):
скопировать код в буфер обмена
  1. sudo apt-get install git -y -q && sudo git clone -b php7 https://github.com/phpredis/phpredis.git
  2. sudo mv phpredis/ /etc/ && cd /etc/phpredis
  3. sudo phpize && sudo ./configure && sudo make && sudo make install
Kot137 Отправлено: 03 Октября, 2016 - 15:11:32 • Тема: PHP7 + REDIS 3.2 • Форум: Администрирование БД

Ответов: 4
Просмотров: 3003
Мелкий пишет:
Собирайте из develop.
Пока не получается собрать. Вылезает куча ошибок. Видимо придется подождать.
Kot137 Отправлено: 03 Октября, 2016 - 05:06:59 • Тема: PHP7 + REDIS 3.2 • Форум: Администрирование БД

Ответов: 4
Просмотров: 3003
Здравствуйте.
У меня PHP7 на ubuntu 16.04 x64, REDIS 3.2 (с поддержкой гео-команд), однако в PHP геокоманды не работают. На вызов метода
PHP:
скопировать код в буфер обмена
  1. $m->GEOADD($redis_index."testkey", 13.36, 38.11, "тест");
получаю: Fatal error: Uncaught Error: Call to undefined method Redis::GEOADD().
RIDIS сервер гео поддерживает - проверил через консоль (redis-cli).
Предполагаю, что я установил неполноценный модуль PhpRedis (redis.so).
Подскажите пожалуйста, как решить проблему и получить доступ к гео-методам REDIS из PHP? Где вообще найти новейший Php-redis? На официальном сайте REDIS выложен только сервер и нет ничего про PHP.

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB