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ì?
Trả lời
Có một vài phương pháp không gian người dùng (từ plugin) có thể xử lý Opcodes.
- http://uk.php.net/apc_bin_load (và http://uk.php.net/apc_bin_dump)
- http://uk.php.net/bcompiler_read/http://uk.php.net/bcompiler_write_file
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).
đ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
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 –
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)
có bất kỳ tiện ích mở rộng nào để xuất mã opcode không? – kodmanyagha
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
opcode là gì? – abcde123483
cố gắng google nó :) – Raffael