View file libs/common_functions.php

File size: 1.68Kb
<?
// функция сохраненяет картинку из урла в локальную tmp директорию
// *  Библиотека функций playfon.ru version 5.1 (30.05.2006)
// 
// 
// Необходимые параметры
// LOCAL_TMP_DIR  - путь к tmp директории на сервере в которую файлы будут кэшироваться
// REMOTE_TMP_DIR - путь к директории tmp (как её видит посетитель сайта)

// Глобальные переменные
// $aImgArray - Хранит все пути к кэшируемым картинкам
// $aImgCount - Хранит кол-во сохраненных для каждого вида контента картинок


function SaveAndReplaceImages($sUrl, $sPrefix){
    global $aImgCount, $aImgArray;
	
	if (isset($aImgArray[$sUrl])) return $aImgArray[$sUrl];

	if (!isset($aImgCount[$sPrefix])) $aImgCount[$sPrefix] = 1;;
	
	$sExt = substr($sUrl, -4);	

	$fp=@fopen($sUrl, "rb");

	if ($fp){
		$sImgData = '';

		while ($new = fread($fp, 1024)) 
			$sImgData .= $new;
		fclose($fp);
	}else{
		if (!class_exists('HttpClient'))
	        include ('http_client.inc.php');

		$aParsedUrl =  parse_url($sUrl);
		$Soc = new HttpClient();
	    	$sImgData = $Soc->Get($aParsedUrl['host'], $aParsedUrl['path']);
	}


	$sFileName = sGetRegion().$sPrefix.$aImgCount[$sPrefix].$sExt;
	$sImageLocalFile = LOCAL_TMP_DIR.$sFileName;
	
	$sRemoteSourceString = 'src="'.REMOTE_TMP_DIR.$sFileName.'"';
	
	$aImgArray[$sUrl] = $sRemoteSourceString;

	// выставляем маску на случай если маска по умолчанию не позволяет записывать и читать файлы
        @umask(umask() & 0177);	

	$fp = @fopen($sImageLocalFile, 'wb');
	if ($fp){
		fwrite($fp, $sImgData);
		fclose($fp);
	}
	$aImgCount[$sPrefix]++;
	
	return $sRemoteSourceString;
}

/*
*
*/
	function sGetRegion(){
		return (defined('REGION'))?REGION:'ru';
	}
?>