Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Копирование картинок по крону
 
 автор: TetRiska   (25.11.2010 в 11:59)   письмо автору
 
 

Всем привет. Уже запарился с ним возится. По крону запускается пхп файл который запускает 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>');

}

эта ф-ция подключается в файле пхп, который лежит в корне сайта, а он собственно подключается по крону. Так в чем может быть загвоздка с копированием по крону не подскажете?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования