首先,我爲php文件創建了一個cron作業。 其次,在由cron job調用的php文件中,我想用參數調用一個文件。我怎麼能不改變php.ini?在php中觸發腳本
例子:
include('file.php?id='.$id.');
首先,我爲php文件創建了一個cron作業。 其次,在由cron job調用的php文件中,我想用參數調用一個文件。我怎麼能不改變php.ini?在php中觸發腳本
例子:
include('file.php?id='.$id.');
最簡單的方法是使用file_get_contents()
:
file_get_contents('http://localhost/file.php?id='.$id.');
對於更復雜的情況下,你可以看看PHP捲曲。
爲什麼downvote? –
因爲file_get_contents不解析文件中的PHP。它會輸出file.php的來源。 – TJHeuvel
他想「調用鏈接」,他沒有說他需要輸出或他需要解析文件。 –
您可以在其他文件中定義一個函數,然後在原文中調用該函數。例如:
file.php:
function someFunction($x)
{
return $x*$x;
}
cron.php:
require 'file.php';
echo someFunction(10);
此外,在全球範圍內所定義的任何變量將在其他文件可用。例如,如果您在cron.php中定義$ foo,則可以在file.php中使用該值。雖然不推薦這樣做,但要維護很多全局變量真的很困難。
包含get參數將無法正常工作,因爲CLI的CLI版本不支持它。還包括在文件系統基礎上的作品,而不是基於網址的作品。 include /將搜索文件file.php?id = 1。你應該創建一個函數並且默認包含這個文件,然後調用函數
包含遠程文件的url是一個非常糟糕的實踐。如果你認爲你必須這樣做,你的概念很簡單。嘗試使用api /其他類型的接口與遠程URL進行交互。
這將適用於簡單的情況,但有時候將代碼重構爲簡單函數並不那麼明顯。以Kohana之類的框架爲例,功能在需要正確設置才能工作的控制器中。在這種情況下,使用Curl或file_get_contents直接調用URL是最簡單的方法。 –
我認爲這是加載所有M(V)C-Stuff比調用url更好的方法。爲什麼涉及一個網絡服務器,如果你不需要一個? 爲了防萬一錯,你可以修改$ _SERVER-Global來設置所有的數據 – jwacalex
根據包含文檔,如果其他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.
你是什麼意思'調用一個參數的鏈接? – TJHeuvel
「我怎麼能不改變php.ini?」 ---你怎麼能改變php.ini? ;-) – zerkms
不確定,但嘗試執行() –