`
lynneahui
  • 浏览: 32113 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

PHP 调用C函数

阅读更多

用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函数,这个留待以后继续研究。

分享到:
评论

相关推荐

    php与JS直接的互调

    C 可以调用文件外的php函数 不行 只能通过ajax调用php函数 而php函数实现xml格式的返回 D 在网页上的数据显示通过 document write PHP: A php可以调用同文件内的php函数 B php可以调用同文件内的JS函数 C ...

    PHP中调用C/C++制作的动态链接库的教程

    如果想要追求更快的速度,那毫无疑问可以通过自己写c代码,并编译为动态链接库(常为.so文件),然后php通过创建一个新的扩展(extension),并在扩展里调用该.so文件,同时对外暴露出php函数接口。 在实际使用中,只要...

    CI辅助函数 PHP自动获取用户地理位置信息的函数 支持淘宝, 新浪等多个IP数据库

    CI辅助函数 PHP自动获取用户地理位置信息的函数 支持淘宝, 新浪等多个IP数据库 PHP 获取用户地理位置 CI 辅助函数 get userip, ip location helper for CI, Support ci2, ci3, and ci4 PHP获取用户真实IP地址, ...

    浅析PHP中call user func()函数及如何使用call user func调用自定义函数

    后来才知道call_user_func是PHP的内置函数,该函数允许用户调用直接写的函数并传入一定的参数,下面总结下这个函数的使用方法。 call_user_func函数类似于一种特别的调用函数的方法,使用方法如下: &lt;?php ...

    ThinkPHP调用common/common.php函数提示错误function undefined的解决方法

    本文主要介绍了ThinkPHP调用common/common.php函数提示错误function undefined的解决方法。对于采用ThinkPHP进行项目开发的朋友来说,在进行ThinkPHP升级后经常会遇到这类问题。具体描述如下: 在对ThinkPHP升级后...

    php-ffi-go-example:通过FFI从PHP调用GO函数

    刚刚尝试通过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 ...

    cpp-PHP外部函数接口

    FFI PHP扩展提供了一种调用本地函数,访问本地变量和创建/访问用C语言定义的数据结构的简单方法

    php通过字符串调用函数示例

    调用类内部的方法比较奇怪,居然用的是array,不知道开发者是如何考虑的,当然省去了new,也是满有新意的: 复制代码 代码如下:class a { function b($c){ echo $c; }}call_user_func(array(“a”, “b”),”111″

    php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)

    php的内置函数exec,system都可以调用系统命令(shell命令),当然还有passthru,escapeshellcmd等函数。 在很多时候利用php的exec,system等函数调用系统命令可以帮助我们更好更快的完成工作。比如前二天笔者在批量处理....

    PHP封装curl的调用接口及常用函数详解

    * @desc 封装curl的调用接口,post的请求方式 */ function doCurlPostRequest($url, $requestString, $timeout = 5) { if($url == "" || $requestString == "" || $timeout &lt;= 0){ return false; } ...

    解析php中如何调用用户自定义函数

    先放上来别人的例子吧:call_user_func函数类似于一种特别的调用函数的方法,使用方法如下: 复制代码 代码如下:function a($b,$c) { echo $b; echo $c; } call_user_func(‘a’, “111”,”222″); call_...

    php fckeditor 调用的函数

    复制代码 代码如下:/* * showfck() 编辑器调用函数 * @name 名字 (必须) * @val value默认值 * @toolbarset fck工具栏名字 * @width 宽度 * @height 高度 */ function showfck($name, $val= ”, $toolbarset = ”,...

    cmswasy函数大全

    cmseasy 函数调用大集合 $db=mysql_connect("192.168.0.3", "nbhouseware","JDU934de744"); $sqlname="nbhouseware"; mysql_select_db($sqlname,$db); mysql_query("set names 'UTF8'");去除CMSEASY版权信息方法...

    Zend studio for eclipse中使php可以调用mysql相关函数的设置方法

    如果直接调用mysql_connect会出现:Fatal error: Call to undefined function mysql_connect() 的错误 解决办法, 找到zend studio php.ini所在的位置 我的zend studio安装在D:\Program Files\ 所以php.ini所在位置...

    php函数连续调用实例分析

    本文实例讲述了php函数连续调用的方法。分享给大家供大家参考。具体如下: &lt;?php //返回$this,实现连续调用 class xin { function name($namec) { echo 我的名字是:$namec ; return $this; } ...

    基于C语言编写forp PHP分析器

    dtrace 分析器是一个轻量级的 PHP 扩展提供脚本的调用堆栈,CPU 和...函数调用的文件和行号 输出为谷歌的跟踪事件格式 字幕功能 分组函数 函数别名(对匿名函数有用) forp 是非侵入性的,它提供了 PHP 注释来完成工作.

    php内嵌函数用法实例

    php中可以在函数内部内嵌一个函数,调用范围仅限于函数本身 &lt;?php function msg() { echo("&lt;center&gt;&lt;h2&gt;Displaying even numbers&lt;/h2&gt;&lt;/center&gt;&lt;p&gt;&lt;p&gt;"); function displayeven() { $ctr=0; echo(...

    building-custom-php-extensions (编写自定义的PHP扩展模块, PHP扩展开发, PHP模块开发)

    自定义自己的PHP模块,用C语言开发自己的PHP函数,当我们想在PHP使用C语言强大的函数库的时候,我们可以通过编写自己的PHP函数过调用想要使用的其它C语言函数,使你的PHP程序更强大高效,要下的赶块...

    经典php入门学习提纲

    php函数主要是掌握函数调用,函数的定义,函数的参数问题,以及在函数中变量的作用域等问题,php的函数使用也是非 常灵活的,比如不用显示说明函数的返回值类型, 所以在函数中可以根据不同情况返回不同类型的值,...

    在JavaScript中调用php程序

    ) { this.location = “ok.php?action=ok”; } else { this.location = “ok.php?action=cancel”; } } [removed] &lt;html&gt; &lt;head&gt; &lt;/head&gt; &lt;body&gt; &lt;a&gt;Please Click&lt;/a&gt; &lt;/bod

Global site tag (gtag.js) - Google Analytics