2012-05-21 7 views
1

Прежде всего, у меня есть задание cron для php-файла. Прежде всего, в php-файле, вызванном заданием cron, я хотел бы вызвать файл с параметром. Как я могу это сделать без изменения php.ini?Запуск скрипта в php

Пример:

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

Что вы подразумеваете под «вызовом связи с параметром»? – TJHeuvel

+0

«Как я могу это сделать без изменения php.ini?» --- Как вы могли это сделать с изменением php.ini? ;-) – zerkms

+0

Не уверен, но попробуйте exec() –

ответ

-2

Самый простой способ заключается в использовании file_get_contents():

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

Для более сложных случаев, вы можете посмотреть на PHP Curl.

+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); 

Кроме того, любая переменная, определенная в глобальном масштабе будут доступны в другом файле, а также. Например, если вы определяете $ foo в cron.php, вы можете использовать это значение в файле file.php. Хотя это не рекомендуется, очень сложно поддерживать множество глобальных переменных.

1

в том числе с get-параметрами не будет работать, потому что CLI-версия php не поддерживает его. также включают работы на базе файловой системы, а не на базе url. include будет/должен искать файл file.php? id = 1. вы должны создать функцию, включить файл по умолчанию, а затем вызвать функцию

включая удаленный файл с URL-адресом очень плохая парактика. если вы считаете, что вам нужно это сделать, ваша концепция проста. попробуйте использовать интерфейс api/другого типа для взаимодействия с удаленным url.

+0

Это будет работать для простых случаев, но иногда это не так очевидно, чтобы реорганизовать код в простую функцию. Подумайте, например, о структуре, такой как Kohana - функции находятся в контроллерах, которые должны быть правильно настроены для работы. В этом случае вызов URL напрямую с помощью Curl или file_get_contents является самым простым способом. –

+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.