22.04.2011, 17:58 | #12 |
SAPE'р
Регистрация: 14.12.2009
Сообщений: 66
Вес репутации: 180
|
Требования
1) нужно иметь на хостинге php (хотя бы интерпретатор командной строки) 2) apache + mod_rewrite обязательно 3) .... уточним со временем Вывод на страницах кода и анонсов. 1) выбрать место внутри perl скрипта где будут выводиться анонсы 2) С помощью system вызвать команду php, результат system будет списком анонсов. Ниже приведена команда для вывода из командной строки: php -r 'define("_SAPE_USER", "#хешкод#"); require_once("#путь к файлу#/sape.php"); $o = array("force_show_code" => true, "request_uri" => "#текущий url который запрошен#", "host" => "#домен-сайта.зона#", "charset" => "#кодировка вывода#"); $sape_article = new SAPE_articles($o); echo $sape_article->return_announcements();' Показ статьи. Если есть возможность вызывать php через apache, то вызов можно сделать стандартным образом. Если же PHP стоит только как интерпретатор командной строки, то постребуется аналогичный вызов через функцию System. php -r 'define("_SAPE_USER", "#хешкод#"); require_once("sape.php"); $o = array("request_uri" => "#текущий url который запрошен#", "host" => "#домен-сайта.зона#", "charset" => "utf-8"); $sape_article = new SAPE_articles($o); echo $sape_article->process_request();' делаем вызов этой команды в некоем файле #хешкод#.pl и перенаправляем на него стандартные mod_rewrite инструкции (вместо #хешкод#.php) to ВладимирВ Достаточно ли вам информации для экспериментов? Есть ли у вас площадка с подходящими условиями? Последний раз редактировалось nalimka2009; 25.04.2011 в 00:00. Причина: Добавлено сообщение |
23.04.2011, 08:47 | #13 |
Специалист
Регистрация: 19.01.2010
Адрес: дома
Сообщений: 195
Вес репутации: 185
|
Площадка имеется, условия есть, покумекаю, отпишусь.
Добавлено через 12 часов 48 минут Основная суть сводится к тому, чтобы в перл-скриптах была возможность выводить анонсы, остальное как на пхп-сайтах )) Появились такие соображения Нужен небольшой пхп-скрипт, который сохраняет в текстовый файл анонсы, данный файл запускается кроном, каждый n-минут(смею предположить, что раз в час вполне достаточно) В перловом коде нужно открыть этот файл и иметь готовые анонсы(кроме настройки кодировки других заморочек не вижу ). Как вы на это смотрите? Я не большой знаток пхп, подмогните с кодом такого пхп файла и можно будет использовать. В частности нужен кусочек кода, который будет складывать анонсы в файл, т.е. то, что вызывается после $sape_article->return_announcements(); чтобы анонсы там лежали каждый с новой строки. Последний раз редактировалось ВладимирВ; 23.04.2011 в 08:47. Причина: Добавлено сообщение |
24.04.2011, 21:55 | #14 | |
SAPE'р
Регистрация: 14.12.2009
Сообщений: 66
Вес репутации: 180
|
Цитата:
По сути он как раз это и делает написанный выше скрипт в зависимости от страницы, только выводит он данные не в тесктовый файл а в stdout. Если вам нужны данные анонсов вы можете по крону запустить ту же самую команду с параметрами для главной и забрать потом перлом все данные из файла articles.db, который создает скрипт клиента. Но тогда вы фактически будете повторять логику клиента, в то время как я предлагаю просто запустить php-шный клиент командой System. Последний раз редактировалось nalimka2009; 24.04.2011 в 23:33. |
|
24.04.2011, 23:29 | #15 |
Специалист
Регистрация: 19.01.2010
Адрес: дома
Сообщений: 195
Вес репутации: 185
|
Я понял, что это пойдет в stdout.
Трудностей особых нет, есть просто такие соображения, что системе будет тяжко из скрипта запускать другой скрипт, если кол-во запросов будет большим. В этом отношении, куда проще забирать данные из текстового файла, который будет обновляться раз в час )) Анонсы - это периодически обновляемые данные, зачем их генерить каждый раз при запуске скриптов (( |
24.04.2011, 23:44 | #16 | |
SAPE'р
Регистрация: 14.12.2009
Сообщений: 66
Вес репутации: 180
|
Поскольку руки наконец то дошли до perl могу привести реализацию вышеописанного:
#!/usr/bin/perl $hashCode = "ваш хешкод здесь"; $path = "../". $hashCode. "/sape.php"; $charset = "utf-8"; $command = "php -r '"; $command .= 'define("_SAPE_USER", "' . $hashCode. '"); require_once("'. $path. '"); $o = array("force_show_code" => true, "request_uri" => "'. $ENV{'REQUEST_URI'}. '", "host" => "'. $ENV{'HTTP_HOST'}. '", "charset" => "'. $charset. '"); $sape_article = new SAPE_articles($o); echo $sape_article->return_announcements();'; $command .= "'"; system($command); Этот код, запущенный как cgi выводит анонсы(если есть) и чеккод всегда Предполагается, что он запускается из папки сgi-bin, которая находится внутри корня на одном уровне с папкой сапе, в другом случае $path нужно поменять. Добавлено через 9 минут Цитата:
Плюс же в том, что дублировать функционал клиента при этом не потребуется. Если вы хотите выводить анонсы собственным скриптом - можно просто парсить articles.db, который будет создаваться по крону. Можно прописать в крон запуск скрипта для любой страницы, он всегда будет обновлять список анонсов для всех и записывать его в articles.db Формат данных там не очень сложный - сериализованый список. С форматом готов помочь. Последний раз редактировалось nalimka2009; 24.04.2011 в 23:54. Причина: Добавлено сообщение |
|
25.04.2011, 00:37 | #17 |
Специалист
Регистрация: 19.01.2010
Адрес: дома
Сообщений: 195
Вес репутации: 185
|
Не совсем въехал в логику анонсов, но предполагаю, что так:
для каждой страницы, где планируется отображать анонсы, они создаются индивидуально, т.е. на всех страницах не будет одинаковых анонсов я походу заблуждался, что анонсы выводятся как "сквозняк" думаю... Добавлено через 22 минуты Если создать текстовый файл, напр. url_list.db, где перл-скрипт будет проверять наличие обратившегося урл. Урла нет - добавит, если есть, то попробует получить(распарсить) articles.db и забрать анонсы для этого урла. На кроне запускать скрипт, который будет для каждого урла из url_list.db создавать анонсы. Последний раз редактировалось ВладимирВ; 25.04.2011 в 00:37. Причина: Добавлено сообщение |
25.04.2011, 17:41 | #18 | ||
SAPE'р
Регистрация: 14.12.2009
Сообщений: 66
Вес репутации: 180
|
Цитата:
Никакие дополнительный фалы не нужны: sape.php и так создает articles.db где этот список есть. Список содержит соответствия uri и множества анонсов которое выводится на данной странице. Все что нужно от перлового скрипта, - это получить его оттуда. Цитата:
Добавлено через 3 часа 11 минут Сериализация на perl http://hurring.com/scott/code/perl/serialize/ Последний раз редактировалось nalimka2009; 25.04.2011 в 17:41. Причина: Добавлено сообщение |
||
25.04.2011, 22:19 | #19 |
Специалист
Регистрация: 19.01.2010
Адрес: дома
Сообщений: 195
Вес репутации: 185
|
туго въезжаю ((
не есть гут, что для сериализации нужен нестандартный модуль. ИМХО: хочется, чтобы это была универсальная модель подходящая, даже для небольших хостингов(у меня есть разные хостинги). как вариант, я думал свести к минимуму взаимодействие перл-скриптов с articles.db(не более, чем чтение данных), чтобы обработку анонсов производил только скрипт sape.php |
26.04.2011, 16:22 | #20 | ||
SAPE'р
Регистрация: 14.12.2009
Сообщений: 66
Вес репутации: 180
|
не вижу в этом ничего плохого
Цитата:
это библиотека на perl, что может помешать подключить ее на хостинге с поддержкой perl? Цитата:
у вас все может получиться, дерзайте. Информации у вас достаточно. Если чтото непонятно - задавайте конкретные вопросы. Последний раз редактировалось nalimka2009; 26.04.2011 в 19:56. |
||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
вопрос про perl и get | canada14 | Разработка и сопровождение сайтов | 1 | 30.01.2010 20:16 |
PHP и PERL одновременно | AB501 | Вопросы от новичков | 4 | 03.06.2009 13:19 |
Не срабатывает Perl код. | zooloo | Вопросы от новичков | 4 | 18.12.2007 15:51 |
PHP + PERL | KF-WEB | Установка кода на различные движки | 5 | 25.11.2007 14:59 |
PHP и Perl одновременно | i58 | Вопросы по работе системы | 0 | 05.09.2007 19:55 |
Часовой пояс GMT +3, время: 18:09.