| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Включение и обработка... |
| Автор: Kirill Baranov 22.5.2006, 19:38 |
| Доброго времени суток Есть у меня вот обработчик текст "Пагинация", который берет переменную, в которой текст содержится и начинает её обрабатывать. Так вот...а если я хочу обратать не переменную, а файл?! Как быть так? Include не катит, ибо там инклюдится файл и его в переменную не затащишь. file_get_contents не катит аналогично, но в данном случае из-за того, что в файле может быть PHP код и тогда будет полная жопа) Как быть? |
| Автор: madFobos 22.5.2006, 21:19 |
| А в чем проблема с PHP кодом и file_get_contents? Содержимое-то ты получишь, а дальше уже работа твоего "пагинатора" искать и пропускать код или еще что. |
| Автор: Kirill Baranov 22.5.2006, 21:29 |
| madFobos, Да дело в том что при file_get_contents PHP код не обрабатывается. Его кусок показывается на экране, но не исполняется. |
| Автор: Mal Hack 22.5.2006, 23:03 |
| Kirill Baranov, ты объясни что тебе надо сделать по человечески. |
| Автор: Kirill Baranov 22.5.2006, 23:17 | ||
main.php
Есть файл index.php, содержимое которого описано тут http://forum.vingrad.ru/index.php?showtopic=95490 (разбивка на страницы) Так этот скрипт разбивки на страницы. Если бы был обычный файл, то мона было бы использовать ф-цию file_get_contents, чтобы занести все его содержимое в переменную, которую скрипт и обработал бы...а у меня есть файл со скриптом PHP внутри. Как тогда сделать обработку этого файла через этот скрипт пагинатора? |
| Автор: Mal Hack 22.5.2006, 23:25 |
| Еще раз прошу объяснить что ты ХОЧЕШЬ СДЕЛАТЬ, а не то, КАК ТЫ ЭТО ВИДЕШЬ. ТО, ЧТО ТЫ ВИДЕШЬ НЕ ПРАВИЛЬНУЮ РЕАЛТЗАЦИЮ Я И ТАК УЖЕ ПОНЯЛ. Что значит "обработать"? |
| Автор: Kirill Baranov 22.5.2006, 23:27 |
| Mal Hack, обработать, значит сделать разбивку данных на страницы с выводом оглавления. Сам скрипт есть, ссылку я дал. |
| Автор: Mal Hack 23.5.2006, 00:01 |
| Разбить его как текстовый на страницы? Это file_get_contents Разбить используя его код, - include. |
| Автор: vasac 23.5.2006, 09:07 | ||
| Kirill Baranov, если считывать файл через file_get_content() напрямую с локального диска, то PHP-код не обработается. Если же через запрос к серверу, т.е. вроде
то обработается и вернется его результат. |
| Автор: Mal Hack 23.5.2006, 09:44 |
| vasac, это вообще глупость. |
| Автор: vasac 23.5.2006, 09:55 |
| Mal Hack, конкретно. Что глупость? Вообще то, что я написал. Или применительно к исходной задаче? |
| Автор: Kirill Baranov 23.5.2006, 11:11 | ||
Mal Hack, глупость глупостью, а вот это:
легко обработалось с помощью file_get_contents |
| Автор: vasac 23.5.2006, 11:21 |
| Kirill Baranov, file_get_contents() при удаленном чтении на длинных файлах может обрываться. Лучше открывать fopen()-ом и читать через fread() небольшими порциями кила по 2, пока не будет конца файла. |
| Автор: R.M. 23.5.2006, 12:34 |
| Kirill Baranov, кавычки там надо убрать для ускорения парса |
| Автор: Kirill Baranov 23.5.2006, 18:33 |
| Блин, срываются все настройки и передать переменные невозможно почему-то. Сразу перестало работать соединение с БД... У вас есть вариант как вообще такую штуку реализовать? Или надо всё-таки как-то разделять статические страницы и динамические? |
| Автор: Mal Hack 23.5.2006, 18:59 |
Глупость открывать соединение с удаленным сервером через fopen и file_get_contents. Для этого fsockopen существует. Kirill Baranov, еще раз, прошу объяснить суть задачи. Тебе надо выполнить код или вывести его или что. Если ответа я не получу, тему закрою. Ну невозможно, блин на самом деле уже. |
| Автор: Kirill Baranov 23.5.2006, 19:05 |
| Да ёлки палки... Есть у меня PHP файл, в котором есть и PHP-код и обычный текст, не РНР. Так вот! Скрипт Надо чтобы брался этот файл и производилось его разделение на страницы с выводом оглавления. Всё... Mal Hack, мне кажется что тока ты не понял в чём фишка |
| Автор: Mal Hack 23.5.2006, 19:12 |
| Наконец-то. С 5 раза... file_get_contents - твое решение. |
| Автор: Kirill Baranov 23.5.2006, 19:15 | ||||
Вот даже код:
Это был пагинатор собсно. А вот файл который надо обработать:
Добавлено @ 19:17 Mal Hack, так при file_get_contents (сам до него допёр) переводит файл в переменную. Таким макаром в PHP код файла не передаются данные (например, данные по подключению к MySQL). И получается фигня какая-то... |
| Автор: madFobos 24.5.2006, 21:01 |
| Mal Hack, я одного не понял, почуму я не могу удаленный файл с помощью file_get_contents получить? Об этом даже в мануале написано... А че надо Киррилу я так и не смог понять. Блин, учите сначала PHP, а потом "пагинаторы" пишите Собственно из того, что я понял, надо сначало пагинтаор в функцию (или класс запихать), затем написать функцию которая вытаскивает текст из PHP (например убирает все между <? и ?>) и все. Но удаленно файл реально никак не получить, только локально... |
| Автор: Mal Hack 24.5.2006, 21:05 | ||
Потому, что это зависит от настроек ПХП, и потому что нет указания таймаута, т.е. скрипт легко подвесить. |
| Автор: madFobos 24.5.2006, 21:09 | ||
Ну настройки зачастую через .htaccess можно подправить, а таймаут скрипта все равно обычно 30 сек... Да и не думаю, что соединение по HTTP займет много времени у нормального сервера (при условии, что адрес существует конечно) |
| Автор: Mal Hack 24.5.2006, 21:12 | ||||
А ты уверен что скрипт "умрет" после этих 30 сек? А ты зхнаешь что лишнее сокетное соединение это нагрузка на сервер?
Читай-те мануал внимательнее. |
| Автор: Kirill Baranov 24.5.2006, 21:17 |
| да нужен мне пагинатор блин который пагинирует все файлы... |
| Автор: madFobos 24.5.2006, 21:43 | ||
Т.е. ты хочешь сказать, что скрипт завершится, а соединение останется? Или он вобще не завершится при наличии соединения? М-да. Погорячился я тут с .htaccess |
| Автор: Mal Hack 24.5.2006, 21:51 | ||
Вот это, как раз и спорный вопрос. Как на никсах не знаю, но в винде, провернено, что скрипт вполне может продолжать работать долгое время. Это просто не надежно и лишняя нагрузка на сервер. |