PHP가 c 메소드를 호출하는 방법: 먼저 [test.c] 소스 파일을 작성한 다음 이를 저장하고 컴파일을 실행한 다음 마지막으로 [add.php]에서 직접 코드를 실행합니다. passthru 호출을 완료하려면 명령줄에서 명령을 실행하기만 하면 됩니다.
PHP에서 c 메소드를 호출하는 방법:
PHP에서 c/C++를 호출하는 방법에는 여러 가지가 있습니다. 가장 일반적으로 사용되는 방법은 tcp 또는 http를 통해 호출하는 방법과 작성된 cgi/fastcgi를 호출하는 것입니다. c/C++ 이를 달성하기 위해 PHP에는 외부 애플리케이션을 직접 실행하는 방법도 있습니다. 이 방법은 시스템 보안에 영향을 미치고 공격자가 쉽게 악용할 수 있으므로 사용 시 사용자 입력을 주의 깊게 처리해야 합니다.
PHP 외부 바이너리 명령을 실행하는 함수 exec, passthru 등이 있는데 passthru 함수는 명령을 실행하고 외부 명령의 출력을 반환할 수 있으므로 이번에는 passthru를 사용하여 c/c++를 호출하는 PHP를 사용하겠습니다. 함수는 복잡한 계산을 처리할 때 계산 효율성을 높이기 위한 것이므로 전체 시스템 성능을 향상시키기 위해 다음은 간단한 테스트 케이스입니다
먼저 test.c
소스 파일을 작성합니다. 처리는 매우 간단합니다. 코드는 다음과 같습니다. test.c
源文件,处理很简单就是对两个整数进行加法运算,代码如下:
#include<stdio.h> int main(int argc, char **argv) { //printf("参数个数:%d\n", argc-1); int a = atol(argv[1]); int b = atol(argv[2]); int sum = a + b; printf("%d\n", sum); return 0; }
保存后,执行编译: gcc test.c -o test
编译后会在当前目录下生成test可执行文件,通过 ./test 5 12
可以执行文件看到输出17
然后写表单和php代码,为了简单,当前目录就是web访问根目录,实际中要把C/C++项目放在web访问目录之外,在php中使用绝对路径调用
表单form.html代码:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php调用c/c++案例</title> </head> <body> <form method="post" action="add.php"> <div> 请输入两个整数: <input type="text" name="a" /> + <input type="text" name="b" /> <input type="submit" value="相加" /> </div> </form> </body> </html>
php处理程序add.php
代码:
<?php header("Content-Type:text/html; charset=utf-8"); if(isset($_POST['a']) && isset($_POST['b']) && !empty($_POST['a']) && !empty($_POST['b'])) { $command = './test '.$_POST['a'].' '.$_POST['b']; $result = passthru($command); print_r($result); } else { echo "输入不能为空!"; } ?>
可以看出,在add.php中就是通过passthru
rrreee
Save 그 후 컴파일을 수행합니다: gcc test.c -o test
컴파일 후 테스트 실행 파일이 현재 디렉터리에 생성됩니다. 이는 ./test 5 12
출력 17
을 통해 확인할 수 있으며, 단순화를 위해 현재 디렉터리는 웹 액세스 루트 디렉터리입니다. 프로젝트는 웹 액세스 디렉토리 외부에 배치되어야 하며
rrreeephp 핸들러 add.php
코드:
add.php에서는 명령줄에 있는 명령이 passthru
를 통해 직접 실행되는 것을 볼 수 있습니다. 호출을 완료하려면
테스트 결과:🎜🎜🎜🎜관련 학습 권장 사항: 🎜 PHP 그래픽 튜토리얼🎜🎜🎜🎜
위 내용은 PHP에서 C 메소드를 호출하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!