首頁 > 後端開發 > php教程 > linux - crontab中执行的php文件中遇到重定向会如何?

linux - crontab中执行的php文件中遇到重定向会如何?

WBOY
發布: 2016-06-06 20:20:22
原創
1272 人瀏覽過

有index.php文件,其中包含代码:

<code>header("Location: /from_index.php"); # 重定向(from_index.php的文件位置在:/www/)
</code>
登入後複製
登入後複製

使用crontab -e加入定时任务:

<code>*/5 9-23 * * * sleep 50 && php /www/index.php # php脚本的绝对路径
</code>
登入後複製
登入後複製

请问这样的结构中,会执行from_index.php中的代码吗?

我了解到如果写成:

<code>*/5 9-23 * * * sleep 50 && curl -L -e '; auto' http://127.0.0.1/index.php # http访问</code>
登入後複製
登入後複製

是能够执行到from_index.php中的代码的。但是这样的写法是否没有使用php命令效率高?

回复内容:

有index.php文件,其中包含代码:

<code>header("Location: /from_index.php"); # 重定向(from_index.php的文件位置在:/www/)
</code>
登入後複製
登入後複製

使用crontab -e加入定时任务:

<code>*/5 9-23 * * * sleep 50 && php /www/index.php # php脚本的绝对路径
</code>
登入後複製
登入後複製

请问这样的结构中,会执行from_index.php中的代码吗?

我了解到如果写成:

<code>*/5 9-23 * * * sleep 50 && curl -L -e '; auto' http://127.0.0.1/index.php # http访问</code>
登入後複製
登入後複製

是能够执行到from_index.php中的代码的。但是这样的写法是否没有使用php命令效率高?

php的执行
1.cli方式,直接用php脚本执行

<code>php  index.php</code>
登入後複製

2.经过服务器请求cgi方式

<code>curl -L http://127.0.0.1/index.php
</code>
登入後複製

header函数跳转,是服务器响应给curl(相当于浏览器)做重定向,然后重新请求服务器
因此php /www/index.php,header函数是不会起作用的进行跳转到index.php脚本文件,因为没有经过服务器。

<code>//index.php

header("Location:demo.php");</code>
登入後複製
<code>//demo.php

echo "this is demo";</code>
登入後複製

请求结果图
linux - crontab中执行的php文件中遇到重定向会如何?

服务器接收到的请求图
linux - crontab中执行的php文件中遇到重定向会如何?

如果使用curl的话你需要打开它的重定向开关

curl 不可以使用 header

直接再在代码里面用 system 调用php命令执行那个php文件 不可以这样?

第一个问题,不会,
第二个,不会有直接执行cli的性能高

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板