Показаны сообщения с ярлыком php. Показать все сообщения
Показаны сообщения с ярлыком php. Показать все сообщения

среда, 10 августа 2011 г.

Генерация документа Word средствами php (простейший метод)


Всем привет!
Сегодня передо мной встала задача отдавать пользователю сгенерированную html'ку в формате *.doc. Был найден простейший метод как это сделать без подключения дополнительных библиотек и лишних телодвижений.В скрипте, хранящем логику вывода (в моем случае это контроллер, согласно MVC-паттерну) добавляем заголовки ответа:
header("Content-type: application/vnd.ms-word");
header("Content-Disposition: attachment;Filename=document_name.doc");

В html-шаблоне (т.н "вьюхе") не требуется какая-то особая структура, только кодировку указываем виндовую. Примерно так это выглядит у меня:
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
<head>
<body>
    <h1>Привет, мир!h1>
<body>
<html>

Вот и вся магия! Стоит заметить, что описанный метод подходит для генерации простых текстовых документов без сложного форматирования. Если вам нужны диаграммы, формулы и тому подобное, лучше будет поискать отдельную библиотеку.

Источник: (StackOverflow.com)

UPD: Небольшое исследование показало, что в метатеге лучше использовать кодировку "UTF-8", особенно если в документе есть кириллица.

среда, 17 ноября 2010 г.

Боремся с ошибками при настройке веб-сервера Apache [перевод]


Всем привет! Предлагаю к прочтению мой перевод заметки в буржуйском блоге, которая очень помогла с настройкой WAMP (сокр. Windows/Apache/MySQL/PHP) после переустановки винды. В конце поста добавил свои 5 копеек. Поехали! 
 

Ошибка "Faulting application httpd.exe, faulting module php5ts.dll"
 

Не так давно я настраивал типичную среду веб-разработки на машине с установленной Windows Vista, делая все как обычно . Единственным отличием на сей раз были более свежие версии компонентов: Apache HTTP 2.2.10, PHP 5.2.8 и MySQL 5.1. 

При попытке достучаться к базе, phpMyAdmin все время падал и в виндовых логах было следующее:
 

Faulting application httpd.exe, version 2.2.10.0, time stamp 0x48ef9351, faulting module php5ts.dll, version 5.2.8.8, time stamp 0x493d75fc, exception code 0xc0000005, fault offset 0x00009fe6, process id 0x18c, application start time 0x01c95d543b01222a.

Сначала я решил, что все дело в новых версиях софта, которые, вероятно конфликтуют между собой,  не хотят работать вместе. Но, полуглив по поводу библиотеки php5ts.dll, обнаружил, что подобные проблемы случались и у людей с более старыми версиями php и апача.

четверг, 5 августа 2010 г.

php-switcher. Быстрое переключение между версиями php.


Привет, читатель!


Давно хотел, но все не получалось перейти с php 5.2.x на php 5.3.x на девелоперской машине под виндой. Все дело в том, что часть старых проектов юзают код, который корректно работает только с php версий ниже 5.3.x.


Поэтому, было решено сделать удобное динамическое переключение между php 5.2.x и 5.3.x. Погуглив, нашел инфу, что подобный функционал присутствует в готовых сборках типа xampp. Такой вариант меня не устроил, ибо привык настраивать все компоненты самостоятельно. Значит, нужно что-то придумать!