2012-05-21 87 views
1

首先,我爲php文件創建了一個cron作業。 其次,在由cron job調用的php文件中,我想用參數調用一個文件。我怎麼能不改變php.ini?在php中觸發腳本

例子:

include('file.php?id='.$id.'); 
+0

你是什麼意思'調用一個參數的鏈接? – TJHeuvel

+0

「我怎麼能不改變php.ini?」 ---你怎麼能改變php.ini? ;-) – zerkms

+0

不確定,但嘗試執行() –

回答

-2

最簡單的方法是使用file_get_contents()

file_get_contents('http://localhost/file.php?id='.$id.'); 

對於更復雜的情況下,你可以看看PHP捲曲。

+0

爲什麼downvote? –

+0

因爲file_get_contents不解析文件中的PHP。它會輸出file.php的來源。 – TJHeuvel

+0

他想「調用鏈接」,他沒有說他需要輸出或他需要解析文件。 –

0

您可以在其他文件中定義一個函數,然後在原文中調用該函數。例如:

file.php:

function someFunction($x) 
{ 
return $x*$x; 
} 

cron.php:

require 'file.php'; 
echo someFunction(10); 

此外,在全球範圍內所定義的任何變量將在其他文件可用。例如,如果您在cron.php中定義$ foo,則可以在file.php中使用該值。雖然不推薦這樣做,但要維護很多全局變量真的很困難。

1

包含get參數將無法正常工作,因爲CLI的CLI版本不支持它。還包括在文件系統基礎上的作品,而不是基於網址的作品。 include /將搜索文件file.php?id = 1。你應該創建一個函數並且默認包含這個文件,然後調用函數

包含遠程文件的url是一個非常糟糕的實踐。如果你認爲你必須這樣做,你的概念很簡單。嘗試使用api /其他類型的接口與遠程URL進行交互。

+0

這將適用於簡單的情況,但有時候將代碼重構爲簡單函數並不那麼明顯。以Kohana之類的框架爲例,功能在需要正確設置才能工作的控制器中。在這種情況下,使用Curl或file_get_contents直接調用URL是最簡單的方法。 –

+0

我認爲這是加載所有M(V)C-Stuff比調用url更好的方法。爲什麼涉及一個網絡服務器,如果你不需要一個? 爲了防萬一錯,你可以修改$ _SERVER-Global來設置所有的數據 – jwacalex

0

根據包含文檔,如果其他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.