|
|
|
| Всем привет. Уже запарился с ним возится. По крону запускается пхп файл который запускает 2 ф-ции, первая создает 1 рсс канал, вторая еще один, но немного другого типа. Так вот все отлично создается, но при создании второго канала у меня идет копирование картинок с одной папки в другую с их ресайзом и запоминанием путей в рсс канале. Если напрямую выполнить файл - все ок создается, копируется и ресайзится, а вот по крону не хочет копировать начальную картинку, но на выходе получаю белую картинку, уже отресайзиную. Прошу помощи. Привожу скрипт копирования.
function rss_news_ukr(){
// get news from db
$res = //запрос на выборку новостей
// news xml
$xml = '<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns="http://backend.userland.com/rss2" xmlns:yandex="http://news.yandex.ru">
<channel>...........';
while($row = mysql_fetch_assoc($res)){
if($row['****'] == "a"){
$urlparam = "articles";
}else{
$urlparam = "news";
}
//выдергиваю из полной новости ссылки на картинки
$imagein = $row['****'];
preg_match_all("#<img.*?src=\"/(.+?)\"[^>]*>#is", $imagein, $imageout);
unset($imageout[0]);
$xml .= '
<item>
<title><![CDATA['.strip_tags($row['***']).']]></title>
<link>*****</link>
<description><![CDATA['.strip_tags($row['***']).']]></description>
<yandex:genre>article</yandex:genre>';
for($t=0;$t<count($imageout[1]);$t++){
$image = $_SERVER['DOCUMENT_ROOT'].'/'.$imageout[1][$t];
$image_name = date("YmdHms").rand(1000,9999).'.jpg';
$folder = $_SERVER['DOCUMENT_ROOT'].'/files/rss/'.date("Y-m-d").'/';
if(file_exists($_SERVER['DOCUMENT_ROOT']."/files/rss/".date("Y-m-d")) == false){
mkdir($_SERVER['DOCUMENT_ROOT']."/files/rss/".date("Y-m-d"), 0777);
chmod ($_SERVER['DOCUMENT_ROOT']."/files/rss/".date("Y-m-d"), 0777);
}
copy($image, $folder.$image_name);
$w = 100; $h = 100;
$ratio = $w/$h;
$size_img = @getimagesize($folder.$image_name);
$src_ratio=$size_img[0]/$size_img[1];
if ($ratio<$src_ratio){
$h = $w/$src_ratio;
}else{
$w = $h*$src_ratio;
}
$dest_img = $_SERVER['DOCUMENT_ROOT']."/files/rss/background.jpg";
$dest_img = imagecreatefromjpeg($dest_img);
$src_img = imagecreatefromjpeg($folder.$image_name);
if($w > $h){
$wh = round(($w - $h)/2);
$hw = 0;
}else{
$wh = 0;
$hw = round(($h - $w)/2);
}
imagecopyresampled($dest_img, $src_img, $hw, $wh, 0, 0, $w, $h, $size_img[0], $size_img[1]);
imagejpeg($dest_img, $folder.$image_name);
imagedestroy($dest_img);
imagedestroy($src_img);
$xml .= '<enclosure type="image/jpeg" url="http://www.*****/files/rss/'.date("Y-m-d").'/'.$image_name.'" />';
}
$xml .= '<pubDate>' . date('r',strtotime($row['*****'])) . '</pubDate>
<yandex:full-text><![CDATA['.strip_tags($row['****']).']]></yandex:full-text>
</item>';
}
// create xml
file_put_contents('/home/****/domains/****/public_html/rss_ukr.xml' , $xml . '</channel></rss>');
}
|
эта ф-ция подключается в файле пхп, который лежит в корне сайта, а он собственно подключается по крону. Так в чем может быть загвоздка с копированием по крону не подскажете? | |
|
|