переменная echo php между php-скриптами

#php

#php

Вопрос:

Мне был предоставлен скрипт с различными переменными, которые основаны на дате и времени в верхней части строгой страницы XHTML.

 <?php
date_default_timezone_set('America/Los_Angeles');
$time = new DateTime();
if($time < new DateTime('2011-10-31 18:00')){
    $title="Before Halloween";
    $cb1="2011,10,31,18,0";
}else if
    ...
?>
  

На полпути через HTML-код у меня есть второй PHP-скрипт:

 <?php
date_default_timezone_set('America/Los_Angeles');
countdown(2011,10,31,18,0);
function countdown($year, $month, $day, $hour, $minute)
{
    ...
?>
  

Как я могу выполнить эхо $cb1 из верхнего скрипта во второй скрипт, чтобы третья строка выглядела примерно как countdown(echo $ cb1); и автоматически обновляется на основе верхнего скрипта?

Ответ №1:

Поскольку это строка, вам нужно будет разобрать (разобрать) через запятую, чтобы создать 5 переменных. Для этого вы должны использовать:

  $cbarray = explode(",",$cb1);
 countdown($cbarray[0],$cbarray[1],$cbarray[2],$cbarray[3],$cbarray[4]);
  

Или что-то похожее, помещая каждый из них в именованную переменную.

Ответ №2:

Вместо этого вы можете попробовать установить $ cb1 в качестве переменной сеанса, чтобы вы могли получить к ней доступ из любого места в файле.

Может быть, заменить:

 $cb1="2011,10,31,18,0";
  

с

 $_SESSION['cb1']="2011,10,31,18,0";
  

И тогда ваш код во втором скрипте будет: countdown($_SESSION['cb1']);

Комментарии:

1. Это в основном то же самое, что и ответ, который дал Васим Карани. Обратный отсчет использует 5 переменных и передача одной строки, СЕАНСА или ПЕРЕМЕННОЙ, со всеми 5 элементами не будет работать. Это связано с тем, что он видит ее только как одну переменную.