Рубрика «php» - 206

В статье Не очень честная генерация DOC файлов на PHP был описан описан способ генерации DOC файла при помощи генерации MHT (MIME HTML) используя стороннюю библиотеку. Сегодня я расскажу о своей собственной генерации в этот формат. Плюсы моего способа следующие:

1) В OpenOffice читаемый текст и картинки.
2) В Word открывается файл в электронном виде, а не на весь экран.
3) Наш скрипт будет принимать HTML и отдавать сразу DOC файл на скачивание.

Ко всему прочему, вы поймете как преобразовать голый HTML в MHT собственными руками. Ошибки если и будут, то копаться в коде будет проще.

Начнем с функции, которая отдаст DOC файл на скачивание и будет работать во всех браузерах и со всеми протоколами(у меня с этим были проблемы):

/* Отсылаем файл на закачку */

function send_download($filename, $charset = 'cp1251')
{

    header ($_SERVER["SERVER_PROTOCOL"] . ' 200 OK');

    if (ereg('Opera(/| )([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']))
        $UserBrowser = "Opera";
    elseif (ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']))
        $UserBrowser = "IE";
    else
        $UserBrowser = '';
 
    $mime_type = ($UserBrowser == 'IE' || $UserBrowser == 'Opera') ?
    'application/octetstream' : 'application/octet-stream';

    header("Content-Type: application/msword; charset=".$charset);


    $ua = (isset($_SERVER['HTTP_USER_AGENT']))?$_SERVER['HTTP_USER_AGENT']:'';

    $isMSIE = preg_match('@MSIE ([0-9].[0-9]{1,2})@', $ua);
    if ($isMSIE) 
    {
        header('Content-Disposition: attachment; filename="' . $filename . '"');
	header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Pragma: public');
    } 
    else 
    {
        header('Content-Disposition: attachment; filename="' . $filename . '"');
        header('Pragma: no-cache');
    }
}

Читать полностью »

Дайджест интересных новостей и материалов из мира PHP за последние две недели №10 (26.01.2013 — 11.02.2013)

Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать полностью »

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

Читать полностью »

Первое правило безопасности при разработке Веб приложений гласит: —

Не доверять данным пришедшим от клиента.

Почти все это правило хорошо знают и соблюдают. Мы пропускаем через валидаторы данные форм, кукисы, даже URI.
Но недавно я с удивлением обнаружил, что есть одна переменная, приходящая от клиента, которую почти никто не фильтрует.
Речь пойдет о компрометации веб приложения через подмену значения HTTP_HOST и SERVER_NAME.
Читать полностью »

Возникла недавно задача, связанная с конвертацией между различными позиционными системами счисления.

В качестве реального применение обычно выступают сервисы для сокращения URL, использующие системы base36/base62 или, например, хранение большого количества огромных чисел в том же base62 для экономии памяти.

Поискав среди существующих решений, понял, что ни одно из них не устраивает, в связи с чем, решил подготовить библиотеку-компонент для различных математических задач в фреймворке.

Получилась AzaMath — библиотека для конвертации между системами счисления (включая кастомные) + удобная арифметика произвольной точности.
Читать полностью »

Я уже довольно долгое время хочу формализовать все свои мысли, опыт, ежедневно применяемый на практике, и многое другое в одном месте и предоставить их общественности. Уверен, многим этот материал будет полезен. Он посвящен различным моментам в конфигурации серверного ПО Linux и безопасным подходам к созданию сайтов/приложений на php (все же это до сих пор одна из самых популярных связок, хоть её успешно и подвигают другие технологии).

Т.е. речь идет о типичной ситуации. Проект (стартап), купили под него сервер и разворачиваем на нем сайт. Бизнесу не нужно тратить лишних денег на сервера (поэтому будут выбраны наиболее производительные связки ПО), а так же нужно, чтобы все было безопасно, при чем бесплатно :)
Читать полностью »

Как правило, разработка и отладка приложения выполняются на локальном веб-сервере, обычно это приводит к проблемам типа «как предоставить проект клиенту» ну или просто трудность работы за несколькими компьютерами.

Данная статья не несет ничего нового, а скорей просто пошаговая инструкция как подготовить сервер для разработки проектов.

В итоге мы должны получить:

  • git-репозиторий
  • веб-сервер ( nginx, без apache )
  • php различных версий( 5.3, 5.5 ), с наборами различных модулей ( включая xdebug, apc )
  • mysql, postgresql сервера
  • Удобную структуру для быстрого развертывания проекта
  • Настроенную IDE под работу с этим делом

Читать полностью »

В данной статье хотелось бы рассказать об одной интересной проблеме, с которой мне пришлось столкнуться. Необходимо было автоматизировать процесс подстановки большого количества именных параметров в SQL запросы типа INSERT и UPDATE, то есть избавится от наводнивших проект конструкций типа:

$paramsArray[‘fname’] = $_POST[‘fname’];
$paramsArray[‘sname’] = $_POST[‘sname’];

Всех, кому интересно, как я решил такую задачу, приглашаю под кат.
Читать полностью »

Перевод моей статьи о том, как настроить сборку для PHP проектов на базе Symfony2 используя Jenkins. Недавно я столкнулся с задачей такой настройки именно для набора Symfony 2.1+Jenkins+PHPUnit+PHPCodeSniffer+PHPMessDetector+PDepend.

Надеюсь, эта небольшая статья сможет оказаться полезной!Читать полностью »

Получить видео с ВК при помощи PHP

У меня возникла проблема — как получить видео с всеми известной соц.сети vkontakte.ru. и установить его на сайте. Ключевой момент, я не хотел использовать IFRAME или же ещё какие-то сервисы ВК, я хотел чтобы видео выглядело так, как будто оно лежит у меня на сайте. Облазив пару десятков сайтов, максимально что я нашёл, это сайты для загрузки видео, такие как ВИДЕОСЕЙВЕР и тп. Это всё не подходило, поскольку мне нужен был код которой я мог интегрировать в свой PHP движок.
Нашлось пару самописных PHP скриптов – которые стоили от 30 до 500 у.е. Но половину из них были закодированы Zend Encoder – ом или же просто использовали свои сервера для поиска видео-файлов и не имели особой ценности для меня.
Так началось вдохновение. Я решил использовать мобильную версию поскольку она намного проще. Первым дело я составил алгоритм получение видео с ВК.

image

Вход В ВК

Первым куском кода был вход в ВК. Я порылся в интернете и нашел нечто подобное:

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js