PHP: вопросы и ответы

x_0040h

Старожил
хм странный вопрос, может ты не указал все требования к этой задаче, но мне кажется что тут масса вариантов:
Код:
//передать в первую функцию значения переменных по ссылке

function first(&$a)
{
    $a = bla-bla; //(c)
  //.....
}

function second($a)
{
  //.....
}

$a = new classA();
first($a);
//....
second(a);
/**************************************/
//можо сделать обе функции функциями членами 1 класса
class A
{
var $a;

functionA()
{ 
   $a = new class_a();
}

function first()
{
   $this->a = bla-bla;
}

function second()
{
   echo($this->a);
}

}

$a_obj = new A();
$a_obj->first();
$a_obj->second();

///да куча вариантов....
 

Nonick

Старожил
мде...всё было намного проще, чем я думал. Правда пришлось переписать весь модуль под ООП.
 

Quack

Старожил
Видел в книжном на проспекте книгу по php 5.А разве такое есть :?:
Поделитесь если есть.
 

поневич

Старожил
ТОварищи я что-то не понял, а что virtual() требует каких-то особенных настроек интерпритатора. У меня на отрез отказывается работать.
 

Кекс

Старожил
Virtual() не может использоваться для внедрения документа, который сам является РНР-файлом. Может, поэтому?
 

Кекс

Старожил
Хм... Ну, вот этот текст тебе наверняка знаком, но мало ли.

int virtual (string filename)

virtual() этот специфичная для Apache функция, которая эквивалентна <!--#include virtual...--> в mod_include. Она выполняет подзапрос Apache. Используется для включения CGI скриптов или .shtml-файлов, или ещё чему-нибудь, что вы хотите разобрать через Apache. Заметьте, что для CGI-скрипта скрипт обязан генерировать правильные CGI-шапки/headers. Как минимум это означает, что он обязан генерировать шапку Content-type. Для PHP-файлов вам необходимо использовать include() или require(); virtual() не может использоваться для include документа, который сам является РНР-файлом.

Для запуска подзапроса все буферы закрываются и "вымываются" в браузер, запущенные шапки также отправляются.
 

поневич

Старожил
Знакомо только то, что касается PHP про CGI я вообще практически ни чего не знаю.
 

поневич

Старожил
Хм.. Странно, но не работает. выдвет
Код:
Fatal error: Call to undefined function: virtual() in C:\Program Files\Apache Group\Apache2\htdocs\test.php on line 2

А код я пишу вообще приметив
Код:
<?php
virtual("file.cgi");
?>
Может кто сталкивался?
 

SteelRat

Старожил
Call to undefined function - ты забыл подключить какую-то библиотеку, наверное. Я не знаю пхп. =)
 

Незнайка

Старожил
Подскажите, каким образом можно вставить или пристегнуть функцию написанную на JavaScript в php-файл (к php-файлу)

Код:
<SCRIPT language=JavaScript>
function view(x,y,name) {
  newwin = window.open(name,"_blank","width="+x+",height="+y);
  newwin.document.writeln('<html><head><title>Screen</title></head>');
  newwin.document.writeln('<body leftmargin=0 topmargin=0 marginwidth=0 marginheight=0><img src='+name+'></body></html>');
}
</SCRIPT>

Ну очень надо.
 

поневич

Старожил
Ну наверное можно через все тот же virtual(). Т.е. выносишь совй скирипт в отдельный файл и пристегиваешь.

2Стил
Я в книге смотрел ни чего там подключать н надо.
 

Nonick

Старожил
2 поневич:
скорее всего mod_include не загужается с апачом.
 

поневич

Старожил
Nonick":3t5css7d сказал(а):
2 поневич: скорее всего mod_include не загужается с апачом.
Я так думаю если бы это не щагружалось то не раюотал бы и include(), он работает.
И если я не прав, что сделать что б загрузилось.
Заранее спасибо.
 

Кекс

Старожил
2Незнайка
Ну, если в ява-скрипте и ПХП нет взаимозависимых переменных, то так же, как и любой кусок хтмл.

2поневич & Nonick
А разве mod_include имеет отношение к ПХП? Это ж для SSI вроде...
 

поневич

Старожил
ТОчно!!!
ТОгда вы видите какую-либо причину почему не работает virtual()?
 

kenZZZo

Старожил
Значицца так..
Чтоб работал virtual(), нужно, чтоб php был установлен как модуль Apache
для этого в httpd.conf должна быть строка
LoadModule php4_module C:/apache/php/sapi/php4apache.dll
Путь, естественно, может быть другой ((;

ЗЫ сам не понимаю почему, но при таком способе подключения ПХП, у меня почему-то не видятся массивы $_GET и $_POST, может ещё какие-то быги выплывут, но виртуал() работает! :)
 

поневич

Старожил
Короче проблема решена.
Если кому интересно воспользовался не virtual(), а system("file.cgi");
 

Незнайка

Старожил
Кекс":21qikgwi сказал(а):
2Незнайка Ну, если в ява-скрипте и ПХП нет взаимозависимых переменных, то так же, как и любой кусок хтмл.

С этого и начал, но чё-то не работает. ПХП этот код полностью игнорирует.
В HTML-файлах этот скрипт работает на 100%
 
Верх