[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Задача: N php-скриптов поочереди загружающие друг
Евгений54
Задача: N php-скриптов, оформленных на сервере в виде отдельных php-файлов с именами вида: 001.php, 002.php, ..., ###.php, где ###=N по очереди загружающие друг друга по кругу, т.е. i-й загружает (i+1)-й, а N-й загружает 1-й. N задается в диалоге и >=2. Желательно, чтобы адрес загруженного файла отображался в строке адреса в браузере.



Спустя 20 минут, 41 секунда (18.01.2009 - 10:13) qpayct написал(а):
вопрос конечно интерессный.
а как вы это себе представляете?
на сколько я понял вам просто надо несколько скриптов обьединить воедино...

Спустя 14 минут, 52 секунды (18.01.2009 - 10:28) Евгений54 написал(а):
Чтобы объединить воедино достаточно include, но тогда объединение происходит сразу при загрузке скрипта, а мне надо, чтобы оно происходило только тогда, когда выбран соответствующий пункт меню и выбранный скрипт, существующий в виде отдельного файла на сервере, запускался и становился текущим в броузере.

Вот что-то нашел: http://webscript.ru/stories/03/04/11/6874707

http://yandex.ru/yandsearch?rpt=rad&text=%...%82%D0%B0%D0%BB

Спустя 31 минута, 11 секунд (18.01.2009 - 10:59) qpayct написал(а):
Цитата (Евгений54 @ 18.01.2009 - 07:28)
мне надо, чтобы оно происходило только тогда, когда выбран соответствующий пункт меню и выбранный скрипт, существующий в виде отдельного файла на сервере, запускался и становился текущим в броузере.

если я вас правильно понял то это то что вам надо ->
добавьте в линк переменную
к примеру:

<a href="http://www.include.com?а=001">link1</a>
<a href="http://www.include.com?а=002">link2</a>
<a href="http://www.include.com?а=003">link3</a>

а потом в скрипте ПХП пропишите следущую проверку на месте где хотите инклюдить:
PHP
if (!empty($_GET['a'])) { 
  
$incf $_GET[a] . ".php";
  include 
$incf;
}

Спустя 8 минут, 1 секунда (18.01.2009 - 11:07) Евгений54 написал(а):
Цитата (qpayct @ 18.01.2009 - 07:59)
Цитата (Евгений54 @ 18.01.2009 - 07:28)
мне надо, чтобы оно происходило только тогда, когда выбран соответствующий пункт меню и выбранный скрипт, существующий в виде отдельного файла на сервере, запускался и становился текущим в броузере.

если я вас правильно понял то это то что вам надо ->
добавьте в линк переменную
к примеру:

<a href="http://www.include.com?а=001">link1</a>
<a href="http://www.include.com?а=002">link2</a>
<a href="http://www.include.com?а=003">link3</a>

а потом в скрипте ПХП пропишите следущую проверку на месте где хотите инклюдить:
PHP
if (!empty($_GET['a'])) { 
  $incf 
= $_GET[a] . ".php";
  include $incf;
}


Спасибо!

А не могли бы Вы все же для прикола написать два простейших модуля, которые бесконечно вызывают друг друга и выводят на экран разные тексты, тпа: "Я 1-й", "Я 2-й"?

Спустя 22 минуты, 55 секунд (18.01.2009 - 11:30) Евгений54 написал(а):
По приведенным ссылкам все есть и работает после исправления ошибок

Спустя 6 минут, 24 секунды (18.01.2009 - 11:37) qpayct написал(а):
а причём тут модуль?? поясните

Спустя 1 час, 24 минуты, 56 секунд (18.01.2009 - 13:02) sergeiss написал(а):
Я решал подобную задачу, и сделал ее следующим образом.

1. Используется только один скрипт (назовем его process.php), который вызывается с разными величинами одного параметра.
2. В нужном месте ставится switch, и в зависимости от величины параметра инклуюдятся те или иные файлы.
3. По окончании обработки производится вызов следующего скрипта, т.е. этого же, но уже с другими параметрами.

Сделано это было для загрузки статистических файлов большого объема, и самих файлов тоже много.
Можно было, навернжо, сделать и в одном скрипте... Но я решил, что будет лучше по-другому.

PHP
$file=$_GET[ 'file' ];
$autoload=( $auto ) ? "&auto=1" : "" ;

// порядок загрузки данных определяется здесь
switch( $file )
{
    case 'cell':
        include_once( "load_config_cell.php" ); 
        echo 
"<script language=\"jаvаscript\"> location.href=\"process.php?file=pwr&$autoload\";</script>" ;        
        break
;
    case 'pwr':        
        include_once
( "load_config_power.php" ); 
        echo 
" <script language=\"jаvаscript\"> location.href=\"process.php?file=ho&$autoload\";</script>" ;        
        break
;
    case 'ho':
        include_once( "load_config_ho.php" );  

        
// ну и так далее, пока не будут загружены все типы данных
}

Данный подход позволяет очень легко масштабировать скрипт, т.к. только в этом месте мне нужно что-то добавить, во всём остальном данный скрипт остается неизменным (там еще много чего написано, для подготовки к загрузке данных).
Если что-то идет "не так", то любой из подключенных скриптов прерывает процесс и пишет причину ошибки. Иначе - в конце загрузки пишется информация об ее успешности.
Также по ходу дела пишется информация в специальный лог-файл... Но это уже другой вопрос.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.