Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Веб-программирование > PHP
Перезагрузить страницу Можно ли создавать php-файлы, в которые вшиты другие файлы?
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
feedbee feedbee вне форума
Member
 
Сообщений: 323
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 29.02.2004
По умолчанию Можно ли создавать php-файлы, в которые вшиты другие файлы? - 18.08.2004, 13:33

Можно ли создавать php-файлы, в которые вшиты другие файлы? Принцип инсталлятора. Т.е., мое php-файл из себя достает содержимое зипа и создает рядом с собой его (собственно зип), потом разархивирует (ну сэтим уже траблов нет ) и т.д.
Ответить с цитированием
  (#2 (permalink)) Старый
SiMM SiMM вне форума
Member
 
Сообщений: 1,961
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.08.2003
По умолчанию Re: Можно ли создавать php-файлы, в которые вшиты другие фай - 18.08.2004, 16:55

Цитата:
Originally posted by feedbee
[b]Можно ли создавать php-файлы, в которые вшиты другие файлы? Принцип инсталлятора. Т.е., мое php-файл из себя достает содержимое зипа и создает рядом с собой его (собственно зип), потом разархивирует (ну сэтим уже траблов нет ) и т.д.
Идея конечно интересная, но думаю, не стоит с этим заморачиваться. Дело даже не в возможности/невозможности этого, а в том, что в архиве в принципе вполне может найтись последовательность '<?' (вероятность, думаю, порядка 1/65536), после которой, естесственно, парсер просто заткнётся (вероятность того, что тут же встретится '?>' или удобоваримый для PHP код крайне низка) - опять же лишняя нагрузка на парсер/сервер. А так, в принципе
Код:
<?
// твой PHP-код
  exit()
?>
[тело архива]
При чём, по моему этот архив даже будет открываться, поскольку правильный распаковщик ищет данные в файле начиная с сигнатуры (принцип SFX-архивов)
Ответить с цитированием
  (#3 (permalink)) Старый
feedbee feedbee вне форума
Member
 
Сообщений: 323
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 29.02.2004
По умолчанию 18.08.2004, 19:14

А как ты предлагаешь этот файл сделать? блокнотом не получается: архитв портится...
Ответить с цитированием
  (#4 (permalink)) Старый
SiMM SiMM вне форума
Member
 
Сообщений: 1,961
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.08.2003
По умолчанию 18.08.2004, 21:17

copy /?
Ответить с цитированием
  (#5 (permalink)) Старый
feedbee feedbee вне форума
Member
 
Сообщений: 323
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 29.02.2004
По умолчанию 19.08.2004, 01:47

Код:
$fp = fopen ('setup_text.php', "r");
$buffer = fread($fp, filesize('setup_text.php'));
fclose ($fp);

$fp = fopen ('my.zip', "r");
$buffer2 = fread($fp,  filesize('my.zip'));
fclose ($fp);

$fp = fopen ("setup_out.php", "w+");
fwrite ($fp, $buffer.$buffer2);
fclose ($fp);
Так я слил файлы. Они вроде успешно слились. И никаких <? там нет - это и проверить перед передачей в нет можно

Следующий этап - работа скрипта. Трабла: как заставить скрипт выделить из себя нужную часть, сохранить ее в zip-файл.
Я делал так:
Код:
        $fp = fopen ("setup.php", "r");
        $buffer = fread($fp, 999999);
        fclose ($fp);

        $buffer = preg_replace('#<?(.)*?>#isU', '', $buffer);

        $fp = fopen ("GXShop.zip", "w+");
        fwrite ($fp, $buffer);
        fclose ($fp);
Я понимаю, что preg_replace('#<?(.)*?>#isU', '', $buffer) здесь не очень к месту, но главное - работает, а вот файл "GXShop.zip", причем ошибки не выдаются... Особо колупаться времени не было, может ты что-то заметишь?.. (2Simm)
P.S. С правами доступа все само собой ОК.
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
SiMM SiMM вне форума
Member
 
Сообщений: 1,961
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.08.2003
По умолчанию 19.08.2004, 09:58

Цитата:
Originally posted by feedbee
[b]Трабла: как заставить скрипт выделить из себя нужную часть, сохранить ее в zip-файл.
Как я уже говорил выше - ZIP-файл начинается с сигнатуры (подробнее можно посмотреть здесь) - этим-то и можно воспользоваться. Т.е. любой ZIP-файл начинается с 0x04034b50 и в твоём случае достаточно начинать вырезать с позиции strpos($buffer,"x50x4Bx03x04");
Вроде так, не проверял
Ответить с цитированием
  (#7 (permalink)) Старый
SiMM SiMM вне форума
Member
 
Сообщений: 1,961
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.08.2003
По умолчанию 04.12.2005, 01:59

http://phpinside.ru/?q=node/297
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как с помощью Builder можно вносить изменения в файлы Димитер C++ Builder 2 09.04.2011 14:14
Каким способом можно восстановить файлы на компьютере? блондинка777 Любые вопросы от новичков 5 12.05.2010 12:03
Можно ли восстановить утерянные файлы? СветланаMJJ Windows XP 5 08.05.2010 23:43
Как загрузить игру или другие файлы на свой сайт? as99-99as Любые вопросы от новичков 2 27.02.2010 18:43
Можно ли закачивать файлы при выключенном компьютере? alex95 Любые вопросы от новичков 8 20.11.2008 17:56
Каким плеером можно просмотреть файлы в формате FLV? dolphin_sea Любые вопросы от новичков 4 25.08.2008 18:16
Как можно защитить файлы в формате PDF? Psychologist Любые вопросы от новичков 4 06.04.2008 15:22
Можно ли редактировать файлы PFC? 5565610 Prolog 1 11.10.2006 16:35
Как можно открыть .xls-файлы из C++ Builder белый дракон C++ Builder 2 21.03.2006 14:54
Как определить файлы которые заняты системой Doglike76 Visual C++ 0 29.08.2004 00:56
Как создавать файлы баз данных с форматом отличным от MDB Stealth Visual C++ 1 01.03.2004 16:19
Где можно скачать заголовочные файлы Skywalker-cyb Visual C++ 10 22.01.2004 11:56



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов