แปลงสคริปต์ PHP เป็นหน้าต่างแบบสแตนด์อโลน


128

ฉันต้องการทำให้งานง่ายขึ้นโดยอัตโนมัติ สำหรับเรื่องนี้ฉันได้เขียนสคริปต์ PHP ขนาดเล็กที่ฉันเรียกใช้จากบรรทัดคำสั่งโดยใช้ PHP-CLI ตอนนี้ฉันต้องการมอบสคริปต์นี้ให้ใครบางคน แต่ฉันไม่ต้องการ:

  • แจกซอร์สโค้ด
  • ขอให้เขาติดตั้ง PHP บนระบบ

มีวิธีการสร้างสคริปต์ PHP รุ่น. exe หรือไม่ ฉันไม่ค่อยกังวลเกี่ยวกับการรวบรวม ฉันกังวลมากขึ้นเกี่ยวกับการขอให้ผู้คนติดตั้งและกำหนดค่า PHP


2
คุณเคยได้ยินเกี่ยวกับ bamcompile ไหม?
SagarPPanchal

1
ใช้ Bambalam มาหลายปีแล้ว มันถูกถ่วงเวลาไปตลอดกาลในตอนนี้ - และอีกหลายจุดเข้ากันได้กับ PHP4.4.4 เท่านั้น อย่างไรก็ตามตราบใดที่คุณไม่ต้องการการสนับสนุน UTF8 และสิ่งที่คล้ายกันและสามารถจัดการกับ foreach () ที่เสียหายและอื่น ๆ ได้ก็ควรใช้งานได้สำหรับคุณ โปรดทราบว่าเป็นไปไม่ได้ที่จะจัดการกับพูดชื่อไฟล์ UTF8 ในไดเรกทอรีด้วย PHP4.4.4 โปรดจำไว้ว่ามันสร้างไฟล์ใน% TEMP% ที่ไม่เคยถูกลบออก (php [0-F] {2} .tmp) คุณจะต้องล้างข้อมูลเหล่านี้
Egon_Freeman

ไบนารีของ PHP สามารถทำงานได้แบบพกพา คุณสามารถบอกให้คนอื่นแตกไฟล์ทั้งโฟลเดอร์และสร้างไฟล์แบตช์ที่ดำเนินการบางอย่างเช่น "php.exe -c php.ini script.php"
FluorescentGreen5

คำตอบ:


195

พายลูกพีช

http://www.peachpie.io

https://github.com/iolevel/peachpie

Peachpie เป็นคอมไพเลอร์ PHP 7 ตาม Roslyn โดย Microsoft และวาดจาก Phalanger ยอดนิยม อนุญาตให้เรียกใช้งาน PHP ภายใน. NET / .NETCore โดยการรวบรวมรหัส PHP เป็น MSIL บริสุทธิ์

Phalanger

http://v4.php-compiler.net/

http://wiki.php-compiler.net/Phalanger_Wiki

https://github.com/devsense/phalanger

Phalanger เป็นโครงการที่เริ่มต้นที่ Charles University ในปรากและได้รับการสนับสนุนโดย Microsoft มันรวบรวมซอร์สโค้ดที่เขียนในภาษาสคริปต์ PHP เป็น CIL (ภาษากลางสามัญ) ไบต์รหัส มันจัดการจุดเริ่มต้นของกระบวนการรวบรวมซึ่งเสร็จสมบูรณ์โดยองค์ประกอบของคอมไพเลอร์ JIT ของ. NET Framework มันไม่ได้อยู่ที่การสร้างรหัสพื้นเมืองและการเพิ่มประสิทธิภาพ โดยมีวัตถุประสงค์คือเพื่อรวบรวมสคริปต์ PHP เป็น. NET ประกอบหน่วยตรรกะที่มีรหัส CIL และเมตาดาต้า

Bambalam

https://github.com/xZero707/Bamcompile/

