首先,我有一个 php 文件的 cron 作业。其次,在cron作业调用的php文件中,我想调用一个带参数的文件。我怎么能在不改变 php.ini 的情况下做到这一点?
例子:
include('file.php?id='.$id.');
包括 get-parameters 将不起作用,因为 php 的 CLI 版本不支持它。还包括基于文件系统的作品,而不是基于 url 的作品。include 将/应该搜索文件 file.php?id=1。您应该创建一个函数并默认包含该文件,然后调用该函数
包含带有 url 的远程文件是一种非常非常糟糕的做法。如果你认为你必须这样做,那么你的概念很简单。尝试使用 api/其他类型的接口与远程 URL 进行交互。
您可以在其他文件中定义一个函数,并在原始文件中调用它。例如:
文件.php:
function someFunction($x)
{
return $x*$x;
}
cron.php:
require 'file.php';
echo someFunction(10);
此外,在全局范围内定义的任何变量也将在其他文件中可用。例如,如果您在 cron.php 中定义 $foo,您可以在 file.php 中使用该值。虽然不推荐这样做,但是维护大量的全局变量确实很难。
根据包含文档,如果其他 php 文件配置为解析 .php 而不是 .txt 是可能的。试试这个代码:
/* This example assumes that www.example.com is configured to parse .php
* files and not .txt files. Also, 'Works' here means that the variables
* $foo and $bar are available within the included file. */
// Won't work; file.txt wasn't handled by www.example.com as PHP
include 'http://www.example.com/file.txt?foo=1&bar=2';
// Won't work; looks for a file named 'file.php?foo=1&bar=2' on the
// local filesystem.
include 'file.php?foo=1&bar=2';
// Works.
include 'http://www.example.com/file.php?foo=1&bar=2';
$foo = 1;
$bar = 2;
include 'file.txt'; // Works.
include 'file.php'; // Works.
最简单的方法是使用file_get_contents()
:
file_get_contents('http://localhost/file.php?id='.$id.');
对于更复杂的情况,您可以查看 PHP Curl。