各位大神,小弟又来了我在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 />";
}
}
?>
我尝试了用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 />";
}
}
?>
你想要在浏览器上点击按钮,这是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的运行结果,等等...
我别的没学 就学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,如果不嫌知识太多,学一下,不难
入门的语言不同,看问题的角度也不一样
可能你对php有些误会.这样不行的.
前边我说了,要发送请求.
但这个请求没法指定我就是要运行这个函数的.只能确定要运行这个php文件.
运行了这个php文件,就是从头到尾一句一句来,但没有调用这个函数的语句,这个函数就完全起不到作用了.
所以我给你写的在函数外边补充了一句,调用函数.
只能执行js,不能直接执行php所以先用onclick执行一个js方法,然后用js ajax调用一个php,把php执行后返回的数据显示。
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执行后的内容了。