반응형
PHP의 opcode를 얻는 방법?
<?php
$show_value = 123;
echo 'sing_quote'.$show_value;
echo "double_quote{$show_value}";
?>
opcode는 다음과 같습니다.
1: <?php
2: $show_value = 123;
0 ASSIGN !0, 123
3: echo 'sing_quote'.$show_value;
1 CONCAT 'sing_quote', !0 =>RES[~1]
2 ECHO ~1
4: echo "double_quote{$show_value}";
3 ADD_STRING 'double_quote' =>RES[~2]
4 ADD_VAR ~2, !0 =>RES[~2]
5 ECHO ~2
6 RETURN 1
아웃 확인 발칸 논리 디스어셈블러 PECL 확장 - 참조 저자의 홈 페이지에 대한 추가 정보를 원하시면.
Vulcan Logic Disassembler는 Zend Engine에 연결되어 스크립트의 모든 opcode (실행 단위)를 덤프합니다. 인코더의 시작으로 작성되었지만 그럴 시간이 없었습니다. Zend Engine에서 무슨 일이 일어나고 있는지 확인하는 데 사용할 수 있습니다.
설치가 완료되면 다음과 같이 사용할 수 있습니다.
php -d vld.active=1 -d vld.execute=0 -f yourscript.php
opcode 추출에 대한 이 흥미로운 블로그 게시물 과 사용 가능한 opcode를 나열하는 PHP 매뉴얼 페이지를 참조하십시오 .
Parsekit 에는 parsekit_compile_string ()이 있습니다.
sudo pecl install parsekit
var_dump (parsekit_compile_string (<<< PHP
\ $ show_value = 123;
echo 'sing_quote'. \ $ show_value;
echo "double_quote {\ $ show_value}";
PHP
));
출력은 매우 장황하므로 어셈블러와 유사한 형식을 얻으려면 처리해야합니다.
[ "opcodes"] =>
array (10) {
[0] =>
array (9) {
[ "주소"] =>
int (44682716)
[ "opcode"] =>
int (101)
[ "opcode_name"] =>
string (13) "ZEND_EXT_STMT"
[ "플래그"] =>
int (4294967295)
[ "결과"] =>
array (8) {
[ "유형"] =>
int (8)
[ "유형 _ 이름"] =>
string (9) "IS_UNUSED"
[ "var"] =>
int (0)
[ "opline_num"] =>
문자열 (1) "0"
[ "op_array"] =>
문자열 (1) "0"
[ "jmp_addr"] =>
문자열 (1) "0"
[ "jmp_offset"] =>
문자열 (8) "35419039"
[ "EA.type"] =>
int (0)
}
[ "op1"] =>
array (8) {
[ "유형"] =>
int (8)
[ "유형 _ 이름"] =>
string (9) "IS_UNUSED"
[ "var"] =>
int (0)
[ "opline_num"] =>
문자열 (1) "0"
[ "op_array"] =>
문자열 (1) "0"
[ "jmp_addr"] =>
문자열 (1) "0"
[ "jmp_offset"] =>
문자열 (8) "35419039"
[ "EA.type"] =>
int (0)
}
참고 URL : https://stackoverflow.com/questions/1795425/how-to-get-opcodes-of-php
반응형
'Development Tip' 카테고리의 다른 글
| varchar (max)를 사용하지 않는 이유는 무엇입니까? (0) | 2020.10.27 |
|---|---|
| JavaScript가 변수를 끌어 올리는 이유는 무엇입니까? (0) | 2020.10.27 |
| 객체 지향 프로그래밍의 대안? (0) | 2020.10.27 |
| 트리 구조 간의 차이 감지 (0) | 2020.10.27 |
| PostgreSQL 프로세스가 "트랜잭션 유휴"상태라는 것은 무엇을 의미합니까? (0) | 2020.10.27 |