02.03.2008, 20:52 | #5 |
Новичок
Регистрация: 01.03.2008
Сообщений: 3
Вес репутации: 0
|
Похоже, недождаться...
А php-код (почти через день меняющийся) переводить на Perl - лень.
Такой выход: вызывать из Perl c помощью LWP сценарий PHP для обработки в нём контекста. Выглядит это так: В нашем Perl-движке: my $text = 'Это исходный контекст'; $text = get_sape_content(\$text); print "Content-type: text/html\n\n"; print "<html>$text</html>\n"; sub get_sape_content { my $content_ref = shift;} Промижуточный сценарий sape_content.php (располагаем его там же, где и sape.php): <?php $sape_parameters['request_uri'] = (isset($_POST['REQUEST_URI']) && strlen($_POST['REQUEST_URI']) ) ? $_POST['REQUEST_URI'] : '/'; $sape_parameters['host'] = (isset($_POST['HTTP_HOST'])) ? $_POST['HTTP_HOST'] : $_SERVER['HTTP_HOST']; $sape_parameters['charset'] = (isset($_POST['CHARSET']) && strlen($_POST['CHARSET']) ) ? $_POST['CHARSET'] : 'windows-1251'; if (!defined('_SAPE_USER')){ define('_SAPE_USER', isset($_POST['SAPE_USER']) ? $_POST['SAPE_USER'] : ''); } require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); $sape_context = new SAPE_context($sape_parameters); echo $sape_context->replace_in_text_segment(isset($_POST['CONTENT']) ? $_POST['CONTENT'] : ''); ?> Конечно, работу это замедляет, но подождём, когда на Perl что-то изобразят . |
03.03.2008, 15:02 | #6 |
Новичок
Регистрация: 01.03.2008
Сообщений: 3
Вес репутации: 0
|
Меленькое исправление
Перловую функцию get_sape_content надо немного изменить в связи с необходимостью форвардинга cookies sape-индексатора:
Код:
sub get_sape_content { my $content_ref = shift; my $sape_user = '1234xxxxxxxxxxxxxxxxx56789'; use CGI; my $q = new CGI; if ( $q->cookie('sape_cookie') or $q->cookie('sape_debug') ) { require HTTP::Cookies; my $cookie_jar = HTTP::Cookies->new(); $cookie_jar->set_cookie( '', 'sape_cookie', $q->cookie('sape_cookie'), '/', $ENV{'HTTP_HOST'} ) if $q->cookie('sape_cookie'); $cookie_jar->set_cookie( '', 'sape_debug', $q->cookie('sape_debug'), '/', $ENV{'HTTP_HOST'} ) if $q->cookie('sape_debug'); $ua->cookie_jar($cookie_jar); } require LWP::UserAgent; my $ua = LWP::UserAgent->new; $ua->timeout(60); my $response = $ua->post( $q->url( -base => 1 ) . "/$sape_user/sape_content.php", [ CONTENT => $$content_ref, SAPE_USER => $sape_user, REQUEST_URI => $ENV{'REQUEST_URI'}, HTTP_HOST => $ENV{'HTTP_HOST'}, ], ); return $response->content if ( $response->is_success ); return $$content_ref; } |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сколько ждать модерации? | langolier | Вопросы по работе системы | 10 | 26.06.2008 19:11 |
Модерация! или сколько её ждать) | Ufamag | Курилка | 17 | 27.04.2008 13:28 |
А сколько ждать переиндексации? | Arom | Вопросы от новичков | 13 | 21.02.2008 17:54 |
Сколько ещё ждать??? | kostyk | Вопросы по работе системы | 2 | 14.10.2007 17:44 |
Устал я ждать... | Гарри Гудини | Вопросы по работе системы | 2 | 14.09.2007 13:22 |
Часовой пояс GMT +3, время: 10:59.