HEX
Server: Apache/2.4.59 (Debian)
System: Linux skycube.cz 4.19.0-25-amd64 #1 SMP Debian 4.19.289-2 (2023-08-08) x86_64
User: ilya (534)
PHP: 7.3.31-1~deb10u7
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
File: /var/www/ilya/data/www/korunka.ru/modules/services/get_rates.php
<?

function get_rates_cbr($currency_id,$currency_cbr_id,$currency_amount,$start_date,$end_date) {


	$source = file_get_contents("http://www.cbr.ru/currency_base/dynamics/?UniDbQuery.Posted=True&UniDbQuery.mode=1&UniDbQuery.date_req1=&UniDbQuery.date_req2=&UniDbQuery.VAL_NM_RQ=".$currency_cbr_id."&UniDbQuery.From=".$start_date."&UniDbQuery.To=".$end_date);

	$source = explode("<th>Курс</th>", $source);
	$source = explode("</table>", $source[1]);

	$source = explode("<tr>", $source[0]);

	foreach($source as $row) {
		//$row = explode("<td align=\"center\">",$row);
		//$row = explode("</tr>",$row[1]);

		$row = explode("<td>10</td>",$row); // 0 - date; 1 - amount; 2 - value

		$value_date = strip_tags(preg_replace( "/\r|\n/", "",$row[0]));
		$value_date = preg_replace("/\s+/", '',$value_date);
		$value_date = preg_replace("/(\d+).(\d+).(\d+)/i","\$3-\$2-\$1",$value_date);
		

		$value = str_replace(",",".",$row[1]);
		$value = strip_tags(preg_replace( "/\r|\n/", "",$value));
		$value = preg_replace("/\s+/", '',$value);
		//$value = ($currency_amount*str_replace(",",".",$row[2]))/$row[1];
		//print $value_date." - ".$value."<br>";

		if(($value_date!='') && ($value!='')) {

			$check = query("SELECT * FROM `values` WHERE `date`='".$value_date."' AND `currency`='".$currency_id."';");
			if(mysql_num_rows($check)) {
				print "UPDATE `values` SET `value_cbr`='".$value."' WHERE `currency`='".$currency_id."' AND `date`='".$value_date."';";
				query("UPDATE `values` SET `value_cbr`='".$value."' WHERE `currency`='".$currency_id."' AND `date`='".$value_date."';");
			}
			else {
				print "INSERT INTO `values` (`date`,`currency`,`value_cbr`) VALUES('".$value_date."','".$currency_id."','".$value."');";
				query("INSERT INTO `values` (`date`,`currency`,`value_cbr`) VALUES('".$value_date."','".$currency_id."','".$value."');");
			}
		}	
	}
	
	//print $source[0];

}

function get_rates_cnb($currency_id,$currency_cnb_id,$start_date,$end_date) {

	$source = file_get_contents("http://www.cnb.cz/miranda2/m2/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/vybrane.html?mena=".$currency_cnb_id."&od=".$start_date."&do=".$end_date);

	$source = explode("<tr><th>Datum</th><th>Kurz</th></tr>\n<tr>", $source);
	$source = explode("</table>", $source[1]);
	
	$source = explode("<tr>", $source[0]);
	
	foreach($source as $row) {
		$row = explode("<td class=\"w50\">",$row);
		$row = explode("</td></tr>",$row[1]);
		$row = explode("</td><td class=\"w50\" align=\"right\">",$row[0]); // 0 - date; 1 - value
		$value_date = preg_replace("/(\d+).(\d+).(\d+)/i","\$3-\$2-\$1",$row[0]);
		if($currency_id==3)
			$value = 1000/str_replace(",",".",$row[1]);
		else
			$value = str_replace(",",".",$row[1]);
		print $value_date." - ".$value."<br>";
		
		$check = query("SELECT * FROM `values` WHERE `date`='".$value_date."' AND `currency`='".$currency_id."';");
		if(mysql_num_rows($check))
			query("UPDATE `values` SET `value_cnb`='".$value."' WHERE `currency`='".$currency_id."' AND `date`='".$value_date."';");
		else
			query("INSERT INTO `values` (`date`,`currency`,`value_cnb`) VALUES('".$value_date."','".$currency_id."','".$value."');");
		
	}
	
	//print $source[0];

}


$result = query("SELECT * FROM `currencies` WHERE id=3;");

while($data = mysql_fetch_array($result)) {
	$end_date = date("d.m.Y",TIME+86400);
	$start_date = preg_replace("/(\d+)-(\d+)-(\d+)/i","\$3.\$2.\$1",$data['start_date']);
	//get_rates_cbr($data['id'],$data['cbr_id'],$data['amount'], $start_date,$end_date);
	//get_rates_cnb($data['id'],$data['cnb_id'],$start_date,$end_date);
	get_rates_cbr($data['id'],$data['cbr_id'],$data['amount'], $start_date,$end_date);
	get_rates_cnb($data['id'],$data['cnb_id'],$start_date,$end_date);
}
//$start_date = date("d.m.Y",TIME-604800);

//get_rates_cnb(3,"RUB",$start_date,$end_date);
//get_rates_cbr($data['id'],$data['cbr_id'],$data['amount']);

// start dates: USD - 01.01.2001; EUR - 01.01.1999; RUB - 01.01.2005

query("DELETE FROM `values` WHERE `date`='0000-00-00'");

?>