PHP, помогите пожалуйста понять что здесь от меня хотят)

Автор Тема: PHP, помогите пожалуйста понять что здесь от меня хотят)  (Прочитано 836 раз)

Оффлайн RacingАвтор темы

  • Бизнес оценка: (0)
  • Ветеран
  • *****
  • СПАСИБО: 154
  • Сообщений: 502
  • Карма: 50
  • Награды SEO-специалист
    • Просмотр профиля

Оффлайн RacingАвтор темы

  • Ветеран
  • *****
Цитировать
При формировании страницы - получите комментарии с KAMENT сервера, или обновите уже сохраненные комментарии, если они обновлялись более 30 минут назад

Например для PHP
Код:
Только зарегистрированные пользователи могут видеть код. Пожалуйста, войдите или зарегистрируйтесь.
В инструкции
(нажмите чтобы показать/скрыть)
застрял на этом месте и так как в языке не силен, не могу понять, что от меня вообще тут хотят. Помогите пожалуйста разобраться. С уважением, Максим.


Оффлайн АлександрВМ

  • Бизнес оценка: (1, 100%)
  • Постоялец
  • ***
  • СПАСИБО: 96
  • Сообщений: 150
  • Карма: 16
  • Пол: Мужской
    • Просмотр профиля

Оффлайн АлександрВМ

  • Постоялец
  • ***

function update_kament_comments($subdomain, $page_name) {
    $plain = '';
    $row = NULL;
 
    // Сначала проверим в БВ
   // запрос времени и данных из таблицы комментариев для данной страницы
    $result = mysql_query("SELECT data, UNIX_TIMESTAMP(timestamp) as timestamp from kament_raw_comments WHERE page_name=\"$page_name\"");
    // проверка возвращенных данных если запрос ничего не вернул то ошибка
   if(!$result) {
        error_log('Bad query in update_kament_comments()!');
        return NULL;
    } else {
        $row = mysql_fetch_assoc($result);
        if($row)
            $plain = $row->data;
    }
 
 
    // если данные в БД не найдены или они устарели - обновить с KAMENT сервера
   // тут проверяется время из данных которые получили из бд и если временная метка больше 30 минут (1800 милисекунд) то осуществляется запрос обноления комментов
    // с удаленного сервера   
    if(!$row || $row['timestamp'] < (time() - 1800) ) {
   // собственно обращение к удаленному серверу вызывается функция которая использует curl либу
        $new_data = kament_download_from_url('http://' . $subdomain . ".svkament.ru/commentswidget/plain/?page_name=$page_name");
        if($new_data != NULL) {
            $plain = $new_data;
         // заносим обновленные комменты к себе в бд
            $result = mysql_query("REPLACE INTO $table_name (page_name, timestamp, data) VALUES(\"$page_name\", NOW(), \"$new_data\") ON DUPLICATE KEY UPDATE timestamp=NOW(),data=\"$new_data\"");
            if(!$result) {
         // если не удалось занести то ошибочка
                error_log('Unable to save new data to DB in update_kament_comments()');
            }
        }
    }
 
    return $plain;
}
 
// Скачать данные по заданному URL используя CURL
// функция которая работает с удаленным сервером
function kament_download_from_url($url) {
    if(!function_exists('curl_version'))
        return NULL;
 
    $ch = @curl_init ( $url );
    if(!$ch)
        return NULL;
 
    curl_setopt( $ch, CURLOPT_AUTOREFERER, true );
    curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, FALSE);   
    curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, FALSE);
 
    $output = curl_exec ( $ch );
    $httpcode = curl_getinfo($ch,CURLINFO_HTTP_CODE);
    if (curl_errno ( $ch ) || $httpcode != 200) {
        return NULL;
    } else {
        curl_close ( $ch );
    }
 
    if( strpos($output, 'kament-plaintext-comments')===false )
        return NULL;
 
    return $output;
}



Комментарии к коду начинаются с // надеюсь вам поможет, если что спрашивайте.

Оффлайн Donaldtube

  • Бизнес оценка: (0)
  • Дебютант
  • *
  • СПАСИБО: 1
  • Сообщений: 5
  • Карма: -1
    • Просмотр профиля

Оффлайн Donaldtube

  • Дебютант
  • *
Интересный код. Сейчас попробуем разобрать


 

Похожие темы

  Тема / Автор Ответов Последний ответ
7 Ответов
2424 Просмотров
Последний ответ 15-02-2012, 21:57:13
от Ametist
7 Ответов
1763 Просмотров
Последний ответ 29-04-2013, 11:56:56
от irinazn
9 Ответов
2892 Просмотров
Последний ответ 17-10-2013, 21:56:59
от MmoMarket.ru
3 Ответов
860 Просмотров
Последний ответ 22-04-2015, 16:45:12
от SeoBrabus
7 Ответов
1438 Просмотров
Последний ответ 27-07-2016, 14:22:53
от SEOleGik