![]() |
Компилируем PHP в Win приложения
Компилируем PHP в Win приложения Что нам понадобится скачать: 1. winbinder - Фреймворк для разработки ГУИ, легкий в использовании. Скриншот программы 2. Bambalam PHP EXE Compiler/Embedder - Компилятор PHP скриптов. Качаем последнюю версию. Мини фак по использованию: Цитата:
3. UPX - Компресор, чтоб наше приложение на выходе было не таким весомым. В bamcompile он уже есть, но я качал последнюю версию с SVN'a. 4. Иконка =) для нашего приложения, допустим эта - ЙА ИКОНКО 5. php_winbinder.dll - библиотека для создания окон, это нужно для того что в некоторых версиях bamcompile к примеру в последней версии на данный момент 1.21 некоректно работает с окнами и создает нерабочие приложения, данная либа решает эту проблемму. Подготовка 1. Создаем на Диске C: файл cmd.bat с содержимым: Цитата:
bamcompile.exe - компилятор favicon.ico - иконку php_winbinder.dll - библиотеку upx.exe - упаковщик И обязательно папку include из установленой программы WINBINDER по умолчанию путь к ней C:\WinBinder\phpcode\include в етой папке класс для работы с Формами. Вот в принцыпе и все. Перейдем к небольшому примеру: Пример 1. Запускаем наш cmd.bat в него закидываем bamcompile.exe[пробел]Теперь нужно указать все параметры: 2. Ставим иконку: Цитата:
3. Добавляем библиотеку Цитата:
Цитата:
Цитата:
Для примера я взял готовый php скрипт, с коментариями. Скрипт скапипизжен с http://www.codenet.ru/webmast/php/PHP-Compiler-EXE/ PHP код:
Все файлы, можно скачать с моего архива - http://b3.grabberz.com/files/bamcompile.rar [3mb] b3 (c) Спешинал для недовольного Pashkela :D |
классно,вот только я так понял этот пхп скрипт написан специально для этого компилятора,а мне например нужно чтоб самый обычный пхп скрипт взял и скомпилировал в exe...
|
Тоже интересует. обычный пхп скрипт можно перевести в екзешник и чтобы он нормально выполнялся? Тоисть и курл работать будет и все остальное?
и еще такой вопрос. скомпилил я допустим екзешку если ее с другого комапа запустить то он будет работать? или нужно чтобы ети библиотеки были на компе или че там? |
Сейчас вот сижу и дуплю это,подскажите кто знает,как тут сделать подобие этого <input type="file" name="Filedata">,тоисть выбор файла с кнопочкой "Обзор"...
|
очень просто, примеры есть в winbinder , пункт 1 из первого поста. Когда скачаешь, загляни в папочку "\phpcode\examples" и у тебя глаза на лоб вылезут от открывшихся переспектив:)
|
А у меня отказывается работать :(
Делаю всё по инструкции, в логах написано что все ОК и *.exe создаётся, но когда его открываю, то ничего не происходит :( |
покажи код, который компилишь
|
Код "калькулятора" из первого поста
Вот логи: PHP код:
|
ну ты выбрал для первогот раза, молодец, чтобы скомпилировать калькулятор, у тебя должны быть:
В отдельной папке лежать файлы и папка: - файл calculate.bcp Код:
; Bamcompile example project fileКод:
bamcompile calculate.bcp- папка calculate, в ней: ------файл php_winbinder.dll ------файл calc.rc ------файл calculate.php ------файл hal.ico (файл иконки для программы) ------папка include, в ней: -----------файл winbinder.php |
Все заработало, спасибо :)
Вы добавили слишком много репутации в последние 24 часа. Попробуйте попозже. |
CURL+bamcompile
1. Качаем нужные библы тут 2. Для компиляции вашего php-скрита с curl положите рядом со скриптом все файлы, что вы скачали - php_curl.dll, libeay32.dll, ssleay32.dll 3. Сам bamcompile.exe должен тоже лежать рядом (т.е. вообще все файлы в одной отдельной папке) 4. Создайте и запустите такой create.cmd: Код:
cmd /k bamcompile -e:php_curl.dll -c ваш_скрипт.php ваш_скрипт.exePS: Ограничения - если вы убираете получившийся .exe в другую папку, всегда придется с собой таскать php_curl.dll, libeay32.dll, ssleay32.dll - без них программа работать не будет. Т.е. они всегда должны лежать рядом с .exe Tested on Bamcompile 1.21 + Win XP |
Как тут сделать в окне <textarea> с полосой прокрутки?
|
Цитата:
|
m0Hze
Это тебе не php :) Тут от PHP остались только функции, а оформление по-другому строится. |
Извращение, зачем тогда гребаный delphi, всеми любимый си++, java и другие языки?
|
Цитата:
|
Блин,когда начинает исполняться скрипт то окно с скриптом полностью зависает аж до его полного исполнения,что делать????
sleep(x); Не помогает!(((( |
Для начала научиться юзать неблокируемые сокеты, если речь идет о парсинге чего либо с www
PS: Всё там работает, и работает довольно прилично, просто нет многопоточности. У меня даже есть SIPT5 практически рабочий на winbinder :) Но скрипт на том же перле круче в разы, если не в десятки раз Но чтобы юзать winbinder для серьезных задач - простыми знаниями на php не обойдешься, нужны годы практики и абсолютное понимание каждой функции |
я юзаю тут curl,и пока полное исполнение именно php скрипта не пройдёт то он зависает!!! Пример:
function starter(){ sleep(10); } По нажатию кнопки старт в интерфейсе запуститься эта функция,и эти 10 секунд что он спит окно скрипта "Не отвечает"! Причём тут сокеты или что либо если даже sleep зависает...:( |
curl не пойдет для таких целей - кури неблокируемые сокеты, или задавай конкретные вопросы, что именно не получается с сокетами, тогда будет конкретный ответ (куски кода обязательны, а также подробное описание той задачи, которую надо выполнить, а не общие твои домыслы)
PS: sleep - не выход, выполнение sleep есс-но влияет на работу всего приложения, т.е. если юзать sleep - то, пока пауза, ничего нажать не получиться. Тем более 10 секунд. Вот функция с неблокируемыми сокетами которая подойдет для парсинга любой URL (кроме https): PHP код:
PHP код:
|
Pashkela,плиз,можеш тогда мне сейчас сделать на неблокируемых сокетах аналог моей функции на php?
PHP код:
Просто я с соксами не работал,всегда курлом обходился,как с ними работать хз,ну более чем такая функция мне и ненужно ничего.Спс |
исправил предыдущий пост, изучай (там только куки вставить и пост-данные)
Цитата:
PS: Curl - для лохов. Всегда зри в корень протокола. Познаешь сокеты - захаваешь весь интернет. Шутка, но с очень большой долей правды |
Пример на твоих соксах....
PHP код:
$a = sql("http://www.model.poltava.ua"); вставить sleep(20); он зависнет,или любую долгую операцию... |
так и должно быть, ни в одном языке программирования при плохом конекте с сайтом скорости не жди. Многопоточный если даже будет скрипт - запустит 50 запросов и также будет висеть. А вот ТАЙМАУТ выставленный в функции позволит нажать кнопочку ровно через столько секунд, сколько таймаут.
PS: Еще раз - sleep - не выход. В любом языке программирования. |
Цитата:
Или уж на крайний случай юзайте Perl, там тоже есть консольное окошко,тоже перед однокласниками можно понтонуться крутым софтом :( |
тогда вставь место
$a = sql("http://www.model.poltava.ua"); цыкл долгий,например: for ($i=$i; $i>-1; $bezk++){ echo $i; } в консоли будет видно что сам скрипт исполняеться нормально и без тормозов,выводит числа,а вот окно с интерфейсом всёравно зависает до исполнения пхп скрипта...Просто бамкомпиль я так понял росчитан на лёгкие скрипты,а если скрипт росчитан на постоянную роботу,тоисть всё время обрабатывать данные,то пока он их обрабатывает то и интерфейс зависший...выхода нету я так понял? Цитата:
|
Если ты не осознал/впитал то, что было писано выше - то да, выхода нет. Или просто недостаточно опыта. CURL тут не поможет. GUI на PHP требует высшей квалификации.
|
Цитата:
|
не мучая людей и форум тупыми вопросами,если не ошибаюсь то ета тема именно об этой софтине...
а насчёт того что времени и нервов много потратил то ето реально так...не зря d_x мне говорил,не страдай фигней в виде етих бамкомпиль,нет же,не послушал... Спс всем кароч,погнал просто на php переписывать:) |
Хорошая статья.
А формы рисовать для бамкомпилера нужно вручную ? Нет каких либо тулз, как IDE для С++, delphi и прочих ? Цитата:
А зачем кстати нужны эти неблокирующие сокеты? Какие премущества? Я всегда юзал тупо fsockopen, fwrite, while(!feof, fgets - работало. С неблокирующими лучше? |
у меня такой ламерский вопрос.. нахрена оно вообще надо? :)
|
Цитата:
Вот, как раз интересующая меня тема. Я быдлокодю на php (в основном, парсилки, спамилки и прочее). Думаю, не нужно говорить о недостатках его для таких целей ;) ;) Много раз подумывал о изучении компилируемых языков, но не хватает времени и мотивации. Расскажи как пересесть с php на с++ или delphi (что лучше из этого для моих целей вышеописанных?) с минимальными "потерями"? Какую среду разработки выбрать? И насчет многопоточности, как она вообще выглядит? После 2 лет кодинга на php мне сложно мысленно представить как это выглядет - это автоматически делается в компиляторах или вручную? |
Цитата:
|
Цитата:
Незнаю как в других ЯП с этим. |
Цитата:
|
Цитата:
ну многопоточность, даа.. В основном, я слышал, что сокеты в php как-то медленно работают и что из-за резолва хостов скорость работы заметно ниже, чем в компилируемых языках. Ну и что вообще php скрипты медленнее работают чем проги. Ну и самое главное - php скрипты обычно приходится запускать из браузера, а это несет в себе обрывы и закрытие соединений и прочие прелести. |
попугай, с асихронными сокетами геморроя меньше.
|
| Время: 16:58 |