код вставки word, excel в php страницу

Форум для программистов

Сообщение Piloan » Пт сен 12, 2008 5:00 pm

Знаю, что так можно сделать:
есть php страница надо вставит код чтоб открывался word или excel в этой странице. Именно открывалась(и чтоб изменять нельзя было этот ворд или excel) в странице, а не загружалась. Может есть у крго какие нибудь предложения, по инету лазил, найти не мог с утра. Есть что то типо <?php
$word = new COM("C:\docs\word.doc");
?>
Piloan
Капитан
 
Сообщений: 187
Зарегистрирован: Сб янв 04, 2003 7:16 am
Откуда: Казань
Пункты репутации: 0

Сообщение Sh0Ck_filE » Сб сен 13, 2008 1:48 pm

Гуглить лень?

Можно в том же ворде попробовать сделать embedded excel file и сохранить как html.
<!--coloro:red--><span style="color:red"><!--/coloro-->"Для того чтобы быть человеком, надо им какое-то время не быть."<!--colorc--></span><!--/colorc--> ©<a href="http://zhurnal.lib.ru/b/brigadir_j_a/" target="_blank">Ю. А. Бригадир.</a>
<a href="http://counter.li.org/cgi-bin/runscript/display-person.cgi?user=437143" target="_blank">Registered Linux user #437143</a>.
Sh0Ck_filE
Генерал-лейтенант
 
Сообщений: 3474
Зарегистрирован: Пн апр 21, 2003 6:20 pm
Откуда: СССР
Пункты репутации: 0

Сообщение Piloan » Сб сен 13, 2008 2:41 pm

сделал
<?
include("1.doc"); ?>

