,php中shell_exec不能运行?

用户投稿 94 0

关于“shell_exec_php”的问题,小编就整理了【3】个相关介绍“shell_exec_php”的解答:

php中shell_exec不能运行?

其实,你这里真是的需求,只是希望在Web这边获取一种方式,来执行一个长达数小时的“异步”任务。

就PHP而言,可以用2种方式来做:

(1)在PHP里使用shell_exec的函数,以shell的方式,启动一个独立的PHP脚本执行。

这种方式,其实相当于在Web服务器处理过程中,独立起了一个shell进程处理你的任务。

这里,需要特别注意的是shell_exec的服务器安全,注意校验参数,小心避免被带入shell命令中。

这个是比较容易实现的方式。

(2)使用PHP实现一个Server,监听一个端口,为Web端提供服务。这里的实现方式有很多,通常要配合扩展,例如原生的pthread(多线程),开源扩展swoole等等。

直接在web程序里使用多线程,是不恰当的,web请求通常有时间限制,例如timeout默认是30秒。你如何保证,在线程任务执行完之前,它的父进程仍然在工作?

通过html导出pdf如何分页?

首先需要安装wkhtmltopdf这个软件需要执行shell_exec函数的php文件和安装的wkhtmltopdf.exe可执行文件在同一目录下,不然php找不到这个执行文件

shell_exec("wkhtmltopdf.exe--page-sizeA4--outline网页地址pdf文件名");

--page-size以A4纸的尺寸显示pdf内容

--outline显示目录(网页中h1,h2来定)

网页地址需要转成pdf的网页地址

pdf文件名生成pdf的文件名,可以使用绝对路径

php安全模式影响哪些函数?

开启safe_mode之后对php系统函数的影响:

safe_mode即为PHP的安全模式,在php.ini中设置safe_mode = On重启PHP便可开启安全模式。

当安全模式开启后,PHP相应的一些系统函数,文件操作函数等将会受限。例如:

ckdir,

move_uploaded_file,

chgrp,

parse_ini_file,

chown,rmdir,

copy,

rename,

fopen,

require,

highlight_file,

show_source,

include,

symlink,

link,

touch,

mkdir,

unlink,

exec,

shell_exec,

pasathru,

system,

popen

除此之外,一些php扩展的函数也会受到限制,不能在程序里面直接加载扩展,只能到php.ini里加载,而且php如果需要执行操作系统的程序时,必须在safe_mode_exec_dir中指定程序的路径,否则执行将失败。

到此,以上就是小编对于“shell_exec_php”的问题就介绍到这了,希望介绍关于“shell_exec_php”的【3】点解答对大家有用。

抱歉,评论功能暂时关闭!