Bambalam PHP EXE Compiler / Embedder เป็นเครื่องมือบรรทัดคำสั่งฟรีในการแปลงแอปพลิเคชั่น PHP เป็นแอพพลิเคชั่น Windows .exe แบบสแตนด์อโลน ไฟล์ exe ที่ผลิตนั้นเป็นแบบสแตนด์อโลนโดยสมบูรณ์ไม่จำเป็นต้องใช้ php dll เป็นต้นโค้ด php นั้นถูกเข้ารหัสโดยใช้ไลบรารี Turck MMCache Encode ดังนั้นจึงเป็นโซลูชั่นที่สมบูรณ์แบบหากคุณต้องการแจกจ่ายแอปพลิเคชันของคุณในขณะที่ปกป้องซอร์สโค้ดของคุณ ตัวแปลงนี้ยังเหมาะสำหรับการผลิตไฟล์. exe สำหรับแอพพลิเคชั่น PHP แบบหน้าต่าง (สร้างโดยใช้ตัวอย่างเช่น WinBinder library) นอกจากนี้ยังเป็นสิ่งที่ดีสำหรับการสร้างเซิร์ฟเวอร์ / ซ็อกเก็ต PHP แบบสแตนด์อโลน (ใช้ส่วนขยาย php_sockets.dll) มันไม่ได้เป็นคอมไพเลอร์ในแง่ที่ว่ามันไม่ได้สร้างรหัสเครื่องดั้งเดิมจากแหล่ง PHP แต่ทำงานได้!

ZZEE PHPExe

http://www.zzee.com/phpexe/

ZZEE PHPExe รวบรวม PHP, HTML, Javascript, Flash และไฟล์เว็บอื่น ๆ ลงใน Windows GUI exes คุณสามารถพัฒนาแอปพลิเคชัน Windows GUI ได้อย่างรวดเร็วโดยใช้กระบวนทัศน์เว็บ PHP ที่คุ้นเคย คุณสามารถใช้รหัสเดียวกันสำหรับแอปพลิเคชันออนไลน์และ Windows ที่มีการดัดแปลงเพียงเล็กน้อยหรือไม่มีเลย มันเป็นผลิตภัณฑ์เชิงพาณิชย์

PHC ชนะ

http://wiki.swiftlytilting.com/Phc-win

คอมไพเลอร์ส่วนต่อขยายของ PHP ใช้เพื่อรวบรวมรหัสสคริปต์ PHP เป็น PHP bytecode bytecode นี้สามารถรวมเช่นเดียวกับไฟล์ php ใด ๆ ตราบเท่าที่ส่วนขยาย bcompiler ถูกโหลด เมื่อสร้างไฟล์ bytecode ทั้งหมดแล้ว Embeder ที่แก้ไขจะถูกใช้เพื่อแพ็คไฟล์โครงการทั้งหมดลงในโปรแกรม exe

ต้องมี

  • php5ts.dll
  • php_win32std.dll
  • php_bcompiler.dll
  • PHP-embed.ini

ExeOutput

http://www.exeoutput.com/

เชิงพาณิชย์

WinBinder

http://winbinder.org/

WinBinder เป็นส่วนขยายโอเพนซอร์ซสำหรับ PHP ซึ่งเป็นภาษาการเขียนโปรแกรมสคริปต์ ช่วยให้โปรแกรมเมอร์ PHP สร้างแอปพลิเคชัน Windows ดั้งเดิมได้อย่างง่ายดายสร้างผลลัพธ์ที่รวดเร็วและคุ้มค่าด้วยความพยายามขั้นต่ำ แม้แต่สคริปต์สั้น ๆ ที่มีสองสามบรรทัดก็สามารถสร้างโปรแกรมที่มีประโยชน์ได้ด้วยพลังและความยืดหยุ่นของ PHP

PHPDesktop

https://github.com/cztomczak/phpdesktop

PHP Desktop เป็นโครงการโอเพ่นซอร์สที่ก่อตั้งโดย Czarek Tomczak ในปี 2012 เพื่อเป็นแนวทางในการพัฒนาแอพพลิเคชั่นบนเดสก์ท็อปดั้งเดิมโดยใช้เทคโนโลยีเว็บเช่น PHP, HTML5, JavaScript และ SQLite โครงการนี้เป็นมากกว่าคอมไพเลอร์ PHP ถึง EXE มันฝังเว็บเบราว์เซอร์ (ฝัง Internet Explorer หรือ Chrome), เว็บเซิร์ฟเวอร์ Mongoose และล่าม PHP ขั้นตอนการพัฒนาที่คุณคุ้นเคยยังคงเดิมขั้นตอนการเปลี่ยนเว็บไซต์ที่มีอยู่ให้กลายเป็นแอปพลิเคชันเดสก์ท็อปนั้นเป็นเรื่องของการคัดลอกไปยังไดเรกทอรี "www /" การใช้ฐานข้อมูล SQLite เป็นทางเลือกคุณสามารถฝังฐานข้อมูล mysql / postgresql ในตัวติดตั้งของแอปพลิเคชัน

