
正文
怎么和php实现数据交互 php与数据库交互
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
可以实现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程序是少不了的。
相关问答
Q1: 想用PHP做Socket服务器,不知道如何实现同时和多个不同客户端数据交互?
因为只有调用了accept客户端才能连上怎么和php实现数据交互,你如果accept下面接一个循环,那么第二个用户不是说能不能进这个循环,而是连不进……此时只有第一个用户break出了循环,然后程序回头再调用accept,第二个用户才能连上。
用多进程来处理如何怎么和php实现数据交互?因为accept一个客户端以后,应该是马上准备accept下一个客户端才对,而不是处理完现在这个客户端才accept下一个客户端。
socket_accept以后,直接调用
pcntl_fork(),此时进程会分裂为两个,其中一个的pnctl_fork返回值是0,另一个不是0。不是0的那个直接继续调用socket_accept即可,是0的那个处理客户端请求。
pnctl_fork不知道在windows下能不能用。
不过返回不是0的那个进程并不是这样就完事了,还要调用pcntl_wait防止子进程卡在那边没有完全结束。你可以在主进程里时不时就调用这个,配上WNOHANG作为option参数防止没有子进程需要wait的时候卡在那边。
这都是linux下常用的处理手段。说实话本来怎么和php实现数据交互我想让你用多线程的,不过看了一圈不知道php里怎么用线程,倒是找到了用进程的方式,所以就
Q2: 如何用实现php与前端的交互
PHP是什么文件? PHP,一个嵌套的缩写名称,是英文“超级文本预处理语言”(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的“嵌入HTML文档的脚本语言”,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;与同样是嵌入HTML文档的脚本语言JavaScript相比,PHP在服务器端执行,成分利用了服务器的性能;PHP执行引擎还会将用户经常访问的PHP程序驻留在内存中,其他用户在一次访问这个程序时就不需要诚信编译程序了,只要直接执行内存中的代码就可以了,这也是PHP高效率的体现之一。PHP具有非常强大的功能,所有的CGI或者JavaScript的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。如何打开PHP文件? 一般来说,用文本编辑工具都可打开PHP文件如notepad、emeditor、phpedit、Dreamwere,推荐使用Dreamwer编辑PHP文件上,如果您打开的PHP文件全是乱码,那么这个PHP文件就是经过zend加密过的php文件,无法再编辑和修改,但可以正常的运行,如果您要运行PHP文件那么您就得安装相应的php解释器和web服务支持才行。想知道如何运行PHP文件请要看PHP教程
明白了吗?建议楼主去后盾人那自学,听说他们那正在搞什么实训班培训的活动,你可以去看看
Q3: angularJS怎么实现与服务端的PHP进行数据交互
这个是比较纠结,尤其在spring下
get方法提交的参数要这样写:params要带上
$http.get(url, {params: 要传的参数obj }).success(function(data){
...
});
post最好写成表单提交的形式
$http.({
method: 'POST',
url: url,
data: 要传的参数,
headers:{
'Content-Type': 'application/x-www-form-urlencoded'
}
}).success(function(data){
...
})
可以试一试
Q4: 两个php文件怎样交互数据?比如a.php和b.php,a向b发数据处理,b返回给a值。要求不能使
可以include 或者 require 让两个页面合成一个页面,要使用数据直接调用就行了。包含后 假如a.php有个变量$data需要用b.php test函数里面$name="张三"的值(需要return $name;),就可以;$data=test(); echo $data 就能看到值
Q5: php程序与java程序之间做数据交互,怎么做
用php的curl模拟浏览器请求是访问java服务器程序
2.用java的一个http类库同样发送http请求来访问PHP服务器
$context=stream_context_create(array('http'=array('method'="GET",'timeout'=30,)));
$string=file_get_contents('',false,$context);//换成java地址
echo '这可不是百度,只是我输出了百度的返回';
echo $string;
怎么和php实现数据交互的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php与数据库交互、怎么和php实现数据交互的信息别忘了在本站进行查找喔。








