2011-11-30 27 views
10

Làm cách nào để viết PHP opcode, lưu nó vào một tệp và làm cho Công cụ Zend thực thi nó? Bất kỳ phương pháp hoặc hack được chào đón, miễn là nó làm các trick.Viết mã opcode PHP và thực thi nó. Làm thế nào để làm gì?

+3

opcode là gì? – abcde123483

+2

cố gắng google nó :) – Raffael

+0

tại "không có câu trả lời có chủ ý nào không giải quyết chính xác câu hỏi". Câu trả lời khốn khổ hay giận dữ không giải quyết được câu hỏi có thể chấp nhận được? – halfer

Trả lời

4

Có một vài phương pháp không gian người dùng (từ plugin) có thể xử lý Opcodes.

Cả sản xuất văn bản đơn giản tuy nhiên vì opcodes không được thiết kế để trở thành một ngôn ngữ sử dụng có thể ghi (không giống như Parrot).

+0

điều đó có nghĩa là tôi có thể ghi đè lên một tệp được lưu trong bộ nhớ cache bằng apc_bin_load, tôi đoán ... vậy câu hỏi tiếp theo sẽ là cách các câu lệnh opcode trông đẹp mắt liên quan đến biểu diễn nhị phân thực sự được sử dụng. bạn có biết gì về điều đó không? tài liệu tham khảo hay như vậy? – Raffael

+0

http://stackoverflow.com/questions/1795425/how-to-get-opcodes-of-php có một số thông tin, chủ yếu đề cập đến "Vulcan Logic Dumper" - http://pecl.php.net/package/vld –

0

Có một tiện ích mở rộng được gọi là ulopcodes cho phép bạn phát ra các mã opcode của riêng bạn thông qua chức năng mà nó hiển thị với mã PHP.

Ví dụ:

ulopcodes_emit(ZEND_ECHO, "Hello world!"); 

sẽ tạo dòng trong oparray hiện tại mà sẽ được thực hiện bởi các máy ảo.

Phần mở rộng này hoàn toàn là giáo dục và không có ý định sử dụng trong mã sản xuất.

(Disclaimer: Tôi là tác giả của ulopcodes)

+0

có bất kỳ tiện ích mở rộng nào để xuất mã opcode không? – kodmanyagha

+0

Có, bạn có thể sử dụng [vld] (https://github.com/derickr/vld) ví dụ để xuất ra các opcodes được tạo ra. – pmmaga

Các vấn đề liên quan