PHP Nightrain

https://github.com/kjellberg/nightrain

การใช้ PHP Nightrain คุณจะสามารถปรับใช้และเรียกใช้ HTML, CSS, JavaScript และ PHP เว็บแอปพลิเคชันเป็นแอพพลิเคชั่นเดสก์ท็อปดั้งเดิมบน Windows, Mac และระบบปฏิบัติการ Linux PHP Frameworks ยอดนิยม (เช่น CakePHP, Laravel, Drupal และอื่น ๆ ... ) ได้รับการสนับสนุนเป็นอย่างดี!

phc-win "ส้อม"

https://github.com/RDashINC/phc-win

phc-win เวอร์ชั่นที่แยกออกมามากหรือน้อยนั้นใช้เทคนิคเดียวกับ phc-win แต่รองรับ PHP รุ่นใหม่เกือบทั้งหมด (5.3, 5.4, 5.5, 5.6, ฯลฯ ) นอกจากนี้ยังสามารถใช้ Enigma VB เพื่อรวม php5ts.dll กับ exe ของคุณเช่นเดียวกับ UPX บีบอัด สุดท้ายมันก็มี win32std และ winbinder รวบรวมไว้ใน PHP แบบคงที่

แก้ไข

ตัวเลือกอื่นคือการใช้

http://www.appcelerator.com/products/titanium-cross-platform-application-development/

คอมไพเลอร์ออนไลน์ที่สามารถสร้างไฟล์สั่งการสำหรับแพลตฟอร์มที่แตกต่างกันได้จากหลายภาษารวมถึง PHP

TideSDK

http://www.tidesdk.org/

TideSDK เป็นโครงการ Titanium Desktop ที่ถูกเปลี่ยนชื่อ Titanium ยังคงมุ่งเน้นไปที่อุปกรณ์พกพาและละทิ้งรุ่นเดสก์ท็อปซึ่งถูกยึดครองโดยบางคนที่เปิดมาแล้วจึงขนานนาม TideSDK

โดยทั่วไป TideSDK ใช้ HTML, CSS และ JS เพื่อแสดงผลแอปพลิเคชัน แต่รองรับภาษาสคริปต์เช่น PHP เป็นโมดูลปลั๊กอินเช่นเดียวกับภาษาสคริปต์อื่น ๆ เช่น Python และ Ruby


ฉันสามารถยืนยันได้ว่าphc-win ใช้งานได้สำหรับการสร้างไฟล์ exe console ด้วยโค้ด PHP 5.3 เพียงแค่มีสคริปต์ PHP ในโฟลเดอร์เดียวกับ php-win exe ก็คือ
Dejv

