НЕ ЗАНИМАЮСь ФИНАНСАМИ!
С нами с 16.03.03
Сообщения: 1251
Рейтинг: 653
|
Добавлено: 06/04/04 в 15:54 |
Скрипт выдает страничку, в которой присутствует <!--#include virtual="url.php" -->, как заставить апач произвести вставку?
|
|
|
|
С нами с 19.09.03
Сообщения: 1988
Рейтинг: 1247
|
Добавлено: 06/04/04 в 16:38 |
<!--#include virtual="url.php" --> - это директива shtml, если тебе нужно из пхп заинклюдить есть функции
include("file");
virtual("file");
|
|
|
|
С нами с 19.09.03
Сообщения: 1988
Рейтинг: 1247
|
Добавлено: 06/04/04 в 16:50 |
А, если тебе это нужно заинклюдить в таком виде как у тебя написано - страница должна быть с расширением shtml обычно, и на сервере должна быть поддержка SSI.
|
|
|
|
НЕ ЗАНИМАЮСь ФИНАНСАМИ!
С нами с 16.03.03
Сообщения: 1251
Рейтинг: 653
|
Добавлено: 06/04/04 в 17:19 |
Wahoven писал: | <!--#include virtual="url.php" --> - это директива shtml, если тебе нужно из пхп заинклюдить есть функции
include("file");
virtual("file"); |
не, мне надо вставить не в сам скрипт а в результат его деятельности
т.е. скрипт из базы берет кусок текста, в котором может быть <!--#include virtual="url.php" --> и из таких кусочков собирает страничку.
хотелось бы что и вставки работали сами...
|
|
|
|
С нами с 19.09.03
Сообщения: 1988
Рейтинг: 1247
|
Добавлено: 06/04/04 в 17:38 |
Ну так что тебя не устраивает?
|
|
|
|
НЕ ЗАНИМАЮСь ФИНАНСАМИ!
С нами с 16.03.03
Сообщения: 1251
Рейтинг: 653
|
Добавлено: 06/04/04 в 17:51 |
Wahoven писал: | Ну так что тебя не устраивает? |
в каком варианте в моем или твоем?
в моем <!--#include virtual="url.php" --> не заменияется на результат url.php
|
|
|
|
С нами с 19.09.03
Сообщения: 1988
Рейтинг: 1247
|
Добавлено: 06/04/04 в 18:02 |
А на что заменяется?
Ты можешь обьяснить откуда ты вставляешь?
Если из ПХП - то сделать
include("http://aaa.com/s.php");
А если из схтмл - то у тебя ССИ не работает..
|
|
|
|
НЕ ЗАНИМАЮСь ФИНАНСАМИ!
С нами с 16.03.03
Сообщения: 1251
Рейтинг: 653
|
Добавлено: 06/04/04 в 18:14 |
Wahoven писал: | А на что заменяется?
Ты можешь обьяснить откуда ты вставляешь?
|
из php
пусть в url.php такой код
echo "Privet vsem!!!";
надо чтоб работало нечто похожее на это
$s="blablabla <!--#include virtual="url.php" --> hihihihi";
echo $s;
чтоб на страничке было не
blablabla <!--#include virtual="url.php" --> hihihihi
а
blablabla Privet vsem!!! hihihihi
причем virtual и include не КАТЯТ т.к. строки берутся из БД
и заранее какой урл встялять надо будет неизвестно!
|
|
|
|
С нами с 19.09.03
Сообщения: 1988
Рейтинг: 1247
|
Добавлено: 06/04/04 в 18:40 |
Писец, ты читать умеешь?
пусть в url.php такой код
echo "Privet vsem!!!";
<?
$url="http://www.url.com/url.php";
?>
blablabla<? include($url); ?> hihihi
|
|
|
|
С нами с 06.03.03
Сообщения: 1650
Рейтинг: 1096
|
Добавлено: 06/04/04 в 22:17 |
я кажись понял чего ему надо. ему надо на пхп формировать код который уже после вывода должен парситься через SSI. т.е. упрощенно говоря чтобы -
<?php
echo '<!--#include virtual="url.php" -->';
?>
в результате выдавало результат работы файла url.php, хотя не пойму нах это надо, когда без заморочек можно все просто сделать на чистом пхп.
что касается решения этой задачки - то это 100% надо с htaccess'ом заморачиваться, чтобы файл .php обрабатывался сначала пхп-интерпретатором, а затем как Server Side Include... Спецы щас подскажут по этому поводу, а я воздержусь - не дружу я пока с htaccess'ом, если тока по мелочи.
|
|
|
|
+ +
С нами с 29.08.03
Сообщения: 1704
Рейтинг: 293
|
Добавлено: 06/04/04 в 23:30 |
SSI может вставлять не только в shtml, но и в htm. html и т.д. и т.п. Смотря, что прописано в httpd.conf апача.
|
|
|
|
С нами с 01.11.02
Сообщения: 90
Рейтинг: 80
|
Добавлено: 07/04/04 в 11:05 |
ИМХО можно обойтись и без таких "навороченных приемов" программирования для достижения цели. Просто скрипт переписать надо. Мне кажется, что алгоритм всего скрипта нерацонален.
Я с тех пор как начал писать на php - лет 5 назад... ни разу не использовал функций SSI.
|
|
|
|
С нами с 25.12.03
Сообщения: 1003
Рейтинг: 462
|
Добавлено: 07/04/04 в 17:18 |
ну запарили человека
Словом - нельзя использовать ssi в выводе php, по крайней мере со стандартным набором модулей.
Варианты обхода:
1) изменить структуру приложения, то что уже предлагали
2) если все-же использовать ssi в выводе php, то нужно этот вывод пропустить через собственный ssi фильтр-парсер, который заполнит ssi вставки.
|
|
|
|
НЕ ЗАНИМАЮСь ФИНАНСАМИ!
С нами с 16.03.03
Сообщения: 1251
Рейтинг: 653
|
Добавлено: 07/04/04 в 21:34 |
begemot писал: | ну запарили человека
2) если все-же использовать ssi в выводе php, то нужно этот вывод пропустить через собственный ssi фильтр-парсер, который заполнит ssi вставки. |
Приедтся остановится на модификации скрипта
тогда всплывается следующий впрос как корректно организовать подгрузку левого урла, при этом учесть что удаленный хость может и висеть, тормозить и пр
хотелось бы избежать повисания скрипта
|
|
|
|
С нами с 06.12.02
Сообщения: 23
Рейтинг: 29
|
Добавлено: 08/04/04 в 04:37 |
1. в ветке Apache 1.3 сделать последовательную обработку разными handler просто невозможно в силу архитектуры самого сервера.
Можно в принципе переползти на Apache2 с mpm = prefork, но это не стоит того имхо.
2. решение как мне кажется довольно очевидно: текст, который вы выдергиваете из базы надо просто ручками(regular expressions) распарсить и нужные директивы заменить на вызовы virtual(некоторый url); если уж mod_include(написанный на C) это дело может, то и вам под силу.
кстати, в SSI директивах include virtual внешние урлы работать не будут.
|
|
AnToXa - born programmer
|
0
|
|
|
С нами с 01.11.02
Сообщения: 90
Рейтинг: 80
|
Добавлено: 08/04/04 в 12:24 |
Guest:
fopen()
If the open fails, the function returns FALSE.
Код: |
<?
$fp = fopen(__URL__, "r");
if ($fp) {если страница доступна} else {действия по умолчанию, если страницу открыть невозможно}
?>
|
еще интереснее функция file() - она тебе выдаст в массив всю страницу или false
можно скорее всего и по другому выкрутиться
|
|
|
|
С нами с 06.03.03
Сообщения: 1650
Рейтинг: 1096
|
Добавлено: 08/04/04 в 13:34 |
Guest писал: | Приедтся остановится на модификации скрипта
тогда всплывается следующий впрос как корректно организовать подгрузку левого урла, при этом учесть что удаленный хость может и висеть, тормозить и пр
хотелось бы избежать повисания скрипта |
если ты хочешь избежать подвисания скрипта - то лучше для запроса файла с удаленного хоста использовать библиотеку LibCURL. Там ты можешь жестко установить параметр таймаута. В стандартных пхп-шных fopen, fsockopen эта опция тоже есть, но она немного подглюкивает в некоторых ситуациях (по-моему если проблема с DNS-ами запрашиваемого хоста, или что то типа того, в общем не надежно), в file вообще нет такого параметра как таймаут. Так что оптимальный вариант это CURL. см. мануал к PHP.
|
|
|
|
НЕ ЗАНИМАЮСь ФИНАНСАМИ!
С нами с 16.03.03
Сообщения: 1251
Рейтинг: 653
|
Добавлено: 08/04/04 в 18:29 |
NAXER писал: | еще интереснее функция file() - она тебе выдаст в массив всю страницу или false
можно скорее всего и по другому выкрутиться |
Ага, спасибо, все получилось
|
|
|
|
НЕ ЗАНИМАЮСь ФИНАНСАМИ!
С нами с 16.03.03
Сообщения: 1251
Рейтинг: 653
|
Добавлено: 08/04/04 в 18:36 |
webboxxx писал: | если ты хочешь избежать подвисания скрипта - то лучше для запроса файла с удаленного хоста использовать библиотеку LibCURL. см. мануал к PHP. |
Попробую. спасибо
|
|
|
|
С нами с 23.06.03
Сообщения: 177
Рейтинг: 13
|
Добавлено: 10/04/04 в 01:26 |
|
|
|
|