ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript > ПО для Web разработчика
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Компилируем PHP в Win приложения
  #1  
Старый 24.07.2009, 21:02
Аватар для b3
b3
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
Провел на форуме:
1698585

Репутация: 818


Отправить сообщение для b3 с помощью ICQ
Post Компилируем PHP в Win приложения

Компилируем PHP в Win приложения

Что нам понадобится скачать:
1. winbinder - Фреймворк для разработки ГУИ, легкий в использовании.
Скриншот программы
2. Bambalam PHP EXE Compiler/Embedder - Компилятор PHP скриптов. Качаем последнюю версию.
Мини фак по использованию:
Цитата:
Usage:
bamcompile [-options] infile.php [outfile.exe]
bamcompile [-options] project_directory mainfile.php [outfile.exe]
bamcompile projectfile.bcp

Options:
-w Hide console window for windowed applications
-c Compress output exe (using UPX)
-d Do not encode PHP files
-e:extension.dll Embed and use PHP extension
-i:icon.ico Add icon to exe
Далее будет подробно...
3. UPX - Компресор, чтоб наше приложение на выходе было не таким весомым. В bamcompile он уже есть, но я качал последнюю версию с SVN'a.
4. Иконка =) для нашего приложения, допустим эта - ЙА ИКОНКО
5. php_winbinder.dll - библиотека для создания окон, это нужно для того что в некоторых версиях bamcompile к примеру в последней версии на данный момент 1.21 некоректно работает с окнами и создает нерабочие приложения, данная либа решает эту проблемму.

Подготовка

1. Создаем на Диске C: файл cmd.bat с содержимым:
Цитата:
cmd.exe
2. Создаем там же папку bamcompile, в нее кидаем:
bamcompile.exe - компилятор
favicon.ico - иконку
php_winbinder.dll - библиотеку
upx.exe - упаковщик
И обязательно папку include из установленой программы WINBINDER по умолчанию путь к ней C:\WinBinder\phpcode\include в етой папке класс для работы с Формами.
Вот в принцыпе и все. Перейдем к небольшому примеру:

Пример
1. Запускаем наш cmd.bat в него закидываем bamcompile.exe[пробел]
Теперь нужно указать все параметры:
2. Ставим иконку:
Цитата:
-i:C:\bamcompile\favicon.ico[пробел]
Подсказка: в окно консоли можно закидывать файлы, и путь будет прописываться автоматом, ненужно писать все пути вручную.
3. Добавляем библиотеку
Цитата:
-e:C:\bamcompile\php_winbinder.dll[пробел]
4. Далее указываем что ето Оконное приожение а не консольное (-w) и то, что мы хотим его запаковать пакером UPX (-c)
Цитата:
-w -c[пробел]
5. Указываем путь к скрипту который компилим:
Цитата:
C:\bamcompile\calculate.php
Готово, если сделали все правильно, то в папке где был скрипт появится EXE файл, упакованый и с иконкой. На скрине удачно выполненый нерультат:

Для примера я взял готовый php скрипт, с коментариями. Скрипт скапипизжен с http://www.codenet.ru/webmast/php/PHP-Compiler-EXE/
PHP код:
<?php

// Подключаем основную библиотеку
include "include/winbinder.php";

// Даём метки окнам редактирования
define('IDC_EDITBOX1002'1002);
define('IDC_EDITBOX1003'1003);

// Рисуем окошко
$winmain wb_create_window(null,
        
AppWindow,
        
'MD5 Hash Generator by S1B [SBT]',
        
WBC_CENTERWBC_CENTER315134,
        
0x000000000);

// Шпигуем окошко кнопками

# Рисуем рамочку
wb_create_control($winmainFrame''10102908500x0000000000);
# Рисуем надписи (лейблы)
wb_create_control($winmainLabel'Текст:'2335451500x0000000000);
wb_create_control($winmainLabel'Hash:'2365451500x0000000000);
# Рисуем окошки редактирования (нижнее будет неактивным), и загоняем их данные в переменные
$text=wb_create_control($winmainEditBox''783021020IDC_EDITBOX10020x0000000000);
$hash=wb_create_control($winmainEditBox''786021020IDC_EDITBOX10030x0000004000);

// Две необходимые надписи =)
wb_set_handler($winmain"process_main");
wb_main_loop();

function 
process_main($window,$id) {
  
# Объявляем данные окошек редактирования глобальными
 
global $text,$hash;
 switch(
$id) {
  case 
IDC_EDITBOX1002:
    
wb_set_text($hash,md5(wb_get_text($text)));
  break;
  case 
IDCLOSE:
   
wb_destroy_window($window);
  break;
 }
}

?>
В результате имеем программу с приятным интерфейсом


Все файлы, можно скачать с моего архива - http://b3.grabberz.com/files/bamcompile.rar [3mb]
b3 (c) Спешинал для недовольного Pashkela