там вот такая хрень(РПаЎ±б>юя "$юяяя!яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя
яяяяяямҐБE@рїЖbjbjѓжѓж.бЊЖю,1ђh°‚. °ЖA!°Ґ"°R#ђn$ђn%°°Д°Д ђДњB@сяB 1KG=tHBAтяЎB )

что то с кодировкой что ли
самое интересное, что если ворд даже пустой все равно какая то хрень на 20 строк
Piloan
Капитан
 
Сообщений: 187
Зарегистрирован: Сб янв 04, 2003 7:16 am
Откуда: Казань
Пункты репутации: 0

Сообщение Piloan » Вс сен 14, 2008 9:50 am

<?
include("1.txt"); ?>
Отлично работает

Хотелось бы еще с таблицами проделать тоже самое. Но при вставке
<?
include("1.xls"); ?>
выдает вообще ошибку:
Parse error: parse error, unexpected T_STRING in z:\home\localhost\www\имя.ru\1.xls on line 67
Piloan
Капитан
 
Сообщений: 187
Зарегистрирован: Сб янв 04, 2003 7:16 am
Откуда: Казань
Пункты репутации: 0

Сообщение dAnIK SeNT » Вс сен 14, 2008 12:57 pm

Piloan,
Если бы ты не был зарегистрирован аж в 2003 году, я бы решил, что ты тролль и решил поглумиться. Однако, буду исходить из того, что ты просто не в полной мере понимаешь, что такое php, html, txt, doc, xls и чем всё это отличается друг от друга.

php - это серверный язык программирования. Результатом работы php-скрипта должен являться корректный html-файл, который передаётся браузеру.
Команда include включает внешний файл в результат вывода.
Очевидно, что когда ты включаешь в каком-то месте своего скрипта текстовый файл, его содержимое более или менее корректно интерпретируется браузером, т.к. html по своей сути - просто текстовый файл с небольшими дополнениями в виде тагов.

А теперь посмотри по F3 на содержимое файлов xls, или doc. Или открой их в Notepad'е. Как по-твоему, это похоже на валидный HTML? С какого перепугу твой браузер должен всё это нормально отображать? Ведь include - исключительно неинтеллектуальная команда, она просто берёт содержимое файла и передаёт его твоему браузеру.

Ещё раз: задача php-скрипта - выдать браузеру корректный html. Ты можешь в качестве исходника брать всё, что угодно - xls, doc, pdf, чёрта лысого, но ты обязан преобразовать всё это в HTML (я слышал, что есть соответствующие библиотеки для php). Либо можно использовать ActiveX/Java-объект, умеющий парсить и отображать содержимое таких файлов, но php тут ни при чём, делается это на голом html с использованием тага <object>.

Есть ещё вариант - если твой браузер умеет сам отображать xls/doc файлы (т.е., если в нём установлен соответствующий плагин; такое есть, к примеру, в составе Microsoft Office). Проверить просто - попробуй на своём локальном компе открыть xls-файл с помощью Internet Explorer. Если откроется, то всё, что тебе надо сделать, это:
1. послать корректные HTML-заголовки вместо стандартных с помощью команды header()
2. заслать далее в поток файл чем-то типа readfile() или fpassthru()
Пример кода, отправляющий gzip-файл (для DOC/XLS придётся изменить Content-Type на что-то типа Application/MSWord, или как там оно называется):
<!--quoteo--><div class='quotetop'>Цитата</div><div class='quotemain'><!--quotec-->$fn = 'myfile.gz';
$fp = fopen($fn, "r");
header('Expires: ' . $conf['now']); // rfc2616 - Section 14.21
header('Last-Modified: ' . $conf['now']);
header('Cache-Control: no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
header('Pragma: no-cache'); // HTTP/1.0
header("Content-Type: application/x-gzip");
header("Content-Length: " . filesize($fn));
header("Content-Disposition: attachment; filename=\"backup-".date('Ymd-His').".gz\"");
fpassthru($fp);
fclose($fp);<!--QuoteEnd--></div><!--QuoteEEnd-->
Очень важно, чтобы ни до, ни после подобного кода твой скрипт не выводил ни одной строчки текста!
Минус данного подхода - работать он будет только у тебя и у тех несчастных, которые открывают твой сайт Internet Explorer'ом с установленным MSOffice-плагином. У всех остальных просто откроется окошко с предложением сохранить файл на диск.
Последний раз редактировалось dAnIK SeNT Вс сен 14, 2008 12:59 pm, всего редактировалось 1 раз.
яНЯЕД ОН СОПЪФЙЕ: Athlon 64 X2 5200+ @2,86GHz / nF 570 SLI (ASUS M2N SLI Deluxe) / 4 Gb RAM (4x1Gb Kingston) / 2,9Tb SATAII (0,50+0,64+0,75+1,00Tb WD) / ASUS 8800 GTS512 / 2x NEC-Optiarc AD-7173 / Thermaltake ToughPower 650W / 2x30W Microlab Solo-2 / 20" LCD Benq FP202W (wide) / openSUSE 11.1 / KDE 4.2.1
<!--coloro:Navy--><span style="color:Navy"><!--/coloro-->оН БЯЕЛ БНОПНЯЮЛ - Б email. б ICQ ОНЪБКЪЧЯЭ ПЮГ Б ОНКЦНДЮ.<!--colorc--></span><!--/colorc-->
dAnIK SeNT
Маршал
 
Сообщений: 5101
Зарегистрирован: Чт мар 28, 2002 7:48 pm
Откуда: яяяп
Пункты репутации: 0

Сообщение Piloan » Вс сен 14, 2008 5:51 pm

Надо переварить
Piloan
Капитан
 
Сообщений: 187
Зарегистрирован: Сб янв 04, 2003 7:16 am
Откуда: Казань
Пункты репутации: 0

Сообщение Chumak » Пт июн 19, 2009 2:58 pm

А мне наоборот надо вставить таблицу Excel на страницу что бы её можно было редактировать.
Ну по порядку. Я сделал смету в екселе и хочу выложить на страницу, правда не PHP, а HTML, но суть от этого не меняется. Вот, соответственно у посетителей страницы должна быть возможность заполнять эту таблицу. Подскажите, пожалуйста, возможно ли такое сделать?
Chumak
Рядовой
 
Сообщений: 5
Зарегистрирован: Пт июн 19, 2009 2:34 pm
Откуда: Санкт-Петербург
Пункты репутации: 0

Сообщение SiMM » Сб июн 20, 2009 5:01 am

Chumak писал(а):А мне наоборот надо вставить таблицу Excel на страницу что бы её можно было редактировать.
Ну по порядку. Я сделал смету в екселе и хочу выложить на страницу, правда не PHP, а HTML, но суть от этого не меняется. Вот, соответственно у посетителей страницы должна быть возможность заполнять эту таблицу. Подскажите, пожалуйста, возможно ли такое сделать?
А какой смысл заполнять что-то, если сохранять это что-то не предполагается?
IRC: <a href='http://www.fileforum.ru/irc.php' target='_blank'>RUSNET #fileforum</a> (irc.tsk.ru:6669)
SiMM
Подполковник
 
Сообщений: 588
Зарегистрирован: Чт июн 13, 2002 8:41 am
Пункты репутации: 0

Сообщение Chumak » Сб июн 20, 2009 2:46 pm

SiMM писал(а):А какой смысл заполнять что-то, если сохранять это что-то не предполагается?


А вот это уже был мой следующий вопрос. Вы меня просто опередили))).
Разумеется если потенциальные клиенты самостоятельно заполнили смету на сайте, то было бы очень даже неплохо её сохранить.
Chumak
Рядовой
 
