<?
// функция сохраненяет картинку из урла в локальную 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';
}
?>