各位大神,小弟又来了我在php里面用了exec()函数,成功的执行了linux里的可执行文件。那么现在问题来了,我怎么用一个按钮的事件来调用这个exec()呢?
我尝试了用PHP写个函数,然后再onclick中调用,但是没能成功。也试了这种办法   还是不行。百度了很多,有人说用ajax,对吗?下面是我想要调用的php代码
<?php
function encode()
{
    $commond = 'cd /home/linux/Documents/my_nccloud/nccloud && cat Makefile';
    $arr = array();
    exec($commond, $arr);
//passthru('cd /home/linux/Documents/my_nccloud/nccloud&& ./HelloWorld.o');
//print_r($arr);
    foreach ($arr as $key => $value) {
        echo $value . "<br />";
    }
}
?>

解决方案 »

  1.   

    在bt_click 方法调用ajax请求php,php里面调用encode()方法不就行了。
      

  2.   

    php是服务器脚本 js是浏览器脚本
    你想要在浏览器上点击按钮,这是js
    要运行exec,这是php
    可以这样子 点击按钮用js的ajax发送一个请求到php,php再接收参数执行相关execphp.php
    //这里是php 现在直接运行exec
    exec('xxx/xxx/xxx');index.html
    //这里是html 用jQuery发送请求
    $(document).ready(function(){
      $("#b01").click(function(){
      htmlobj=$.ajax({url:"php.php"});
      });
    });<button id="b01" type="button">点击我</button>
    当点击按钮 jQuery通过ajax请求php.php 你需要的exec在php.php里边 这样就可以实现点击按钮运行exec了
    总的来说 想要运行php 你就要发送请求
    代码没写全,别忘了加载jQuery,相关信息可以去W3C查看jQuery的用法
    利用jQ,可以做一些个性化的,比如现在只是发送请求运行php,你还可以让php运行之后,返回值,可以用json.然后jQ获取到这些值,可以弹窗或者用图层显示,php的运行结果,等等...
      

  3.   

    看了那个百度的专业回答 再写几句
    我别的没学 就学php和html+css和js 然而我看不懂百度回答的那个php和js混合是想干嘛
    当到达浏览器之后,php已经不存在了 只剩下html+css和js
    再次强调,浏览器端和服务器端之间 要发送请求
    可以直接用浏览器打开地址 直接输出
    用ajax可以输出json
    如下
    <?php
    function encode()
    {
        $commond = 'cd /home/linux/Documents/my_nccloud/nccloud && cat Makefile';
        $arr = array();
        exec($commond, $arr);
    //passthru('cd /home/linux/Documents/my_nccloud/nccloud&& ./HelloWorld.o');
    //print_r($arr);
    //    foreach ($arr as $key => $value) {
    //        echo $value . "<br />";
    //    }
    //返回数组
    return $arr;
    }//调用
    $array = encode();//直接输出
    //foreach ($array as $key => $value) {
    //    echo $value . "<br />";
    //}//或者输出json
    //echo json_encode($array);
    ?>
    返回之后,怎么处理这个数据,由js来处理了
    同步请求,异步请求,json,如果不嫌知识太多,学一下,不难
    入门的语言不同,看问题的角度也不一样
      

  4.   

    再啰嗦几句,你写的php只有一个函数,然后函数外边没有别的东西了.然后你说你想调用这个php.也就是php里边的这个函数.
    可能你对php有些误会.这样不行的.
    前边我说了,要发送请求.
    但这个请求没法指定我就是要运行这个函数的.只能确定要运行这个php文件.
    运行了这个php文件,就是从头到尾一句一句来,但没有调用这个函数的语句,这个函数就完全起不到作用了.
    所以我给你写的在函数外边补充了一句,调用函数.
      

  5.   

    首先onclick是html document的方法
    只能执行js,不能直接执行php所以先用onclick执行一个js方法,然后用js ajax调用一个php,把php执行后返回的数据显示。
      

  6.   

    代码:
    test.html<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
     <head>
      <meta http-equiv="content-type" content="text/html;charset=utf-8">
      <title> API Test </title>
      <style type="text/css">
      body{font-size:14px;}
      .param{padding:10px; border:1px solid #CCCCCC;}
      </style>  <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
      <script type="text/javascript">
      function show(){
        $.get( "http://localhost/test.php", function( res ) {
            document.getElementById("show").innerHTML = res.data;
        });
      }
      </script> </head> <body>
        <div id="show"></div>
        <input type="button" onclick="show()" name="b1" value="show">
     </body>
    </html>
    test.php<?php
    function show(){
        return 'abcdefg';
    }$ret = array();
    $ret['data'] = show();
    header('content-type:application/json');
    echo json_encode($ret);
    ?>test.html中的http://localhost/test.php要改为你php的地址执行http://localhost/test.html
    然后点击show,就会获取到php test.php执行后的内容了。