Я хочу обрабатывать скрипт каждую минуту, используя cron на моем сервере, но мне нужно передать переменную в URL-адрес или каким-либо другим способом. Я исследовал это, и я видел решения, использующие аргументы в cron, но я не думаю, что это работает с тем, что я делаю.
Вот что я пытаюсь сделать:
script.php (запускается каждую минуту)
<?php
$marker = $_GET['marker'];
$accountObj = new etAccounts($consumer);
$request_params = new TransactionHistoryRequest();
$request_params->__set('count', 50); //how many will be shown
if($marker_get != ''){
$request_params->__set('marker', $marker_get); //starting point ex. 14293200140265
}
$json = $accountObj->GetTransactionHistory($account, $request_obj, $request_params );
echo $json; //shows most recent 50 transactions starting from marker value
//process json data here...
//included in json is a marker variable that will be used to return the next 50 json results
//after data is processed reload the page with marker in URL
header('Location: script.php?marker=14293200140265');
?>
Я понимаю, что cron является CLI на стороне сервера и что он не может обрабатывать перенаправления или заголовки, но как это возможно. Я видел, как кто-то упоминал использование CURL, как это может работать? Пример?
Исходя из комментариев, вам не нужно перенаправлять или использовать переменные запроса.
Вы можете использовать цикл, который выполняется, пока переменная marker
не пуста:
$your_marker_variable = '';
do {
$accountObj = new etAccounts($consumer);
$request_params = new TransactionHistoryRequest();
$request_params->__set('count', 50); //how many will be shown
if($marker_get != '') {
$request_params->__set('marker', $marker_get); //starting point ex. 14293200140265
}
$json = $accountObj->GetTransactionHistory($account, $request_obj, $request_params );
echo $json; //shows most recent 50 transactions starting from marker value
//process json data here...
//included in json is a marker variable that will be used to return the next 50 json results
// set the new value of $your_marker_variable
$your_marker_variable = ...
} while (!empty($your_marker_variable));
Обратите внимание, что неопределенные и неиспользуемые переменные в написанном вами скрипте затрудняют просмотр какой переменной используется для чего, поэтому вам нужно немного адаптировать это значение.
Простой пример отправки почтовых переменных в URL:
$fields = array(
'id' => $id,
'mail' => $mail,
);
$url = "yourdomain.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);