Windows — PHP-скрипт не работает в CLI

Первый вопрос здесь. Я новичок в (php) программировании, но stackoverflow уже очень помог мне. К сожалению, я не смог (достаточно быстро) найти решение этой проблемы:

Я сделал цикл, который проверяет содержимое веб-страницы каждые несколько секунд и записывает его в базу данных, а с EasyPHP и firefox это работает; это просто время ожидания через 30 секунд. Но у меня проблемы с тем, чтобы заставить его работать в CLI (windows 7). Насколько я могу судить, переменные окружения и реестр настроены правильно. У меня есть php.ini из CGI-php в той же папке, что и файл, который я хочу запустить.
Поэтому, когда я пытаюсь запустить его с CMD (перейдите в папку -> php <file.php>) Я получаю широкий спектр предупреждений и уведомлений, которые я вижу: предупреждения о часовом поясе о strtotime, неопределенная переменная: lastdate (строка 58), file_get_contents: не удалось открыть поток (строка 23), не удалось найти driverPHP, неопределенная переменная: sql (строка 12), не может найти оболочку «https» (строка 23), а «-l» говорит, что все в порядке.

Я понятия не имею, что я делаю здесь неправильно, или я неправильно установил PHP, или это что-то еще?

РЕДАКТИРОВАТЬ: изменил вопрос теперь я понимаю, я не могу загрузить php.ini как файл php ..

<?php
$servername = "localhost";
$username = "";
$password = "";
$dbname = "newdb";
$tablename = "test1";
$maxinterval = 10;
$mininterval = 2;
$loophandle = fopen("loopcheck.txt", "r");

function seconds2human($ss) { //taken from somewhere via stackoverflow.com
$s = $ss%60;
$m = floor(($ss%3600)/60);
$h = floor(($ss%86400)/3600);
$d = floor(($ss%2592000)/86400);
$M = floor($ss/2592000);

return "$M months, $d days, $h hours, $m minutes, $s seconds";
}

function GetJsonFeed($json_url) //taken from somewhere on bitcointalk.org
{
$feed = file_get_contents($json_url);
return json_decode($feed, true);
}

fread($loophandle, 25);
while ($loopcheck = true){  //start loop, $loopcheck is in loopcheck.txt
fread($loophandle, 25);

$ltc_btc = GetJsonFeed("https://btc-e.com/api/3/ticker/ltc_btc"); //update server data to array
$ltc_btc_high = $ltc_btc["ltc_btc"]["high"];
$ltc_btc_low = $ltc_btc["ltc_btc"]["low"];
$ltc_btc_avg = $ltc_btc["ltc_btc"]["avg"];
$ltc_btc_vol = $ltc_btc["ltc_btc"]["vol"];
$ltc_btc_vol_cur = $ltc_btc["ltc_btc"]["vol_cur"];
$ltc_btc_last = $ltc_btc["ltc_btc"]["last"];
$ltc_btc_buy = $ltc_btc["ltc_btc"]["buy"];
$ltc_btc_sell = $ltc_btc["ltc_btc"]["sell"];
$ltc_btc_updated = $ltc_btc["ltc_btc"]["updated"];

try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM test1 ORDER BY timestamp DESC LIMIT 1";
$result = $conn->query($sql);
if($result !== false) {
foreach($result as $row) {
$lastdate = $row['timestamp']; //retreive last table entry timestamp
}
}
$conn = null;
}
catch(PDOException $e) {
echo $e->getMessage();
}
$currdate = date('Y-m-d H:i:s');
$diff = abs(strtotime($currdate) - strtotime($lastdate)); //determine last table entry age
if($diff >= $maxinterval){
include "lastchecktime.txt";
$diff2 = abs(strtotime($currdate) - strtotime($lastchecktime));
if(seconds2human($diff2) < $mininterval){
$lastchecktime = date('Y-m-d H:i:s');
$writetxt='$lastchecktime=';
fwrite(fopen("lastchecktime.txt", "w+"), "<?php $writetxt '$lastchecktime' ?>");
fclose(fopen("lastchecktime.txt", "r"));
include 'Insert apidata2.php';
}
}
}
fclose($loophandle);
?>

И ссылочный файл «Вставить apidata2.php»:

<?php

try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO $tablename (high, low, avg, vol, vol_cur, last, buy, sell, updated)
VALUES ('$ltc_btc_high','$ltc_btc_low','$ltc_btc_avg','$ltc_btc_vol','$ltc_btc_vol_cur','$ltc_btc_last','$ltc_btc_buy','$ltc_btc_sell','$ltc_btc_updated')";
$conn->exec($sql);
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}

$conn = null;

?>

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector