Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Создание html копии интерпретируемого php файла.
Покинул форум
Сообщений всего: 128
Дата рег-ции: Апр. 2010
Помог: 1 раз(а)
Дано:
1. PHP-файл на странице сайта.
2. При открытии этого файла он соответсвенно дает браузеру нужный Html.
3. Нужно чтобы этот PHP-файл одновременно генерировал на сервере и сохранял копию этого Html файла (который мы видим как исходник страницы у себя в браузере).
Сразу сделать этот html не получается, так как php-файл будет цеплять разные другие для собственной сборки.
Как ее понять? Получается там функции передают имя другой функции как стпроку?
И не совсем понял как работает переменная $buffer. Ведь ей ничего не присваивают, а делают с ней преобразования..
И не совсем понял главного как работает вызов функции
?
тоесть в нем мы включаем буфер вывода?
А зачем передавать ему значение функции?
Ведь в странице этих функций может быть сколько угодно и не известно как они даже називаются...
----- Если все время идти вперед, до цели будет немного ближе..
LIME
Отправлено: 17 Августа, 2011 - 13:59:52
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
а не перечитать ли вам ее внимательнее?
все же есть в описании
Конструктор пишет:
Получается там функции передают имя другой функции как стпроку?
Цитата:
Может быть специфицирована необязательная функция output_callback. Эта функция принимает строку как параметр и должна возвращать строку. Функция будет вызвана при вызове ob_end_flush(), или если буфер выводится в браузер в конце запроса. Когда вызывается output_callback, она примет содержимое буфера вывода как параметр и по идее должна возвратить новый буфер вывода как результат, который будет направлен в браузер.
Конструктор пишет:
Например зачем в нем еще и регулярные выражения?
с их помощью обрабатывается буфер вывода (изменяется)
в одном вы правы - вам это ненадо
вам главное в начале стартануть буферизацию
в конце записать буфер в файл и отправить в вывод (Добавление)
Конструктор пишет:
И не совсем понял как работает переменная $buffer. Ведь ей ничего не присваивают, а делают с ней преобразования..
в нее помещается буфер для дальнейшей обработки
Конструктор
Отправлено: 17 Августа, 2011 - 14:09:17
Частый гость
Покинул форум
Сообщений всего: 128
Дата рег-ции: Апр. 2010
Помог: 1 раз(а)
а output_callback и callback это ведь одно и тоже?
просто в коде callback,
а в описании пишут про output_callback. Какую именно нужно использовать?
Или можно даже по-своему обозвать?
Цитата:
Эта функция принимает строку как параметр и должна возвращать строку.
Не свовсем очевидно что значит - возвращает строку.. Я так понял берется пустая переменная, инициализируется, и в конце скрипта этой строке присваевается все что в буфере?
----- Если все время идти вперед, до цели будет немного ближе..
LIME
Отправлено: 17 Августа, 2011 - 14:22:10
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
void ob_start ([string output_callback])
знакомая строчка?
научитесь читать краткое описание
[] означает что параметр необязательный
void значит что не возвращает значений (типа процедура)
вам это не надо
string output_callback преобразует вывод перед отправлением
Цитата:
Эта функция принимает строку как параметр и должна возвращать строку.
теперь надеюсь понятно?
повторю- вам это не надо....просто стартуйте без ф-ции
Конструктор
Отправлено: 17 Августа, 2011 - 14:30:32
Частый гость
Покинул форум
Сообщений всего: 128
Дата рег-ции: Апр. 2010
Помог: 1 раз(а)
LIME пишет:
теперь надеюсь понятно?
да ) некоторые вещи стали понятне..
тоесть я пишу так-
----- Если все время идти вперед, до цели будет немного ближе..
LIME
Отправлено: 17 Августа, 2011 - 14:33:23
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
да
только еще не забудьте в файл писать
Конструктор
Отправлено: 17 Августа, 2011 - 17:56:56
Частый гость
Покинул форум
Сообщений всего: 128
Дата рег-ции: Апр. 2010
Помог: 1 раз(а)
LIME пишет:
да
только еще не забудьте в файл писать
Все теперь работает,
а никто не подскажет как записать файл в поддиректорию?
тоесть просто файл пишет без проблем,
а как еще создать подпапку и записать уже в нее?
$fp = fopen($document_root.'/xxx/copy_php.html', 'w'); не работает
----- Если все время идти вперед, до цели будет немного ближе..
DeepVarvar
Отправлено: 17 Августа, 2011 - 18:02:14
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Покинул форум
Сообщений всего: 128
Дата рег-ции: Апр. 2010
Помог: 1 раз(а)
Конструктор пишет:
LIME пишет:
да
только еще не забудьте в файл писать
Все теперь работает,
а никто не подскажет как записать файл в поддиректорию?
тоесть просто файл пишет без проблем,
а как еще создать подпапку и записать уже в нее?
$fp = fopen($document_root.'/xxx/copy_php.html', 'w'); не работает
нашел
mkdir($document_root.'/xxx', 0700);
DeepVarvar спасибо, просто поисковик в данном случае тоже быстро ответил)
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.