linux - crontab中执行的php文件中遇到重定向会如何?
程序员文章站
2022-04-15 14:53:07
...
有index.php文件,其中包含代码:
header("Location: /from_index.php"); # 重定向(from_index.php的文件位置在:/www/)
使用crontab -e加入定时任务:
*/5 9-23 * * * sleep 50 && php /www/index.php # php脚本的绝对路径
请问这样的结构中,会执行from_index.php中的代码吗?
我了解到如果写成:
*/5 9-23 * * * sleep 50 && curl -L -e '; auto' http://127.0.0.1/index.php # http访问
是能够执行到from_index.php中的代码的。但是这样的写法是否没有使用php命令效率高?
回复内容:
有index.php文件,其中包含代码:
header("Location: /from_index.php"); # 重定向(from_index.php的文件位置在:/www/)
使用crontab -e加入定时任务:
*/5 9-23 * * * sleep 50 && php /www/index.php # php脚本的绝对路径
请问这样的结构中,会执行from_index.php中的代码吗?
我了解到如果写成:
*/5 9-23 * * * sleep 50 && curl -L -e '; auto' http://127.0.0.1/index.php # http访问
是能够执行到from_index.php中的代码的。但是这样的写法是否没有使用php命令效率高?
php的执行
1.cli方式,直接用php脚本执行
php index.php
2.经过服务器请求cgi方式
curl -L http://127.0.0.1/index.php
header函数跳转,是服务器响应给curl(相当于浏览器)做重定向,然后重新请求服务器
因此php /www/index.php,header函数是不会起作用的进行跳转到index.php脚本文件,因为没有经过服务器。
//index.php
header("Location:demo.php");
//demo.php
echo "this is demo";
请求结果图
服务器接收到的请求图
如果使用curl的话你需要打开它的重定向开关
curl 不可以使用 header
直接再在代码里面用 system 调用php命令执行那个php文件 不可以这样?
第一个问题,不会,
第二个,不会有直接执行cli的性能高
推荐阅读
-
关于在linux中定时执行php文件的有关问题
-
win2008中关于如何设置计划任务执行PHP文件方法的详解
-
php中如何从一个文件获取另一个php文件的代码?(而不是执行结果)
-
在浏览器中打开php文件时,是Linux中的哪个用户执行的?
-
ubuntu - linux中定时任务crontab中的php任务无法执行,求可能的原因
-
linux - crontab中执行的php文件中遇到重定向会如何?
-
关于在linux中定时执行php文件的有关问题
-
ubuntu - linux中定时任务crontab中的php任务无法执行,求可能的原因
-
linux - crontab中执行的php文件中遇到重定向会如何?
-
win2008中关于如何设置计划任务执行PHP文件方法的详解