Архив метки: php

Нарезаем изображение «кубиками» на PHP

Итак, задача: есть файл PNG, его нужно порезать на заданное количество «кубиков» — файлов (забегая вперед — например это нужно при создании своих карт при помощи API Яндекс-карт). В реализации этой задачи нам поможет библиотека GD, а точнее её функции

  • imagecreatefrompng — создать изображение из файла
  • getimagesize — дать информацию по размерам изображения из файла
  • imagecreatetruecolor — создать изображение с заданными размерами
  • imagecopy — скопировать часть изображения
  • imagepng — сохранить изображение в файл
function cuttingimg($fn,$sz){
    $img=imagecreatefrompng("$fn);  // получаем идентификатор загруженного изрбражения которое будем резать
    $info=getimagesize("$fn);                          // получаем в массив информацию об изображении
    $w=$info[0];$h=$info[0];    // ширина и высота исходного изображения
    $sx=round($w/$sz,0);        // длинна куска изображения
    $sy=round($w/$sz,0);        // высота куска изображения
    $px=0;$py=0;                // координаты шага "реза"
    for ($y = 1; $y <= $sz; $y++) {        
        for ($x = 1; $x <= $sz; $x++) {            
             $imgcropped=imagecreatetruecolor($sx,$sy);
             imagecopy($imgcropped,$img,0,0,$px,$py,$sx,$sy);
             imagepng($imgcropped,"$y."-".$x."-".$fn);
             $px=$px+$sx;
            };
            $px=0;$py=$py+$sy;            
        };
};

Выложена первая публичная версия «Учет ТМЦ»

Собственно этот продукт предназначен в основном для системных администраторов и иже с ними. Однако можно вести учет и столов/стульев/чего угодно. Преимущество: WEB интерфейс. Не нужно ставить клиентские программы у конечных пользователей. Пользователи всегда могут посмотреть что находится у них в кабинете, а вы в свою очередь можете свершать операции над ТМЦ с любого ПК (планшета/сотового) который находится в сети организации…

Подробное описание здесь

Сохранение XML файла на стороне клиента, PHP

//Создает XML-строку и XML-документ при помощи DOM 
$dom = new DomDocument('1.0'); 

$orguse = $dom->appendChild($dom->createElement('orguse'));
$orgtehnika = $orguse->appendChild($dom->createElement('orgtehnika'));


$dom->formatOutput = true; // установка атрибута formatOutput

$content = $dom->saveXML(); // передача строки 
if(!$content) exit("Нечего сохранять");

header('Content-Type: text/plain');
header('Content-Disposition: attachment; filename=export.xml');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.strlen($content));
echo $content;

Простая обработка XML файлов на PHP

Самый простой способ работать с XML в PHP — использовать функцию simplexml_load_file. Функция возвращает значение false в случае ошибки чтения и массив DOM в случае успеха. Не применимо к большим файлам, ибо весь файл в данном случае грузится в память.

Пример файла XML:

<?xml version="1.0" encoding="windows-1251" ?> 
<tables>
<table name="org">
<reqtable name="users">
<fromkey>id</fromkey> 
<tokey>orgid</tokey> 
</reqtable>
<reqtable name="places">
<fromkey>id</fromkey> 
<tokey>orgid</tokey> 
</reqtable>
<reqtable name="equipment">
<fromkey>id</fromkey> 
<tokey>orgid</tokey> 
</reqtable>
</table>
</tables>

Пример файла на PHP — обработчик:

if (file_exists('delete.xml')) {
    $xml = simplexml_load_file('delete.xml');
    var_dump($xml); // вывод структуры "для наглядности"
    echo "<hr>";
        foreach($xml->table as $data)
        {
         echo "Обработка таблицы: $data[name]<br/>";
         foreach($data->reqtable as $rectable)
         {
          echo "- зависимость $rectable[name] (в $rectable[name].$rectable->tokey нет значений $data[name].$rectable->fromkey)<br/>";   
         };
        };
} else {
    exit('Ошибка открытия схемы delete.xml');
}

Формирование штрихкода EAN13 на PHP

Собственно вот. Сначала хотел формировать его при помощи Google API, однако в конце концов остановился на том, что не гоже требовать постоянного подключения к интернету для отрисовки штрихкода. Посему нагуглил класс для PHP для вывода картинки со штрихкодом. Скачать можно и здесь. Дополнительно понадобятся шрифты ean13.ttf