ฉันใช้คอมไพเลอร์ bambalam มันเจ๋งและง่ายและสนับสนุน win-builder ด้วย แต่ไม่รองรับ php5 :(
m3nda

PHP-Nightrain เป็นทางเลือกที่ดีมากสำหรับ PHPDesktop และข้ามแพลตฟอร์ม (Windows, OSX, Linux) ในขณะที่มันมีชื่อเสียงไม่ดีเนื่องจากการพึ่งพา Java แต่ตอนนี้ได้เปลี่ยนไปใช้ Python เป็น wrapper และเป็นตัวเลือกที่ดีมากสำหรับการพัฒนาซอฟต์แวร์ข้ามแพลตฟอร์มโดยใช้ PHP - github.com/naetech/nightrain
Taapo

1
เพิ่งหายไปทุกวันอาทิตย์กับปัญหา Bambalam / beaviour ในการติดตั้งนี้จะดำเนินการเหมือน 50 ครั้งต่อวัน มันสร้างไฟล์ชั่วคราวที่มีขนาดชื่อคงที่เขาไม่เคยลบ (4 ตัวอักษร) ... ส่งผลให้ไม่มีชื่อไฟล์ฟรีอีกต่อไป โปรแกรม Sysinternals ช่วยให้ทราบว่าเกิดอะไรขึ้น ไม่ใช่เรื่องง่ายและทำให้รู้สึกแย่ใน Bambalam
João

1
ผู้ชายที่ดีงาน! ฉันจะลองพวกเขาบ้าง ข้อไหนดีที่สุดสำหรับการใช้ฐานข้อมูล mysql กับเว็บไซต์ php
garatu

12

ฉันมีปัญหากับเครื่องมือส่วนใหญ่ในคำตอบอื่น ๆ เนื่องจากมันล้าสมัยมาก

หากคุณจำเป็นต้องแก้ปัญหาที่จะ "เป็นเพียงแค่การทำงานของ" แพ็ครุ่นเปลือยกระดูกของ PHP กับโครงการของคุณในที่เก็บ WinRar SFX php your_script.phpตั้งมันจะดึงทุกอย่างเพื่อไดเรกทอรีชั่วคราวและดำเนินการ

ในการเรียกใช้สคริปต์พื้นฐานไฟล์ที่จำเป็นเท่านั้นคือphp.exeและphp5.dll(หรือphp5ts.dllขึ้นอยู่กับรุ่น)

หากต้องการเพิ่มส่วนขยายแพ็คพร้อมกับไฟล์ php.ini:

[PHP]
extension_dir = "."
extension=php_curl.dll
extension=php_xxxx.dll
...

สวัสดีทางออกของคุณน่าสนใจมาก คล้ายกับเว็บเซิร์ฟเวอร์ quickphp คุณมีตัวอย่างง่ายๆหรือไม่? ฉันหวังว่าคุณจะสามารถให้แหล่งที่มา ความคิดที่ดีโดยวิธีการ
Edang Jeorlie

มันน่าสนใจจริงๆ! แต่สิ่งที่สำคัญคือ OP ไม่ต้องการ "แจกซอร์สโค้ด" และแม้แต่มือใหม่ก็สามารถแยกสคริปต์จาก SFX ได้
Jay Dadhania

8

ฉันพยายามมากที่สุดของการแก้ปัญหาที่กำหนดในคำตอบที่ 1 เพียงคนเดียวที่ทำงานสำหรับฉันและเป็นที่ไม่ใช่เชิงพาณิชย์คือPHP-สก์ท็อป

ฉันแค่ใส่ไฟล์ php ในwww/โฟลเดอร์เปลี่ยนชื่อ.exeและก็สามารถเรียกใช้ php ของฉันเป็น exe ได้ !!

นอกจากนี้ยังมีเอกสารที่สมบูรณ์การสนับสนุนที่ทันสมัยความเข้ากันได้ของ windows และ linux และตัวเลือกต่างๆสามารถเปลี่ยนแปลงได้อย่างง่ายดาย


2
PHP Desktop รองรับ Linux, ดูรุ่นแรก: github.com/cztomczak/phpdesktop/releases/tag/linux-v72.0
Czarek Tomczak

6

RapidEXEเหมาะสำหรับงานนี้:

มันแปลงโครงการ php เป็น exe แบบสแตนด์อโลน ฉันมีคอมไพเลอร์อื่น ๆ เพียงพอลองพวกมันทีละตัวและพวกเขาก็ทำให้ฉันผิดหวังไม่ทางใดก็ทางหนึ่ง เป็นแขกของฉันการตอบรับยินดีต้อนรับเสมอ!

หมายเหตุด้านข้าง: กลไกด้านหลังค่อนข้างคล้ายกับวิธี WinRAR SFX แยกเอ็นจินแยกซอร์สแล้วรัน มันเร็วและง่ายกว่าที่จะทำงานกับ การคอมไพล์คำสั่งเดียวการบีบอัดการคลายสมาร์ทการล้างข้อมูลอัตโนมัติการกำหนดค่าอย่างง่ายการควบคุมแบบเต็มของ php engine & รุ่น; สามารถยืดได้ด้วยความพยายามน้อยที่สุด

การพัฒนามีความสุข!


ฉันลองใช้เครื่องมือของคุณ แต่ฉันพบข้อผิดพลาดดังต่อไปนี้Cannot find myself (D:\Desktop\phpflexer\phpflexer.exe)
Ghola

มันมีแนวโน้ม แต่คุณสามารถเพิ่มบางห้องสมุดลงในนี้ได้หรือไม่? ตัวอย่างเช่นฉันต้องการ GD2 เพื่อให้สคริปต์ของฉันสามารถทำงานกับภาพ
ทอม

@Tom: แน่นอนมีเวอร์ชั่นใหม่และถ้าคุณรู้สึกอยากทดสอบมันฉันสามารถมอบลิงค์ดาวน์โหลดให้คุณได้ (ไม่มีมัลแวร์ฉันสัญญา) ตอนนี้จริง ๆ แล้วมันดีกว่าเดิมมากและเป็น php 7.2 บวกกับฉันคิดว่ามันจะสามารถจัดการภาษาอื่นได้ gmail ของฉันคือ kellnerdenes
dkellner

1
เพิ่งลองใช้วิธีนี้ดูเป็นระเบียบเรียบร้อยสำหรับสคริปต์บรรทัดคำสั่งที่คอมไพล์แล้ว! ฉันใช้ ExeOutput4PHP สำหรับโครงการ GUI ส่วนใหญ่มาระยะหนึ่งแล้ว แต่สำหรับคอนโซลแอป RapidEXE ก็ดูดีเช่นกันถ้าไม่ดีกว่า
Jay Dadhania

1
@ JayDadhania เพลงที่หูของฉัน! เวอร์ชั่น 3 เร็ว ๆ นี้ติดตามความคืบหน้า!
dkellner

2

ExeOutput สามารถเปลี่ยนเว็บไซต์ PHP ให้เป็นแอพพลิเคชั่นและซอฟต์แวร์ Windows

เปลี่ยนเว็บไซต์ PHP เป็นแอพพลิเคชั่นและซอฟต์แวร์ Windows

แอปพลิเคชันที่สร้างด้วย ExeOutput สำหรับ PHP เรียกใช้สคริปต์ PHP, แอปพลิเคชัน PHP และเว็บไซต์ PHP โดยกำเนิดและไม่จำเป็นต้องมีเว็บเซิร์ฟเวอร์เว็บเบราว์เซอร์หรือการกระจาย PHP พวกเขาเป็นแบบสแตนด์อโลนและทำงานบนคอมพิวเตอร์ทุกเครื่องที่มี Windows รุ่นล่าสุด

ExeOutput สำหรับ PHP เป็นคอมไพเลอร์เว็บไซต์ที่มีประสิทธิภาพที่ทำงานร่วมกับองค์ประกอบทั้งหมดที่พบในเว็บไซต์สมัยใหม่: สคริปต์ PHP, JavaScript, HTML, CSS, XML, ไฟล์ PDF, Flash, วิดีโอ Flash, วิดีโอ Silverlight, ฐานข้อมูลและรูปภาพ การรวมองค์ประกอบเหล่านี้เข้ากับ PHP Runtime และ PHP Extensions, ExeOutput สำหรับ PHP จะสร้างไฟล์ EXE ที่มีแอปพลิเคชันที่สมบูรณ์ของคุณ

http://www.exeoutput.com/


1

ประสบการณ์ของฉันในเรื่องนี้บอกฉันว่าซอฟต์แวร์ส่วนใหญ่ทำงานได้ดีกับโครงการขนาดเล็ก
แต่โครงการขนาดใหญ่ล่ะ เช่น Zend Framework 2 และบางสิ่งเช่นนั้น
บางคนต้องการเบราว์เซอร์เพื่อเรียกใช้และเป็นการยากที่จะบอกลูกค้าว่า "โปรดพิมพ์http://localhost/" ในแถบที่อยู่ของเบราว์เซอร์

ฉันสร้างโครงการง่ายๆเพื่อทำสิ่งนี้: PHPPy

วิธีนี้ไม่สมบูรณ์สำหรับการสร้างไฟล์เรียกทำงานแบบสแตนด์อโลนสำหรับการเรียกใช้โครงการ php แต่ช่วยให้คุณทำเช่นนี้ได้
ฉันไม่สามารถรวบรวมไฟล์ไพ ธ อนด้วย PyInstaller หรือ Py2exe ไปยังไฟล์. exe ได้หวังว่าคุณจะทำได้
คุณไม่จำเป็นต้องใช้ไฟล์ปฏิบัติการแบบยูนิกซ์เซิร์ฟเวอร์


4
สร้าง shorcut ให้กับ localhost มันทำงานหนักใช่มั้ย :) อย่างไรก็ตามคุณมีเหตุผลในการ "ทำงานได้ดีในโครงการขนาดเล็ก" เต็มรูปแบบที่ไม่ซ้ำกัน "ตามที่คุณต้องการ" เป็น phpdesktop
m3nda

1

PHP Nightrain ปัจจุบัน (4.0.0) เขียนขึ้นใน Python และใช้ไลบรารี wxPython จนถึงตอนนี้ wxPython ทำงานได้ดีในการรับ PHP Nightrain ในวันนี้ แต่เพื่อที่จะผลักดัน PHP Nightrain ไปสู่ระดับต่อไปเราขอแนะนำ PHP Nightrain ของพี่น้อง PHPWebkit!

มันเป็นการอัพเดท PHP Nightrain

https://github.com/entrypass/nightrain-ep

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.