用php调用C函数,常通过调用系统命令函数的方式来实现,其中主要有system()和exec()两种,还有一种是passthru(),这种方法没有尝试,暂不作讨论。
system()方法输出并返回最后一行的shell结果。
exec()不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。
相同点是都可以获取命令执行的状态码。
PHP调用C函数方法为:
如果C函数为一个简单的hello world,文件名称为hello.c。
#include <stdio.h>
main()
{
printf("hello world!");
}
首先gcc编译成 gcc hello.c -o hello
然后再php函数中写一个函数:
<?php
$r = exec("./hello");
echo $r;
?>
如果是exec,如果在浏览器中执行结果的话,会出现1个hello world(echo $r产生),如果用system来调用的话,则会出现两个hello world!(./hello和echo $r产生)。
网上说还可以通过php扩展的方式来实现php调用c函数,这个留待以后继续研究。
分享到:
相关推荐
C 可以调用文件外的php函数 不行 只能通过ajax调用php函数 而php函数实现xml格式的返回 D 在网页上的数据显示通过 document write PHP: A php可以调用同文件内的php函数 B php可以调用同文件内的JS函数 C ...
如果想要追求更快的速度,那毫无疑问可以通过自己写c代码,并编译为动态链接库(常为.so文件),然后php通过创建一个新的扩展(extension),并在扩展里调用该.so文件,同时对外暴露出php函数接口。 在实际使用中,只要...
CI辅助函数 PHP自动获取用户地理位置信息的函数 支持淘宝, 新浪等多个IP数据库 PHP 获取用户地理位置 CI 辅助函数 get userip, ip location helper for CI, Support ci2, ci3, and ci4 PHP获取用户真实IP地址, ...
后来才知道call_user_func是PHP的内置函数,该函数允许用户调用直接写的函数并传入一定的参数,下面总结下这个函数的使用方法。 call_user_func函数类似于一种特别的调用函数的方法,使用方法如下: <?php ...
本文主要介绍了ThinkPHP调用common/common.php函数提示错误function undefined的解决方法。对于采用ThinkPHP进行项目开发的朋友来说,在进行ThinkPHP升级后经常会遇到这类问题。具体描述如下: 在对ThinkPHP升级后...
刚刚尝试通过FFI从PHP调用GO函数。 怎么跑? 确保在php.ini具有PHP 7.4和ffi.enable=true 。 克隆此存储库。 git clone https://github.com/eislambey/php-ffi-go-example.git 编译libutil.so go build -o ...
FFI PHP扩展提供了一种调用本地函数,访问本地变量和创建/访问用C语言定义的数据结构的简单方法
调用类内部的方法比较奇怪,居然用的是array,不知道开发者是如何考虑的,当然省去了new,也是满有新意的: 复制代码 代码如下:class a { function b($c){ echo $c; }}call_user_func(array(“a”, “b”),”111″
php的内置函数exec,system都可以调用系统命令(shell命令),当然还有passthru,escapeshellcmd等函数。 在很多时候利用php的exec,system等函数调用系统命令可以帮助我们更好更快的完成工作。比如前二天笔者在批量处理....
* @desc 封装curl的调用接口,post的请求方式 */ function doCurlPostRequest($url, $requestString, $timeout = 5) { if($url == "" || $requestString == "" || $timeout <= 0){ return false; } ...
先放上来别人的例子吧:call_user_func函数类似于一种特别的调用函数的方法,使用方法如下: 复制代码 代码如下:function a($b,$c) { echo $b; echo $c; } call_user_func(‘a’, “111”,”222″); call_...
复制代码 代码如下:/* * showfck() 编辑器调用函数 * @name 名字 (必须) * @val value默认值 * @toolbarset fck工具栏名字 * @width 宽度 * @height 高度 */ function showfck($name, $val= ”, $toolbarset = ”,...
cmseasy 函数调用大集合 $db=mysql_connect("192.168.0.3", "nbhouseware","JDU934de744"); $sqlname="nbhouseware"; mysql_select_db($sqlname,$db); mysql_query("set names 'UTF8'");去除CMSEASY版权信息方法...
如果直接调用mysql_connect会出现:Fatal error: Call to undefined function mysql_connect() 的错误 解决办法, 找到zend studio php.ini所在的位置 我的zend studio安装在D:\Program Files\ 所以php.ini所在位置...
本文实例讲述了php函数连续调用的方法。分享给大家供大家参考。具体如下: <?php //返回$this,实现连续调用 class xin { function name($namec) { echo 我的名字是:$namec ; return $this; } ...
dtrace 分析器是一个轻量级的 PHP 扩展提供脚本的调用堆栈,CPU 和...函数调用的文件和行号 输出为谷歌的跟踪事件格式 字幕功能 分组函数 函数别名(对匿名函数有用) forp 是非侵入性的,它提供了 PHP 注释来完成工作.
php中可以在函数内部内嵌一个函数,调用范围仅限于函数本身 <?php function msg() { echo("<center><h2>Displaying even numbers</h2></center><p><p>"); function displayeven() { $ctr=0; echo(...
自定义自己的PHP模块,用C语言开发自己的PHP函数,当我们想在PHP使用C语言强大的函数库的时候,我们可以通过编写自己的PHP函数过调用想要使用的其它C语言函数,使你的PHP程序更强大高效,要下的赶块...
php函数主要是掌握函数调用,函数的定义,函数的参数问题,以及在函数中变量的作用域等问题,php的函数使用也是非 常灵活的,比如不用显示说明函数的返回值类型, 所以在函数中可以根据不同情况返回不同类型的值,...
) { this.location = “ok.php?action=ok”; } else { this.location = “ok.php?action=cancel”; } } [removed] <html> <head> </head> <body> <a>Please Click</a> </bod