Последний раз редактировалось b3; 27.07.2009 в 21:46..
 
Ответить с цитированием

  #2  
Старый 19.09.2009, 20:15
Аватар для BiG_][aKeR
BiG_][aKeR
Познающий
Регистрация: 30.11.2008
Сообщений: 40
Провел на форуме:
1546086

Репутация: 4
По умолчанию

классно,вот только я так понял этот пхп скрипт написан специально для этого компилятора,а мне например нужно чтоб самый обычный пхп скрипт взял и скомпилировал в exe...
 
Ответить с цитированием

  #3  
Старый 19.09.2009, 20:31
Аватар для zifanchuck
zifanchuck
Постоянный
Регистрация: 27.10.2008
Сообщений: 491
Провел на форуме:
4002393

Репутация: 464
Отправить сообщение для zifanchuck с помощью ICQ
По умолчанию

Тоже интересует. обычный пхп скрипт можно перевести в екзешник и чтобы он нормально выполнялся? Тоисть и курл работать будет и все остальное?
и еще такой вопрос. скомпилил я допустим екзешку если ее с другого комапа запустить то он будет работать? или нужно чтобы ети библиотеки были на компе или че там?

Последний раз редактировалось zifanchuck; 19.09.2009 в 20:34..
 
Ответить с цитированием

  #4  
Старый 26.09.2009, 10:24
Аватар для Mixon
Mixon
Участник форума
Регистрация: 12.03.2008
Сообщений: 254
Провел на форуме:
12333903

Репутация: 238
Отправить сообщение для Mixon с помощью ICQ
По умолчанию

Сейчас вот сижу и дуплю это,подскажите кто знает,как тут сделать подобие этого <input type="file" name="Filedata">,тоисть выбор файла с кнопочкой "Обзор"...
 
Ответить с цитированием

  #5  
Старый 26.09.2009, 21:37
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

очень просто, примеры есть в winbinder , пункт 1 из первого поста. Когда скачаешь, загляни в папочку "\phpcode\examples" и у тебя глаза на лоб вылезут от открывшихся переспектив
 
Ответить с цитированием

  #6  
Старый 27.09.2009, 12:00
Аватар для geforse
geforse
Постоянный
Регистрация: 02.03.2008
Сообщений: 893
Провел на форуме:
5365841

Репутация: 712


Отправить сообщение для geforse с помощью ICQ
По умолчанию

А у меня отказывается работать
Делаю всё по инструкции, в логах написано что все ОК и *.exe создаётся, но когда его открываю, то ничего не происходит
 
Ответить с цитированием

  #7  
Старый 27.09.2009, 13:29
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

покажи код, который компилишь
 
Ответить с цитированием

  #8  
Старый 27.09.2009, 13:51
Аватар для geforse
geforse
Постоянный
Регистрация: 02.03.2008
Сообщений: 893
Провел на форуме:
5365841

Репутация: 712


Отправить сообщение для geforse с помощью ICQ
Unhappy

Код "калькулятора" из первого поста
Вот логи:

PHP код:
Bambalam PHP EXE Compiler/Embedder 1.21

Windowed application
Compress
Mainfile
calculate.php
Outfile
calculate.exe

Encoding 
and embedding calculate.php
Embedding php_winbinder
.dll and adding it to extension loader
Compressing 
final exe..
Compression done

calculate
.exe created successfully
Думал у меня с вистой что-то не так, запустил на ХП, тот же результат
 
Ответить с цитированием

  #9  
Старый 27.09.2009, 14:55
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

ну ты выбрал для первогот раза, молодец, чтобы скомпилировать калькулятор, у тебя должны быть:

В отдельной папке лежать файлы и папка:

- файл calculate.bcp
Код:
; Bamcompile example project file
mainfile calculate.php
outfile calculate.exe
compress
windowed
icon calculate\hal.ico
embed calculate
extension calculate\php_winbinder.dll
- файл compile.bat
Код:
bamcompile calculate.bcp
- файл bamcompile.exe

- папка calculate, в ней:

------файл php_winbinder.dll
------файл calc.rc
------файл calculate.php
------файл hal.ico (файл иконки для программы)
------папка include, в ней:
-----------файл winbinder.php
 
Ответить с цитированием

  #10  
Старый 27.09.2009, 15:04
Аватар для geforse
geforse
Постоянный
Регистрация: 02.03.2008
Сообщений: 893
Провел на форуме:
5365841

Репутация: 712


Отправить сообщение для geforse с помощью ICQ
По умолчанию

Все заработало, спасибо
Вы добавили слишком много репутации в последние 24 часа. Попробуйте попозже.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Books PSalm69 Избранное 248 27.10.2009 04:52
На PHP, как на "Новые ворота"... Mertvii-Listopad Чужие Статьи 7 18.09.2006 12:42
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