Сообщений: 5
Зарегистрирован: Пт июн 19, 2009 2:34 pm
Откуда: Санкт-Петербург
Пункты репутации: 0

Сообщение DruiD » Вс июн 21, 2009 6:43 am

мм, а гугл-доки интегрировать к себе в страницу можно?
"Вы можете тысячу раз обвинять нас, богиня вечного суда истории усмехнется, разорвет приговор вашего суда, и, после, объявит нас свободными".
А. Гитлер, Mein Kampf.
DruiD
Полковник
 
Сообщений: 1171
Зарегистрирован: Чт июн 02, 2005 3:13 pm
Откуда: Зеленоград
Пункты репутации: 0

Сообщение Chumak » Вс июн 21, 2009 7:45 pm

DruiD писал(а):мм, а гугл-доки интегрировать к себе в страницу можно?


А что такое гугл-доки?
Chumak
Рядовой
 
Сообщений: 5
Зарегистрирован: Пт июн 19, 2009 2:34 pm
Откуда: Санкт-Петербург
Пункты репутации: 0

Сообщение DruiD » Вс июн 21, 2009 8:08 pm

Chumak, google docs вестимо.
Онлайн замена офису.
"Вы можете тысячу раз обвинять нас, богиня вечного суда истории усмехнется, разорвет приговор вашего суда, и, после, объявит нас свободными".
А. Гитлер, Mein Kampf.
DruiD
Полковник
 
Сообщений: 1171
Зарегистрирован: Чт июн 02, 2005 3:13 pm
Откуда: Зеленоград
Пункты репутации: 0

Сообщение Chumak » Вс июн 21, 2009 8:58 pm

Поюзал, хорошая штука. Только вот можно ли её интегрировать на страницу?
Chumak
Рядовой
 
Сообщений: 5
Зарегистрирован: Пт июн 19, 2009 2:34 pm
Откуда: Санкт-Петербург
Пункты репутации: 0

Сообщение eDio » Пн июн 22, 2009 6:08 am

Могу ошибаться, но вроде на хабре об этом что-то было. Вообще надо искать, но думаю, что можно.
<!--coloro:#CCCCCC--><span style="color:#CCCCCC"><!--/coloro--><!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->Core 2 Duo E6550 // ASUS P5K // 2GB PC6400 in Dual-channel mode // XpertVision GeForce 8600GT // Samsung 160GB // ESI Juli@<!--sizec--></span><!--/sizec--><!--colorc--></span><!--/colorc-->
eDio
Майор
 
Сообщений: 427
Зарегистрирован: Вс апр 09, 2006 9:37 pm
Откуда: Київ, Україна
Пункты репутации: 0

Сообщение Chumak » Пн июн 22, 2009 8:10 am

eDio писал(а):Могу ошибаться, но вроде на хабре об этом что-то было. Вообще надо искать, но думаю, что можно.


А ссылку не скинете?
Последний раз редактировалось Chumak Пн июн 22, 2009 8:11 am, всего редактировалось 1 раз.
Chumak
Рядовой
 
Сообщений: 5
Зарегистрирован: Пт июн 19, 2009 2:34 pm
Откуда: Санкт-Петербург
Пункты репутации: 0

След.

Вернуться в Программирование

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5