我正在运行Apache/2.2.11 (Win32) PHP/5.3.0,我在.htaccess文件中执行了以下操作:
SetEnv FOO bar
Run Code Online (Sandbox Code Playgroud)
如果我$_ENV在PHP文件中打印出变量,我会得到一个空数组.为什么我的环境变量不会出现在那里?为什么它首先是空的?
我确实找到了我的变量,但它出现在$_SERVER变量中.由于某种原因,它出现了两次,有点像.为什么是这样?
[REDIRECT_FOO] => bar
[FOO] => bar
Run Code Online (Sandbox Code Playgroud)
看来我可以使用它getenv('FOO'),所以也许我应该使用它.但我仍然对导致这种情况的原因感到好奇.这是一个Windows问题吗?或者发生了什么?
我有一个脚本,可以作为网页运行,也可以通过控制台运行.
检测用于调用脚本的方法看起来非常简单,但是当从控制台运行脚本时,我需要知道脚本是否以交互方式运行(用户键入命令,或从文件重定向输入) .
php script.php
与
php script.php < input_file
这可能吗?
可能的重复:
PHP 能否检测它是从 cron 作业还是从命令行运行?
我正在尝试确定 PHP 命令行脚本上的 STDOUT 资源是否通过管道传输到另一个命令,以便适当地显示表格数据(如果输出直接到终端,则表格单元格看起来不错包裹在+-----+边框中;但如果尝试使用awk或 其他命令检查该数据,则不会。)
找到这个答案后,我尝试检查 STDOUT 资源stream_get_meta_data()以及我可以在 PHP 手册中找到的所有其他函数,这些函数对流进行操作,但在每种情况下,资源看起来都完全相同,无论它是否通过管道传输到另一个过程与否。
有没有办法在PHP中找到这个?
我有bash脚本,我在每个命令显示正在发生的事情之前都有回声.
但是我需要在设置为cron作业时抛弃回声,然后再次启用,如果做一些测试.
我发现很难去每一行,然后添加/删除评论
有什么我可以包括在顶部的东西
enable echo or disable echo
Run Code Online (Sandbox Code Playgroud)
这样我就不必浪费时间了
我有一个cron文件,monthly.php,我想阻止使用网络浏览器直接访问.它应该只能通过CPanel cron访问.
谢谢.