❶ php中点击一个按钮,执行一个内置函数
<!--?
ignore_user_abort();
//即使Client断开(如关掉浏览器),PHP脚本也可以继续执行.
set_time_limit(0);
//
执行时间为无限制,php默认的执行时间是30秒,通过set_time_limit(0)可以让程序无限制的执行下去
$interval=60*5;
//
每隔5分钟运行
do{
$fp
= fopen("test.txt","a");
fwrite($fp,"rn".date('Y-m-d
H:i:s',time())."rn");
fclose($fp);
sleep($interval);
//
按设置的时间等待5分钟循环执行
}while(true);
echo
'ok';
?-->
❷ php调用函数的方法
你那个set()函数本身有问题
test.php
<?php
require_once "test2.php";
set();
?>
test2.php
<?php
function set(){
echo "wdqwdqwdqw"
}
?>
弄个简单的函数自己测试一下不就行了
❸ 如何执行字符串的PHP代码
如果字符串本身就是php代码的话是可以用php本身的一个函数去执行这段代码的。
这里用到的函数是eval()函数。
这个函数内的参数必须是完整的php代码,包括结尾的分号都不能少。
system函数
说明:执行外部程序并显示输出资料。
语法:string
system(string
command,
int
[return_var]);
返回值:
字符串
详细介绍:
本函数就像是
C
语中的函数
system(),用来执行指令,并输出结果。若是
return_var
参数存在,则执行
command
之后的状态会填入
return_var
中。同样值得注意的是若需要处理用户输入的资料,而又要防止用户耍花招破解系统,则可以使用
EscapeShellCmd()。若
PHP
以模块式的执行,本函数会在每一行输出后自动更新
Web
服务器的输出缓冲暂存区。若需要完整的返回字符串,且不想经过不必要的其它中间的输出界面,可以使用
PassThru()。
实例代码:
复制代码
代码如下:
<
?php
$last_line
=
system('ls',
$retval);
echo
'Last
line
of
the
output:
'
.
$last_line;
echo
'<hr
/>Return
value:
'
.
$retval;
?>
exec函数
说明:执行外部程序。
语法:string
exec(string
command,
string
[array],
int
[return_var]);
返回值:
字符串
详细介绍:
本函数执行输入
command
的外部程序或外部指令。它的返回字符串只是外部程序执行后返回的最后一行;若需要完整的返回字符串,可以使用
PassThru()
这个函数。
要是参数
array
存在,command
会将
array
加到参数中执行,若不欲
array
被处理,可以在执行
exec()
之前呼叫
unset()。若是
return_var
跟
array
二个参数都存在,则执行
command
之后的状态会填入
return_var
中。
值得注意的是若需要处理使用者输入的资料,而又要防止使用者耍花招破解系统,则可以使用
EscapeShellCmd()。
实例代码:
复制代码
代码如下:
<
?php
echo
exec('whoami');
?>
popen函数
说明:打开文件。
语法:int
popen(string
command,
string
mode);
返回值:
整数
详细介绍:
本函数执行指令开档,而该文件是用管道方式处理的文件。用本函数打开的文件只能是单向的
(只能读或只能写),而且一定要用
pclose()
关闭。在文件操作上可使用
fgets()、fgetss()
与
fputs()。若是开档发生错误,返回
false
值。
实例代码:
复制代码
代码如下:
<
?
$fp
=
popen("/bin/ls","r"
);
?>
PHP监控linux服务器负载
在实际项目的应用中,我们由于各种条件的现实,利用PHP来实现服务器负载监控将是一种更为灵活的方式。
由于Web
Server以及PHP的实现方式所限,我们在现实环境中很难利用PHP去调用一些Linux中需要root权限才能执行的程序,对此,我从网上找到另外一种方式来绕开这个限制。首先先写个c程序中转调用系统命令,然后用PHP去执行此c程序。
c程序
首先写个c文件,比如/usr/local/ismole/w.c
复制代码
代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<systypes.h>
#include<unistd.h>
int
main()
{
uid_t
uid
,euid;
//note
获得当前的uid
uid
=
getuid();
//note
获得当前euid
euid
=
geteuid();
//note
交换这两个id
if(setreuid(euid,
uid))
perror("setreuid");
//note
执行将要执行linux系统命令
system("/usr/bin/w");
return0;
}
编译该文件gcc
-o
w
-Wall
w.c,这时会在当前目录下生成程序w。改变此程序的属主chmod
u+s
./w。
PHP执行
文件内容如下,放在web目录下,访问就会输出当前的服务器负载情况。
复制代码
代码如下:
<?php
/*
More
&
Original
PHP
Framwork
Copyright
(c)
2007
-
2008
IsMole
Inc.
$Id:
serverMonitor.php
408
2008-12-02
08:07:40Z
kimi
$
*/
//note
key的验证过程
if($key
!=
$authkey)
{
//
exit('key
error);
}
$last_line
=
exec('/usr/local/ismole/w',
$retval);
$returnArray
=
explode("load
average:
",
$retval[0]);
$returnString
=
$returnArray[1];
echo
$returnString;
按照上面的实例,我们可以用PHP来做任何我们想执行的Linux系统命令,SVN更新,服务器监控,备份,恢复,日常维护等等。
❺ php 在某函数调用后执行另一个函数
select出数据之后,在foreach循环里,调用你自己的函数,添加额外的字段regionname即可。
public function select($val) {
$ans = parent::select($val);
foreach ($ans as $key => $value) {
if (isset($value['region'])) {
$ans[$key]['regionname'] = yourfunction($value['region']);
}
}
return $ans;
}
// 你自己的函数,处理region
public function yourfunction($region) {
// 你自己的处理逻辑
}
❻ 如何用php计算代码执行的时间函数
php中缺省的最长执行时间是 30 秒,这是由 php.ini 中的 max_execution_time 变量指定,倘若你有一个需要颇多时间才能完成的工作,例如要发送很多电子邮件给大量收件者,或者要进行繁重的数据分析工作,服务器会在 30 秒后强行中止正在执行的程序。
设置的办法是:
一、直接修改php.ini 中 max_execution_time 的数值。
二、在没权限修改php.ini文件时,在 PHP 程序中加入 ini_set('max_execution_time', '0'),数值 0 表示没有执行时间的限制。
❼ PHP常用函数有哪些
常用函数比较多
如:字符串处理函数,数组函数,日期函数,MySQL函数,文件系统函数,GD函数库等
❽ php 如何执行字符串中的函数
mixed call_user_func
( callable $callback
[, mixed $parameter
[, mixed $...
]] )
把第一个参数作为回调函数(callback),并且将其余的参数作为回调函数的参数。
error_reporting(E_ALL);
functionincrement(&$var)
{
$var++;
}
$a=0;
call_user_func('increment',$a);
echo$a." ";
call_user_func_array('increment',array(&$a));//.3
echo$a." ";
后面可以跟多个参数!
❾ 怎么用php命令执行php代码
PHP执行命令的四种方法
方法一:使用exec函数执行系统外部命令
原型:function exec(string $command,array[optional] $output,int[optional]
$return_value)
<?
exec("dir",$outPut);
print_r($outPut);
?>
说明:列出和PHP执行文件同级目录下的所有目录及文件信息。
知识点:exec执行系统外部命令时不会输出结果,而是返回结果的最后一行,如果你想得到结果你可以使用第二个参数,让其输出到指定的数组,此数组一个记录代表输出的一行,即如果输出结果有20行,则这个数组就有20条记录,所以如果你需要反复输出调用不同系统外部命令的结果,你最好在输出每一条系统外部命令结果时清空这个数组,以防混乱。第三个参数用来取得命令执行的状态码,通常执行成功都是返回0。
方法二:使用system函数执行系统外部命令
原型:function system(string $command,int[optional] $return_value)
1
2
3
<?
system("dir");
?>
知识点:system和exec的区别在于system在执行系统外部命令时,直接将结果输出到游览器,如果执行命令成功则返回true,否则返回false。第二个参数与exec第三个参数含义一样。
方法三:使用函数passthru执行系统外部命令
原型:function passthru(string $command,int[optional] $return_value)
知识点:passthru与system的区别,passthru直接将结果输出到游览器,不返回任何值,且其可以输出二进制,比如图像数据。
方法四:反撇号`(和~在同一个键)执行系统外部命令
1
2
3
<?
echo `dir`;
?>
知识点:在使用这种方法执行系统外部命令时,你要确保shell_exec函数可用,否则是无法使用这种反撇号执行系统外部命令的。