很多站长朋友们都不太清楚cpp如何调用php,今天小编就来给大家整理cpp如何调用php,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php代码里面怎么调用php代码 2、 PHP如何调用C++程序(利用管道) 3、 如何在PHP中调用自己编写的DLL库中的函数接口 4、 可以实现C++与PHP交互吗 5、 一个cpp文件如何调用另一个cpp文件已经定义的类? 6、 php-cpp 开发的扩展如何发布 php代码里面怎么调用php代码如果是代码的话,不用调用直接写入就可以! 如果是引用PHP文件的话,有几种方法如下:
include('index.php');
include_once,('index.php');
require('index.php');
require_once('index.php');
都可以用来引入文件,而且不只可以引php的,其它类型文件也可以,具体差别你可以研究一下
PHP如何调用C++程序(利用管道)如果想在一个php里都执行了,直接用php函数exec调用命令运行c++编译完的可执行程序(以下简称为ccccc)好了。。。
如果想用管道,php 2.php | ccccc | php 1.php,管道右边的输出会作为左边的标准输入,这样的话ccccc和2.php都需要能够处理标准输入
如何在PHP中调用自己编写的DLL库中的函数接口在 DLL工程中的 cpp中函数定义如下:
extern "C" _declspec (dllexport )
int fun(int a, char b)
{
return a + b;
}
第一种方法 隐式调用:
调用的 DLL的主工程的 文件中代码如下:
// 先把 lib 链接进来
#pragma comment (lib , "/Debug//FuncDll.lib" )
// 外部声明的 add 函数
extern "C" _declspec (dllimport )
int fun(int a, char b);
int TestDll()
{
// 直接调用 fun函数
printf("%d/n" , fun(5, 2));
return 0;
}
第二种方法 显式调用:
调用的 DLL的主工程的 文件中代码如下:
int TestDLL()
{
HMODULE hModule = NULL;
typedef int (*Func)(int a, int b);
// 动态加载 DLL 文件
hModule = LoadLibrary(_TEXT("/Debug//FuncDll.dll" ));
// 获取 fun函数地址
Func fAdd = (Func)GetProcAddress(hModule, "fun" );
// 使用函数指针
printf("%d/n" , fAdd(3, 1));
// 释放指针
FreeLibrary(hModule);
return 0;
}
可以实现C++与PHP交互吗在C++程序中,在不依赖任何WEB SERVER调用PHP,并取得执行结果完成交互
首先,在我们的PHP安装好后,在目录下有一个php-cgi.exe,我们只要执行这个CGI程序,并将数据通过命名管道传递给它,然后把执行结果通过命名管道读取出来即可,过程并不复杂!请看如下代码:
命名管道的创建:
SECURITY_ATTRIBUTES sa = {sizeof(SECURITY_ATTRIBUTES)};
sa.bInheritHandle = 1;
sa.lpSecurityDescriptor = NULL;
HANDLE hStdoutR, hStdoutW, hStdinR, hStdinW;
CreatePipe(hStdoutR, hStdoutW, sa, 0);
SetHandleInformation(hStdoutR,HANDLE_FLAG_INHERIT, 0);
CreatePipe(hStdinR, hStdinW, sa, 0);
SetHandleInformation(hStdinW, HANDLE_FLAG_INHERIT, 0);
启动php-cgi进程: STARTUPINFO si = {sizeof(STARTUPINFO)};
PROCESS_INFORMATION pi;
si.dwFlags = STARTF_USESTDHANDLES;
si.hStdOutput = hStdoutW;
si.hStdInput = hStdinR;
char env[255] = "REQUEST_METHOD=POST\0CONTENT_LENGTH=18\0CONTENT_TYPE=
application/x-www-form-urlencoded\0SCRIPT_FILENAME=D:\\test.php";
if(!CreateProcess(NULL, "d:\\php5\\php-cgi.exe D:\\test.php",
NULL, NULL, 1, NORMAL_PRIORITY_CLASS, env, NULL, si, pi))
return 0;
CloseHandle(hStdoutW);
CloseHandle(hStdinR);
传递数据:if(!WriteFile(hStdinW, "var=Hello VCKBASE!", 18, dwWritten, NULL))
return 0;
CloseHandle(hStdinW);
读取返回数据:char buf[1000] = {0};
DWORD dwRead = 0;
while(ReadFile(hStdoutR, buf, sizeof(buf), dwRead, NULL) dwRead != 0){
printf(buf);
}
CloseHandle(hStdoutR);
D盘的test.php
<?
echo $_REQUEST["var"];
?>
执行结果:
X-Powered-By: PHP/5.3.1
Content-type: text/html
Hello VCKBASE!
事实上,在我们使用C++的时候,在调用其他CGI程序,例如PERL,其操作技巧也是也大同小异,如果你打算做一个自己的WEB服务器,调用CGI程序是少不了的。
一个cpp文件如何调用另一个cpp文件已经定义的类?例:文件test1.cpp有类class A;文件test2.cpp有类class B.
如在test2.cpp中想用A:
#include "test1.cpp"
1. a = new A,即可用a去访问A中提供的接口
2. A *a = new A;同样达到目的
当然一般的做法是将类的声明放在.h文件里,定义放在.cpp文件,然后可以直接在B类中保存一个A类的指针,那样即可实现使用A类了。
C++,这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,它是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。
它是“C Plus Plus”的简称。是继C语言之后又一种计算机编程语言,C++编程语言同时支持所有的C语言语法。C++和C相似:但C是面向过程的程序设计语言,而C++是面向对象的程序设计语言,不过C++语言保持了对C语言的兼容,也就说是在C++程序可以不用修改的插入C语言代码。
cpp是用C++语言编写的源代码文件的后缀名。它对类的强大支持可以使它编写出更优质的程序。
php-cpp 开发的扩展如何发布详情如下:
PHP-CPP是一个用于开发PHP扩展的C++库。PHP-CPP提供了一系列完善的文档、易于使用和扩展的类,让你可以相对快速的创建PHP的原生扩展。
用C++编写的算法看起来几乎与用PHP编写的算法相同。如果你知道如何用PHP编程,你可以很容易地学习如何在C++中做同样的事情。实际上,PHP和大多数PHP函数名的语法都直接来自C和C++语法。
关于cpp如何调用php的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于cpp如何调用php cpp调用c的详细内容...