+ Ответить в теме
Страница 6 из 7
ПерваяПервая ... 4 5 6 7 ПоследняяПоследняя
Показано с 201 по 240 из 263
  1. #1
    Аватар для Devel Devel Бог Devel Бог Devel Бог Devel Бог Devel Бог Devel Бог Devel Бог Главный Разработчик
    Сообщений
    2,738
    Поблагодарили 1,267 раз(а) в 617 сообщениях

    [Интернет, сеть] Вопрос - ответ

    Здесь задаем вопросы касаемо интернета и других сетевых технологий.

    Напоминаем, что эта тема для новичков.

  2. #201
    Аватар для Xoren Xoren Восходящая звезда Постоялец
    Сообщений
    731
    Поблагодарили 85 раз(а) в 72 сообщениях
    Чем отличается == от ===? && от and? || от or?

  3. #202
    Аватар для Странник Странник Очень опасный тип Странник Очень опасный тип Странник Очень опасный тип Странник Очень опасный тип Забанненый
    Сообщений
    1,565
    Поблагодарили 201 раз(а) в 173 сообщениях
    Цитата Сообщение от Xoren Посмотреть сообщение
    Чем отличается == от ===? && от and? || от or?
    это обычные операторы сравнения
    Операторы сравнения
    Пример Название Результат
    $a == $b Равно TRUE если $a равно $b после преобразования типов.
    $a === $b Тождественно равно TRUE если $a равно $b и имеет тот же тип.
    $a != $b Не равно TRUE если $a не равно $b после преобразования типов.
    $a <> $b Не равно TRUE если $a не равно $b после преобразования типов.
    $a !== $b Тождественно не равно TRUE если $a не равно $b или они разных типов.
    $a < $b Меньше TRUE если $a строго меньше $b.
    $a > $b Больше TRUE если $a строго больше $b.
    $a <= $b Меньше или равно TRUE если $a меньше или равно $b.
    $a >= $b Больше или равно TRUE если $a больше или равно $b.

  4. #203
    Аватар для vGhost vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка Почетный гражданин
    Сообщений
    4,035
    Поблагодарили 1,212 раз(а) в 865 сообщениях
    Цитата Сообщение от Xoren Посмотреть сообщение
    Чем отличается == от ===? && от and? || от or?
    http://ru2.php.net/manual/ru/languag...comparison.php
    - У тебя бывают приступы лени?
    - У меня бывают приступы активности, лень у меня постоянно.

  5. #204
    Аватар для Xoren Xoren Восходящая звезда Постоялец
    Сообщений
    731
    Поблагодарили 85 раз(а) в 72 сообщениях
    Как превратить $com->color (или $com->font->color) в hex?
    dechex() не подходит.
    Не хочу создавать для этого отдельную тему.

  6. #205
    Аватар для Странник Странник Очень опасный тип Странник Очень опасный тип Странник Очень опасный тип Странник Очень опасный тип Забанненый
    Сообщений
    1,565
    Поблагодарили 201 раз(а) в 173 сообщениях
    Цитата Сообщение от Xoren Посмотреть сообщение
    Как превратить $com->color (или $com->font->color) в hex?
    dechex() не подходит.
    Не хочу создавать для этого отдельную тему.
    PHP код:
    $Color 32768# цвет в пикселях
    $ColorHex toHTMLColor($Color);
    pre($ColorHex); 

  7. #206
    Аватар для Xoren Xoren Восходящая звезда Постоялец
    Сообщений
    731
    Поблагодарили 85 раз(а) в 72 сообщениях
    Цитата Сообщение от Странник Посмотреть сообщение
    цвет в пикселях
    Спасибо.
    Последний раз редактировалось Xoren; 27.03.2014 в 14:00.

  8. #207
    Аватар для Странник Странник Очень опасный тип Странник Очень опасный тип Странник Очень опасный тип Странник Очень опасный тип Забанненый
    Сообщений
    1,565
    Поблагодарили 201 раз(а) в 173 сообщениях
    Цитата Сообщение от Xoren Посмотреть сообщение
    Спасибо.
    шта, такой смайл?

  9. #208
    Аватар для Xoren Xoren Восходящая звезда Постоялец
    Сообщений
    731
    Поблагодарили 85 раз(а) в 72 сообщениях
    Цитата Сообщение от Странник Посмотреть сообщение
    шта, такой смайл?
    Просто не убрал, был вопрос: Как обратно вернуть?

  10. #209
    Аватар для Zoom Zoom На пути к лучшему Новичок
    Сообщений
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Как определить ип адрес? $_SERVER['REMOTE_ADDR'] выдает локальный ип.
    Последний раз редактировалось Zoom; 30.03.2014 в 22:03.

  11. #210
    Аватар для Render Render Вообще от рук отбился Завсегдатый
    Сообщений
    226
    Поблагодарили 37 раз(а) в 29 сообщениях
    Цитата Сообщение от Zoom Посмотреть сообщение
    Как определить ип адрес? $_SERVER['REMOTE_ADDR'] выдает локальный ип.
    IP адрес чего именно? Естественно REMOTE_ADDR будет определять IP клиента, то есть твоего ПК, на котором и запущен php.
    Стабильность работы твоего сайта только здесь.

  12. #211
    Аватар для akper akper Вообще от рук отбился Постоялец
    Сообщений
    864
    Поблагодарили 72 раз(а) в 61 сообщениях
    можете мне помочь я пишу в форуме в твк 2.5 мне никто не помогает может быть вы мне поможете с кодом просто когда я два раза нажимаю листбоск мне нужно чтобы вышел диалог с моим другом но выходит ошибка вот Call to a member function Send() on a non-object
    а вот сам код
    PHP код:
    global $vk,$namdel,$uid
    $maxs =200
    $res $vk->Send('messages.getHistory',"uid=$uid&count=$maxs"); 
    $count count($res['response']); 

    for( 
    $i $count$i>0$i -=1

    if ( 
    $res['response'][$i]['out'] == 1)  $name 'Я'
    else 
    $name $namdel
    $text .= $name.': '.$res['response'][$i]['body']._BR_

    c("Form2->memo2")->text $text
    c("Form2->memo2")->selStart strlen(c("Form2->memo2")->text); 
    c("Form2->memo2")->selLength 0

  13. #212
    Аватар для ProfanPHP ProfanPHP На пути к лучшему Прохожий
    Сообщений
    56
    Поблагодарили 0 раз(а) в 0 сообщениях
    Как реализовать вкладки для "browser1"?

  14. #213
    ARMEN
    Аватар для ARMEN Гость
    Цитата Сообщение от ProfanPHP Посмотреть сообщение
    Как реализовать вкладки для "browser1"?
    Реализовав вкладки для "browser1"

  15. #214
    Аватар для ProfanPHP ProfanPHP На пути к лучшему Прохожий
    Сообщений
    56
    Поблагодарили 0 раз(а) в 0 сообщениях
    Цитата Сообщение от ARMEN Посмотреть сообщение
    Реализовав вкладки для "browser1"
    Спасибо, кэп.

  16. #215
    Аватар для Владислав1 Владислав1 На пути к лучшему Новичок
    Сообщений
    5
    Поблагодарили 0 раз(а) в 0 сообщениях
    Подскажите пожалуйста! уже мучаюсь над этим очень много дней....
    Я создал Лаунчер, который обновляется автоматом, он может обновить себя и может обновить игру, себя он обновляет быстро и без проблем так как весит 4 мегабайта, а вот игру.... которая весит около 100 мегабайт, он обновляет с 10 а может быть и с 15 раза, выбивает ошибку, из за чего может быть? можно сделать так что бы оно спокойно скачало? без обрываний в сети и тд.

  17. #216
    Аватар для Владислав1 Владислав1 На пути к лучшему Новичок
    Сообщений
    5
    Поблагодарили 0 раз(а) в 0 сообщениях
    это как? можно поподробней пожалуйста)

  18. #217
    Аватар для Владислав1 Владислав1 На пути к лучшему Новичок
    Сообщений
    5
    Поблагодарили 0 раз(а) в 0 сообщениях
    Если честно все равно не понял, можно ссылку на документацию?) дело в том что все работает... только не всегда)
    у меня есть download2 который скачивает архив zip с хостингера, этот архив 100 мегабайт, ошибку я прописал в download2 -> событие -> Ошибка ->

    c("label_info")->font->color = 0x0000FF;
    c("label_info")->caption = 'Загрузка прервана, попробуйте ещё раз...';

    Вот она и часто выбивает... оно качает качает, может дойти до 50% может до 23% и потом ,Загрузка прервана...
    Иногда докачивает полностью и все работает)

  19. #218

  20. #219
    Аватар для Владислав1 Владислав1 На пути к лучшему Новичок
    Сообщений
    5
    Поблагодарили 0 раз(а) в 0 сообщениях
    то есть сделать свой компонент?

  21. #220
    Аватар для Владислав1 Владислав1 На пути к лучшему Новичок
    Сообщений
    5
    Поблагодарили 0 раз(а) в 0 сообщениях
    нашел код php с возможностью докачки, создал в папке проекта папку scripts и закинул туда пхп, потом по идеи просто брать функции которые в пхп и писать в дс?
    Скачал, все сделал, выбивает ошибки......( мне уже снится эта загрузка

  22. #221
    Аватар для Kashaket Kashaket На пути к лучшему Странник
    Сообщений
    119
    Поблагодарили 3 раз(а) в 3 сообщениях
    Цитата Сообщение от Владислав1 Посмотреть сообщение
    нашел код php с возможностью докачки, создал в папке проекта папку scripts и закинул туда пхп, потом по идеи просто брать функции которые в пхп и писать в дс?
    Скачал, все сделал, выбивает ошибки......( мне уже снится эта загрузка
    Напиши весь код, можешь даже в лс, пиши не ток код ошибки, скорее всего в коде ошибка, или у download2 не выбран фоновый режим, если интернет быстрый, то играет роль размер буффера, тк стандартное значение - 40 мб (40906 или как-то так), а тебе в параметрах download2 его надо поставить хотя-бы 110 мб
    Er hat im perfera

  23. #222
    Аватар для Kashaket Kashaket На пути к лучшему Странник
    Сообщений
    119
    Поблагодарили 3 раз(а) в 3 сообщениях
    Кхм. Вопрос по компонентам DS 2010, у меня проблема, не работает код
    PHP код:
     $d = new TDownload 
    ; , так как класса TDownload в DS 2010 нету, куда вписать класс TDownload, чтобы код
    PHP код:
    $d = new TDownload 
    работал?
    Er hat im perfera

  24. #223
    Аватар для Kashaket Kashaket На пути к лучшему Странник
    Сообщений
    119
    Поблагодарили 3 раз(а) в 3 сообщениях
    Цитата Сообщение от Владислав1 Посмотреть сообщение
    то есть сделать свой компонент?
    лучше переведи значения буффера TDownload из kb в mb (т.к. идея такая, вводишь в МБ, а оно умножает на 100, и в итоге получается, что в программе DS значение записано, в МБ, а само DS при работе умножает это значение на 100 и значение становится в КБ)
    Er hat im perfera

  25. #224
    Аватар для Странник Странник Очень опасный тип Странник Очень опасный тип Странник Очень опасный тип Странник Очень опасный тип Забанненый
    Сообщений
    1,565
    Поблагодарили 201 раз(а) в 173 сообщениях
    Цитата Сообщение от Kashaket Посмотреть сообщение
    Кхм. Вопрос по компонентам DS 2010, у меня проблема, не работает код
    PHP код:
     $d = new TDownload 
    ; , так как класса TDownload в DS 2010 нету, куда вписать класс TDownload, чтобы код
    PHP код:
    $d = new TDownload 
    работал?
    Этот компонент работает на CURL без потоков.. Так-что, не стесняйся его не использовать.. А сразу писать по CURL или найти более профессионально продуманный класс в интернете (не обязательно гуглить на DS... достаточно и на php)

  26. #225
    Аватар для Alan_wake Alan_wake Очень опасный тип Alan_wake Очень опасный тип Alan_wake Очень опасный тип Alan_wake Очень опасный тип Alan_wake Очень опасный тип Alan_wake Очень опасный тип Постоялец
    Сообщений
    948
    Поблагодарили 9 раз(а) в 9 сообщениях
    Цитата Сообщение от Странник Посмотреть сообщение
    Этот компонент работает на CURL без потоков.. Так-что, не стесняйся его не использовать.. А сразу писать по CURL или найти более профессионально продуманный класс в интернете (не обязательно гуглить на DS... достаточно и на php)
    PHP код:
    <? 
    // download.class.php 
    // Класс для даунлоада файла с докачкой 
    // ----------------------------------------------------- 
    class DownLoadFile
      var 
    $FileName// имя файла 
      
    var $size;     // размер 
      
    var $time;     // дата-время модификации 
      
    var $start;    // с какого байта отдавать 
      
    var $NeedRange// Признак докачки у клиента 
       
      
    function DownLoadFile($FileName){ // конструктор 
        
    $this->FileName=$FileName
        
    $range getenv("HTTP_RANGE"); 
        if(!Empty(
    $range)){ 
          
    $this->NeedRange=true
          
    $this->start=intval(substr($range,6)); //откусили bytes 
        
    }else{ 
          
    $this->NeedRange=false
          
    $this->start=0
        } 
        
    $this->size=-1// -1 признак что файла нет 
        
    if(file_exists($this->FileName)){ 
          
    $this->size=filesize($this->FileName); 
          
    $this->time=date("D, d M Y H:i:s "filemtime($this->FileName))."GMT"
        } 

      }
    // конструктор 



    // private  

      
    function outHeaderCommon(){ 
        
    header("Content-Transfer-Encoding: binary");  
        
    header("Content-Disposition: attachment; filename=$this->FileName");  
        
    header("Last-modified: ".$this->time); 
        
    header("Content-Length: " . ($this->size $this->start));  
      } 

      function 
    outHeaderForRange(){ 
        global 
    $HTTP_SERVER_VARS
             
    header("Accept-Ranges: bytes"); 
             
    header($HTTP_SERVER_VARS["SERVER_PROTOCOL"] . " 206 Partial Content"); 
             
    header("Content-Range: bytes ".$this->start."-".($this->size-1)."/".$this->size); 
      } 

      function 
    outContent(){ 
        if(
    $handle fopen($this->FileName"rb")){  
            
    $this->CalcStatistics(); 
            
    fseek($handle$this->start);  
            
    fpassthru($handle);  
            
    fclose($handle); 
        }else{ 
            
    $this->out403(); 
        } 
      } 


    // overload  

     
    function CalcStatistics(){ 
       
    // Сохранение в логах факта скачивания файла 
       //  Запись в бд или в текстовый файл по вкусу 
       // перегрузить в производном классе 
     


      function 
    outContentType(){ 
        
    header("Content-Type: application/force-download"); //заставляет всегда сохранять файл 
      


      function 
    out404(){ 
         
    header("HTTP/1.0 404 Not Found");  // имхо достаточно 
    /* 
         header($HTTP_SERVER_VARS["SERVER_PROTOCOL"] . " 404 Not Found"); // для эстетов 
    */ 
        
    echo "404 Not Found!";  
        exit; 

      } 

      function 
    out403(){ 
        
    header("HTTP/1.0 403 Forbidden");  // теже замечания, что и для 404 
        
    echo "403 Forbidden!"
        exit; 
      } 



    // public  

      
    function out(){ 
        if(
    $this->size>0){ 
           
    $this->outHeaderCommon(); 
           
    $this->outContentType(); 
           if(
    $this->NeedRange)$this->outHeaderForRange(); 
           
    $this->outContent(); 
        }else{ 
          
    $this->out404(); 
        } 
      } 


    }
    //DownLoadFile 

    /* Example */ 
    /* 
     $x = new DownLoadFile('20050726.rar'); 
     $x -> out(); 
    */ 

    ?>

    Типо так?

    PHP код:
    /* 

        HTTP_DL_Object class (PHP5 required) 
        // cp-1251 

        Базовый класс, реализующий доступ к скачиваемым объектам по протоколу HTTP. 
        Поддерживает порционную выдачу файлов. Метод работы с источником реализуется 
        производными классами - здесь только выдача файла. 

    */ 

    require('mlog.class.php'); 

    class 
    HTTP_DL_Object extends MLog 

        private 
    $content_is_partial;    // признак частичной выдачи файла 
        
    private $content_file_size;        // полный размер файла 
        
    private $content_file_name;        // путь или URL файла 
        
    private $content_range_pos;        // если частичная, то позиция начала в файле 
        
    private $content_range_len;      // если частичная, то длина части 

        
    public function outFileOrPart(){ 
            
    // выводит файл или часть файла в поток, 
            // предваряя его соответствующими заголовками 

            
    $this->dumpHash$_SERVER ); 

            
    $content_length 0
            
    $content_filename $this->getContentFileName(); 
            
    $headers = array(); 

            if ( 
    $this->isPartialContent() ){ 
                
    $content_beg_byte $this->getContentRangePos(); 
                
    $content_length $this->getContentRangeLen(); 
                
    $content_end_byte $content_length $content_beg_byte 1

                
    $headers[] = 'HTTP/1.0 206 Partial Content'
                
    $headers[] = sprintf('Content-Range: bytes %d-%d/%d'
                    
    $content_beg_byte,$content_end_byte
                    
    $this->getContentFileSize()); 
            }else{ 
                
    $content_length $this->getContentFileSize(); 

                
    $headers[] = 'HTTP/1.0 200 OK'
                
    $headers[] = 'Accept-Ranges: bytes'
            } 
            
    $headers[] = 'Content-Type: application/force-download'
            
    $headers[] = sprintf('Content-Length: %d',$content_length); 
            
    $headers[] = sprintf('Content-Disposition: attachment; filename=%s'
                
    basename($content_filename)); 
            
    $headers[] = 'Connection: close'

            if ( !
    $this->_readOut($headers) ){ 
                return 
    false
            } 
            return 
    true
        } 

        public function 
    initFromHTTPHeaders(){ 
            
    // имя файла-источника д.б. предварительно 
            // установлено посредством ->setContentFileName() 

            
    $file_size $this->_calculateContentFileSize(); 
            if ( !isset(
    $file_size) ){ 
                return 
    false
            } 

            
    // длина источника должна быть определена 
            // эта задача возложена на производные классы 
            
    $this->_setContentFileSize($file_size); 

            
    $txt_range $_SERVER['HTTP_RANGE']; 

            if ( isset(
    $txt_range) ){ 
                
    // выдаем файл порциями 
                
    $this->_setIsPartialContent(true); 

                if ( !
    preg_match("/^bytes=(\d*)-(\d*)$/",$txt_range,$matches) ){ 
                    
    $this->_setLastError
                        
    sprintf("Invalid range specification: %s",$txt_range)); 
                    return 
    false
                } 
                
    $beg_byte $matches[1] ? $matches[1] : 0
                
    $end_byte $matches[2] ? $matches[2] : ($file_size 1); 

                if ( 
    $end_byte >= $file_size ){ 
                    
    // глюка, при которой запрошено больше, чем содержит файл 
                    // в этом случае обрезаем запрошенное до размера файла 
                    
    $end_byte $file_size 1
                } 

                if ( 
    $beg_byte $end_byte ){ 
                    
    // глюка, при которой начало сегмента находится выше 
                    // чем его завершение 
                    // в этом случае меняем местами 
                    
    $temp_var $beg_byte
                    
    $beg_byte $end_byte
                    
    $end_byte $temp_var
                } 

                
    $this->_setContentRangePos($beg_byte); 
                
    $this->_setContentRangeLen($end_byte $beg_byte 1); 
            }else{ 
                
    // не порционный вариант выдачи 
                
    $this->_setIsPartialContent(false); 
                
    $this->_setContentRangeLen($file_size); 
            } 

            return 
    true
        } 

        public function 
    __construct(){ 
            
    parent::__construct(); 

            
    $this->_setIsPartialContent(false); 
            
    $this->_setContentRangePos(0); 
            
    $this->_setContentRangeLen(0); 
            
    $this->_setContentFileSize(0); 
            
    $this->setContentFileName(''); 
        } 

        public function 
    __destruct(){ 

        } 

    // getters/setters 

        
    public function isPartialContent(){ 
            return 
    $this->content_is_partial true false
        } 

        private function 
    _setIsPartialContent($partial_flag=true){ 
            
    $this->content_is_partial $partial_flag true false
            return; 
        } 

        public function 
    getContentRangePos(){ 
            return 
    $this->content_range_pos
        } 

        private function 
    _setContentRangePos($range_pos){ 
            
    $this->content_range_pos $range_pos
            return; 
        } 

        public function 
    getContentRangeLen(){ 
            return 
    $this->content_range_len
        } 

        private function 
    _setContentRangeLen($range_len){ 
            
    $this->content_range_len $range_len
            return; 
        } 

        public function 
    getContentFileName(){ 
            return 
    $this->content_file_name
        } 

        public function 
    setContentFileName($file_name){ 
            
    $this->content_file_name $file_name
            return; 
        } 

        public function 
    getContentFileSize(){ 
            return 
    $this->content_file_size
        } 

        private function 
    _setContentFileSize($file_size){ 
            
    $this->content_file_size $file_size
            return; 
        } 
    // для перекрытия производными классами 

        
    public function _calculateContentFileSize(){ 
            
    $this->_setLastError(sprintf
                
    "Pure-virtual function call: %s::%s",__CLASS__,__FUNCTION__)); 
            return;    
    // возвращает неопределенное, если неудача 
        


        public function 
    _readOut($headers){ 
            
    $this->_setLastError(sprintf
                
    "Pure-virtual function call: %s::%s",__CLASS__,__FUNCTION__)); 
            return 
    false
        } 



    // private 


    Или так?
    Последний раз редактировалось Alan_wake; 15.07.2015 в 20:15.

  27. #226
    Аватар для Странник Странник Очень опасный тип Странник Очень опасный тип Странник Очень опасный тип Странник Очень опасный тип Забанненый
    Сообщений
    1,565
    Поблагодарили 201 раз(а) в 173 сообщениях
    Цитата Сообщение от Alan_wake Посмотреть сообщение
    [SPOILER]
    PHP код:
    <? 
    // download.class.php 
    // Класс для даунлоада файла с докачкой 
    // ----------------------------------------------------- 
    class DownLoadFile
      var 
    $FileName// имя файла 
      
    var $size;     // размер 
      
    var $time;     // дата-время модификации 
      
    var $start;    // с какого байта отдавать 
      
    var $NeedRange// Признак докачки у клиента 
       
      
    function DownLoadFile($FileName){ // конструктор 
        
    $this->FileName=$FileName
        
    $range getenv("HTTP_RANGE"); 
        if(!Empty(
    $range)){ 
          
    $this->NeedRange=true
          
    $this->start=intval(substr($range,6)); //откусили bytes 
        
    }else{ 
          
    $this->NeedRange=false
          
    $this->start=0
        } 
        
    $this->size=-1// -1 признак что файла нет 
        
    if(file_exists($this->FileName)){ 
          
    $this->size=filesize($this->FileName); 
          
    $this->time=date("D, d M Y H:i:s "filemtime($this->FileName))."GMT"
        } 

      }
    // конструктор 



    // private  

      
    function outHeaderCommon(){ 
        
    header("Content-Transfer-Encoding: binary");  
        
    header("Content-Disposition: attachment; filename=$this->FileName");  
        
    header("Last-modified: ".$this->time); 
        
    header("Content-Length: " . ($this->size $this->start));  
      } 

      function 
    outHeaderForRange(){ 
        global 
    $HTTP_SERVER_VARS
             
    header("Accept-Ranges: bytes"); 
             
    header($HTTP_SERVER_VARS["SERVER_PROTOCOL"] . " 206 Partial Content"); 
             
    header("Content-Range: bytes ".$this->start."-".($this->size-1)."/".$this->size); 
      } 

      function 
    outContent(){ 
        if(
    $handle fopen($this->FileName"rb")){  
            
    $this->CalcStatistics(); 
            
    fseek($handle$this->start);  
            
    fpassthru($handle);  
            
    fclose($handle); 
        }else{ 
            
    $this->out403(); 
        } 
      } 


    // overload  

     
    function CalcStatistics(){ 
       
    // Сохранение в логах факта скачивания файла 
       //  Запись в бд или в текстовый файл по вкусу 
       // перегрузить в производном классе 
     


      function 
    outContentType(){ 
        
    header("Content-Type: application/force-download"); //заставляет всегда сохранять файл 
      


      function 
    out404(){ 
         
    header("HTTP/1.0 404 Not Found");  // имхо достаточно 
    /* 
         header($HTTP_SERVER_VARS["SERVER_PROTOCOL"] . " 404 Not Found"); // для эстетов 
    */ 
        
    echo "404 Not Found!";  
        exit; 

      } 

      function 
    out403(){ 
        
    header("HTTP/1.0 403 Forbidden");  // теже замечания, что и для 404 
        
    echo "403 Forbidden!"
        exit; 
      } 



    // public  

      
    function out(){ 
        if(
    $this->size>0){ 
           
    $this->outHeaderCommon(); 
           
    $this->outContentType(); 
           if(
    $this->NeedRange)$this->outHeaderForRange(); 
           
    $this->outContent(); 
        }else{ 
          
    $this->out404(); 
        } 
      } 


    }
    //DownLoadFile 

    /* Example */ 
    /* 
     $x = new DownLoadFile('20050726.rar'); 
     $x -> out(); 
    */ 

    ?>

    Типо так?

    PHP код:
    /* 

        HTTP_DL_Object class (PHP5 required) 
        // cp-1251 

        Базовый класс, реализующий доступ к скачиваемым объектам по протоколу HTTP. 
        Поддерживает порционную выдачу файлов. Метод работы с источником реализуется 
        производными классами - здесь только выдача файла. 

    */ 

    require('mlog.class.php'); 

    class 
    HTTP_DL_Object extends MLog 

        private 
    $content_is_partial;    // признак частичной выдачи файла 
        
    private $content_file_size;        // полный размер файла 
        
    private $content_file_name;        // путь или URL файла 
        
    private $content_range_pos;        // если частичная, то позиция начала в файле 
        
    private $content_range_len;      // если частичная, то длина части 

        
    public function outFileOrPart(){ 
            
    // выводит файл или часть файла в поток, 
            // предваряя его соответствующими заголовками 

            
    $this->dumpHash$_SERVER ); 

            
    $content_length 0
            
    $content_filename $this->getContentFileName(); 
            
    $headers = array(); 

            if ( 
    $this->isPartialContent() ){ 
                
    $content_beg_byte $this->getContentRangePos(); 
                
    $content_length $this->getContentRangeLen(); 
                
    $content_end_byte $content_length $content_beg_byte 1

                
    $headers[] = 'HTTP/1.0 206 Partial Content'
                
    $headers[] = sprintf('Content-Range: bytes %d-%d/%d'
                    
    $content_beg_byte,$content_end_byte
                    
    $this->getContentFileSize()); 
            }else{ 
                
    $content_length $this->getContentFileSize(); 

                
    $headers[] = 'HTTP/1.0 200 OK'
                
    $headers[] = 'Accept-Ranges: bytes'
            } 
            
    $headers[] = 'Content-Type: application/force-download'
            
    $headers[] = sprintf('Content-Length: %d',$content_length); 
            
    $headers[] = sprintf('Content-Disposition: attachment; filename=%s'
                
    basename($content_filename)); 
            
    $headers[] = 'Connection: close'

            if ( !
    $this->_readOut($headers) ){ 
                return 
    false
            } 
            return 
    true
        } 

        public function 
    initFromHTTPHeaders(){ 
            
    // имя файла-источника д.б. предварительно 
            // установлено посредством ->setContentFileName() 

            
    $file_size $this->_calculateContentFileSize(); 
            if ( !isset(
    $file_size) ){ 
                return 
    false
            } 

            
    // длина источника должна быть определена 
            // эта задача возложена на производные классы 
            
    $this->_setContentFileSize($file_size); 

            
    $txt_range $_SERVER['HTTP_RANGE']; 

            if ( isset(
    $txt_range) ){ 
                
    // выдаем файл порциями 
                
    $this->_setIsPartialContent(true); 

                if ( !
    preg_match("/^bytes=(\d*)-(\d*)$/",$txt_range,$matches) ){ 
                    
    $this->_setLastError
                        
    sprintf("Invalid range specification: %s",$txt_range)); 
                    return 
    false
                } 
                
    $beg_byte $matches[1] ? $matches[1] : 0
                
    $end_byte $matches[2] ? $matches[2] : ($file_size 1); 

                if ( 
    $end_byte >= $file_size ){ 
                    
    // глюка, при которой запрошено больше, чем содержит файл 
                    // в этом случае обрезаем запрошенное до размера файла 
                    
    $end_byte $file_size 1
                } 

                if ( 
    $beg_byte $end_byte ){ 
                    
    // глюка, при которой начало сегмента находится выше 
                    // чем его завершение 
                    // в этом случае меняем местами 
                    
    $temp_var $beg_byte
                    
    $beg_byte $end_byte
                    
    $end_byte $temp_var
                } 

                
    $this->_setContentRangePos($beg_byte); 
                
    $this->_setContentRangeLen($end_byte $beg_byte 1); 
            }else{ 
                
    // не порционный вариант выдачи 
                
    $this->_setIsPartialContent(false); 
                
    $this->_setContentRangeLen($file_size); 
            } 

            return 
    true
        } 

        public function 
    __construct(){ 
            
    parent::__construct(); 

            
    $this->_setIsPartialContent(false); 
            
    $this->_setContentRangePos(0); 
            
    $this->_setContentRangeLen(0); 
            
    $this->_setContentFileSize(0); 
            
    $this->setContentFileName(''); 
        } 

        public function 
    __destruct(){ 

        } 

    // getters/setters 

        
    public function isPartialContent(){ 
            return 
    $this->content_is_partial true false
        } 

        private function 
    _setIsPartialContent($partial_flag=true){ 
            
    $this->content_is_partial $partial_flag true false
            return; 
        } 

        public function 
    getContentRangePos(){ 
            return 
    $this->content_range_pos
        } 

        private function 
    _setContentRangePos($range_pos){ 
            
    $this->content_range_pos $range_pos
            return; 
        } 

        public function 
    getContentRangeLen(){ 
            return 
    $this->content_range_len
        } 

        private function 
    _setContentRangeLen($range_len){ 
            
    $this->content_range_len $range_len
            return; 
        } 

        public function 
    getContentFileName(){ 
            return 
    $this->content_file_name
        } 

        public function 
    setContentFileName($file_name){ 
            
    $this->content_file_name $file_name
            return; 
        } 

        public function 
    getContentFileSize(){ 
            return 
    $this->content_file_size
        } 

        private function 
    _setContentFileSize($file_size){ 
            
    $this->content_file_size $file_size
            return; 
        } 
    // для перекрытия производными классами 

        
    public function _calculateContentFileSize(){ 
            
    $this->_setLastError(sprintf
                
    "Pure-virtual function call: %s::%s",__CLASS__,__FUNCTION__)); 
            return;    
    // возвращает неопределенное, если неудача 
        


        public function 
    _readOut($headers){ 
            
    $this->_setLastError(sprintf
                
    "Pure-virtual function call: %s::%s",__CLASS__,__FUNCTION__)); 
            return 
    false
        } 



    // private 


    [/SPOILER]
    Или так?
    Типа, но в DS header не работает....

    Так-что, типа такого
    Пример
    PHP код:
    // Enable gzip compression and download a file.
    $curl = new Curl();
    $curl->setOpt(CURLOPT_ENCODING 'gzip');
    $curl->download('https://www.example.com/image.png''/tmp/myimage.png'); 

  28. #227
    Аватар для Alan_wake Alan_wake Очень опасный тип Alan_wake Очень опасный тип Alan_wake Очень опасный тип Alan_wake Очень опасный тип Alan_wake Очень опасный тип Alan_wake Очень опасный тип Постоялец
    Сообщений
    948
    Поблагодарили 9 раз(а) в 9 сообщениях
    Цитата Сообщение от Странник Посмотреть сообщение
    Типа, но в DS header не работает....

    Так-что, типа такого
    Пример
    PHP код:
    // Enable gzip compression and download a file.
    $curl = new Curl();
    $curl->setOpt(CURLOPT_ENCODING 'gzip');
    $curl->download('https://www.example.com/image.png''/tmp/myimage.png'); 
    Хмммммм....

  29. #228
    Аватар для Kashaket Kashaket На пути к лучшему Странник
    Сообщений
    119
    Поблагодарили 3 раз(а) в 3 сообщениях
    Цитата Сообщение от Alan_wake Посмотреть сообщение
    [SPOILER]
    PHP код:
    <? 
    // download.class.php 
    // Класс для даунлоада файла с докачкой 
    // ----------------------------------------------------- 
    class DownLoadFile
      var 
    $FileName// имя файла 
      
    var $size;     // размер 
      
    var $time;     // дата-время модификации 
      
    var $start;    // с какого байта отдавать 
      
    var $NeedRange// Признак докачки у клиента 
       
      
    function DownLoadFile($FileName){ // конструктор 
        
    $this->FileName=$FileName
        
    $range getenv("HTTP_RANGE"); 
        if(!Empty(
    $range)){ 
          
    $this->NeedRange=true
          
    $this->start=intval(substr($range,6)); //откусили bytes 
        
    }else{ 
          
    $this->NeedRange=false
          
    $this->start=0
        } 
        
    $this->size=-1// -1 признак что файла нет 
        
    if(file_exists($this->FileName)){ 
          
    $this->size=filesize($this->FileName); 
          
    $this->time=date("D, d M Y H:i:s "filemtime($this->FileName))."GMT"
        } 

      }
    // конструктор 



    // private  

      
    function outHeaderCommon(){ 
        
    header("Content-Transfer-Encoding: binary");  
        
    header("Content-Disposition: attachment; filename=$this->FileName");  
        
    header("Last-modified: ".$this->time); 
        
    header("Content-Length: " . ($this->size $this->start));  
      } 

      function 
    outHeaderForRange(){ 
        global 
    $HTTP_SERVER_VARS
             
    header("Accept-Ranges: bytes"); 
             
    header($HTTP_SERVER_VARS["SERVER_PROTOCOL"] . " 206 Partial Content"); 
             
    header("Content-Range: bytes ".$this->start."-".($this->size-1)."/".$this->size); 
      } 

      function 
    outContent(){ 
        if(
    $handle fopen($this->FileName"rb")){  
            
    $this->CalcStatistics(); 
            
    fseek($handle$this->start);  
            
    fpassthru($handle);  
            
    fclose($handle); 
        }else{ 
            
    $this->out403(); 
        } 
      } 


    // overload  

     
    function CalcStatistics(){ 
       
    // Сохранение в логах факта скачивания файла 
       //  Запись в бд или в текстовый файл по вкусу 
       // перегрузить в производном классе 
     


      function 
    outContentType(){ 
        
    header("Content-Type: application/force-download"); //заставляет всегда сохранять файл 
      


      function 
    out404(){ 
         
    header("HTTP/1.0 404 Not Found");  // имхо достаточно 
    /* 
         header($HTTP_SERVER_VARS["SERVER_PROTOCOL"] . " 404 Not Found"); // для эстетов 
    */ 
        
    echo "404 Not Found!";  
        exit; 

      } 

      function 
    out403(){ 
        
    header("HTTP/1.0 403 Forbidden");  // теже замечания, что и для 404 
        
    echo "403 Forbidden!"
        exit; 
      } 



    // public  

      
    function out(){ 
        if(
    $this->size>0){ 
           
    $this->outHeaderCommon(); 
           
    $this->outContentType(); 
           if(
    $this->NeedRange)$this->outHeaderForRange(); 
           
    $this->outContent(); 
        }else{ 
          
    $this->out404(); 
        } 
      } 


    }
    //DownLoadFile 

    /* Example */ 
    /* 
     $x = new DownLoadFile('20050726.rar'); 
     $x -> out(); 
    */ 

    ?>
    [/SPOILER]


    Типо так?

    [SPOILER]
    PHP код:
    /* 

        HTTP_DL_Object class (PHP5 required) 
        // cp-1251 

        Базовый класс, реализующий доступ к скачиваемым объектам по протоколу HTTP. 
        Поддерживает порционную выдачу файлов. Метод работы с источником реализуется 
        производными классами - здесь только выдача файла. 

    */ 

    require('mlog.class.php'); 

    class 
    HTTP_DL_Object extends MLog 

        private 
    $content_is_partial;    // признак частичной выдачи файла 
        
    private $content_file_size;        // полный размер файла 
        
    private $content_file_name;        // путь или URL файла 
        
    private $content_range_pos;        // если частичная, то позиция начала в файле 
        
    private $content_range_len;      // если частичная, то длина части 

        
    public function outFileOrPart(){ 
            
    // выводит файл или часть файла в поток, 
            // предваряя его соответствующими заголовками 

            
    $this->dumpHash$_SERVER ); 

            
    $content_length 0
            
    $content_filename $this->getContentFileName(); 
            
    $headers = array(); 

            if ( 
    $this->isPartialContent() ){ 
                
    $content_beg_byte $this->getContentRangePos(); 
                
    $content_length $this->getContentRangeLen(); 
                
    $content_end_byte $content_length $content_beg_byte 1

                
    $headers[] = 'HTTP/1.0 206 Partial Content'
                
    $headers[] = sprintf('Content-Range: bytes %d-%d/%d'
                    
    $content_beg_byte,$content_end_byte
                    
    $this->getContentFileSize()); 
            }else{ 
                
    $content_length $this->getContentFileSize(); 

                
    $headers[] = 'HTTP/1.0 200 OK'
                
    $headers[] = 'Accept-Ranges: bytes'
            } 
            
    $headers[] = 'Content-Type: application/force-download'
            
    $headers[] = sprintf('Content-Length: %d',$content_length); 
            
    $headers[] = sprintf('Content-Disposition: attachment; filename=%s'
                
    basename($content_filename)); 
            
    $headers[] = 'Connection: close'

            if ( !
    $this->_readOut($headers) ){ 
                return 
    false
            } 
            return 
    true
        } 

        public function 
    initFromHTTPHeaders(){ 
            
    // имя файла-источника д.б. предварительно 
            // установлено посредством ->setContentFileName() 

            
    $file_size $this->_calculateContentFileSize(); 
            if ( !isset(
    $file_size) ){ 
                return 
    false
            } 

            
    // длина источника должна быть определена 
            // эта задача возложена на производные классы 
            
    $this->_setContentFileSize($file_size); 

            
    $txt_range $_SERVER['HTTP_RANGE']; 

            if ( isset(
    $txt_range) ){ 
                
    // выдаем файл порциями 
                
    $this->_setIsPartialContent(true); 

                if ( !
    preg_match("/^bytes=(\d*)-(\d*)$/",$txt_range,$matches) ){ 
                    
    $this->_setLastError
                        
    sprintf("Invalid range specification: %s",$txt_range)); 
                    return 
    false
                } 
                
    $beg_byte $matches[1] ? $matches[1] : 0
                
    $end_byte $matches[2] ? $matches[2] : ($file_size 1); 

                if ( 
    $end_byte >= $file_size ){ 
                    
    // глюка, при которой запрошено больше, чем содержит файл 
                    // в этом случае обрезаем запрошенное до размера файла 
                    
    $end_byte $file_size 1
                } 

                if ( 
    $beg_byte $end_byte ){ 
                    
    // глюка, при которой начало сегмента находится выше 
                    // чем его завершение 
                    // в этом случае меняем местами 
                    
    $temp_var $beg_byte
                    
    $beg_byte $end_byte
                    
    $end_byte $temp_var
                } 

                
    $this->_setContentRangePos($beg_byte); 
                
    $this->_setContentRangeLen($end_byte $beg_byte 1); 
            }else{ 
                
    // не порционный вариант выдачи 
                
    $this->_setIsPartialContent(false); 
                
    $this->_setContentRangeLen($file_size); 
            } 

            return 
    true
        } 

        public function 
    __construct(){ 
            
    parent::__construct(); 

            
    $this->_setIsPartialContent(false); 
            
    $this->_setContentRangePos(0); 
            
    $this->_setContentRangeLen(0); 
            
    $this->_setContentFileSize(0); 
            
    $this->setContentFileName(''); 
        } 

        public function 
    __destruct(){ 

        } 

    // getters/setters 

        
    public function isPartialContent(){ 
            return 
    $this->content_is_partial true false
        } 

        private function 
    _setIsPartialContent($partial_flag=true){ 
            
    $this->content_is_partial $partial_flag true false
            return; 
        } 

        public function 
    getContentRangePos(){ 
            return 
    $this->content_range_pos
        } 

        private function 
    _setContentRangePos($range_pos){ 
            
    $this->content_range_pos $range_pos
            return; 
        } 

        public function 
    getContentRangeLen(){ 
            return 
    $this->content_range_len
        } 

        private function 
    _setContentRangeLen($range_len){ 
            
    $this->content_range_len $range_len
            return; 
        } 

        public function 
    getContentFileName(){ 
            return 
    $this->content_file_name
        } 

        public function 
    setContentFileName($file_name){ 
            
    $this->content_file_name $file_name
            return; 
        } 

        public function 
    getContentFileSize(){ 
            return 
    $this->content_file_size
        } 

        private function 
    _setContentFileSize($file_size){ 
            
    $this->content_file_size $file_size
            return; 
        } 
    // для перекрытия производными классами 

        
    public function _calculateContentFileSize(){ 
            
    $this->_setLastError(sprintf
                
    "Pure-virtual function call: %s::%s",__CLASS__,__FUNCTION__)); 
            return;    
    // возвращает неопределенное, если неудача 
        


        public function 
    _readOut($headers){ 
            
    $this->_setLastError(sprintf
                
    "Pure-virtual function call: %s::%s",__CLASS__,__FUNCTION__)); 
            return 
    false
        } 



    // private 


    [/SPOILER]
    Или так?
    ух длинный код, зачем такой?
    Последний раз редактировалось Kashaket; 21.07.2015 в 00:41.
    Er hat im perfera

  30. #229
    Аватар для Kashaket Kashaket На пути к лучшему Странник
    Сообщений
    119
    Поблагодарили 3 раз(а) в 3 сообщениях
    Цитата Сообщение от Странник Посмотреть сообщение
    Типа, но в DS header не работает....

    Так-что, типа такого
    Пример
    PHP код:
    // Enable gzip compression and download a file.
    $curl = new Curl();
    $curl->setOpt(CURLOPT_ENCODING 'gzip');
    $curl->download('https://www.example.com/image.png''/tmp/myimage.png'); 
    спс
    Er hat im perfera

  31. #230
    Аватар для hail hail На пути к лучшему Странник
    Сообщений
    134
    Поблагодарили 1 раз в 1 сообщении
    Как подключиться к серверу и отправлять данные и принимать

  32. #231
    Аватар для MaZ MaZ На пути к лучшему Новичок
    Сообщений
    1
    Поблагодарили 0 раз(а) в 0 сообщениях
    Всем привет!Подскажите как можно реализовать воспроизведение аудио потока с интернета, задумка примерно следующая, имеется несколько аудио потоков когда человек нажимает прослушать, допустим первый поток, поток должен воспроизводится если человек выберет "воспроизвести" второй поток то первый должен прекратить играть, а второй начать.Если можно опишите подробнее как и что нужно сделать, ибо я полный нуб в php.

  33. #232
    Аватар для Vv00cH?! Vv00cH?! На пути к лучшему Новичок
    Сообщений
    1
    Поблагодарили 0 раз(а) в 0 сообщениях
    Всем привет! Хочу сделать лаунчер для сервера в cs 1.6 , но вот не знаю как сделать несколько вещей :

    1) Как сделать вход/регистрацию в САМОМ лаунчере с отправкой данных на сервер.
    1.1) Как сделать отправку кода подтверждения на емайл? Что бы пользователь мог ввести его при регистрации?
    2) Как сделать окно новостей в котором текст будет браться с сервера?
    3) Как запустить другое приложение из этого лаунчера? кс, собсно)
    4) Так же интересно как сделать сброс пароля на емайл адресс??

    Буду очень-очень благодарен вам за помощь!

  34. #233
    Аватар для Барт Барт Очень опасный тип Барт Очень опасный тип Барт Очень опасный тип Забанненый
    Сообщений
    603
    Поблагодарили 34 раз(а) в 31 сообщениях
    Цитата Сообщение от Vv00cH?! Посмотреть сообщение
    Всем привет! Хочу сделать лаунчер для сервера в cs 1.6 , но вот не знаю как сделать несколько вещей :

    1) Как сделать вход/регистрацию в САМОМ лаунчере с отправкой данных на сервер.
    1.1) Как сделать отправку кода подтверждения на емайл? Что бы пользователь мог ввести его при регистрации?
    2) Как сделать окно новостей в котором текст будет браться с сервера?
    3) Как запустить другое приложение из этого лаунчера? кс, собсно)
    4) Так же интересно как сделать сброс пароля на емайл адресс??

    Буду очень-очень благодарен вам за помощь!
    Была такая идея очень лёгкая но с дизайном не порядки если можешь ты дизайном я скриптами, это же легко у меня сервер с доменом RU есть. Можно оттуда новости, ну кроме обновлений. Я уже делал проект на счёт КС не плохо 1 человеку очень понравилась, а программа то всего вставляла карты модели оружий игроков и спрайты. Мой скайп - pacr652

  35. #234
    Аватар для Manofjoe Manofjoe Очень опасный тип Новичок
    Сообщений
    5
    Поблагодарили 0 раз(а) в 0 сообщениях
    run("ссылка на сайт", false);

    false - открыть прямо сейчас.
    true - открыть после закрытия программы.

  36. #235
    Аватар для Kashaket Kashaket На пути к лучшему Странник
    Сообщений
    119
    Поблагодарили 3 раз(а) в 3 сообщениях
    Цитата Сообщение от Manofjoe Посмотреть сообщение
    false - открыть прямо сейчас.
    true - открыть после закрытия программы.
    ...
    True - ждать закрытия программы и не выполнять код, пока её не закроют(СТОРОННЮЮ ПРОГРАММУ)
    False - продолжить выполнять код, не обращая внимания на открытость программы
    И вообще, True и False можно заменить на 1 и 0
    Er hat im perfera

  37. #236
    Аватар для azazello azazello Не известно кто Новичок
    Сообщений
    1
    Поблагодарили 0 раз(а) в 0 сообщениях
    Здравствуйте, уважаемы форумчане. Пожалуйста, подскажите как "подключить"(активироват , установить и т.п.) socket'ы, если их изначально нет на вкладке internet в DevelStudio(3.0)?
    Заранее спасибо за ответы.

  38. #237
    Аватар для MagicFun MagicFun Очень опасный тип MagicFun Очень опасный тип MagicFun Очень опасный тип MagicFun Очень опасный тип MagicFun Очень опасный тип MagicFun Очень опасный тип Любопытный
    Сообщений
    40
    Поблагодарили 0 раз(а) в 0 сообщениях
    Цитата Сообщение от azazello Посмотреть сообщение
    Здравствуйте, уважаемы форумчане. Пожалуйста, подскажите как "подключить"(активироват , установить и т.п.) socket'ы, если их изначально нет на вкладке internet в DevelStudio(3.0)?
    Заранее спасибо за ответы.
    Для работы с Socket'ами есть спецыальный компонент TSock.
    Последний раз редактировалось MagicFun; 09.09.2016 в 22:03.
    Я не злой , отомщу и забуду , а когда забуду ещё раз отомщу

  39. #238
    Аватар для Няшик Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Живу я здесь
    Сообщений
    1,803
    Поблагодарили 234 раз(а) в 206 сообщениях
    Цитата Сообщение от MagicFun Посмотреть сообщение
    Для работы с Socket'ами есть спецыальный компонент TSock.
    от 13 - 15 летнего школьника.

    Цитата Сообщение от azazello Посмотреть сообщение
    Здравствуйте, уважаемы форумчане. Пожалуйста, подскажите как "подключить"(активироват , установить и т.п.) socket'ы, если их изначально нет на вкладке internet в DevelStudio(3.0)?
    Заранее спасибо за ответы.

    Они есть по умолчанию

    PHP код:
    $fp fsockopen('vk.com'80$errno$errstr30);
    if (!
    $fp) {
        echo 
    "$errstr ($errno)<br />\n";
    } else {
        
    $out "GET /al_search.php?al=1&c[not_safe]=1&c[q]=devel&c[section]=communities&change=1&future=1&offset=0 HTTP/1.1\r\n";
        
    $out .= "Host: vk.com\r\n";
        
    $out .= "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.12011-10-16 20:23:00\r\n";
        
    $out .= "Connection: Close\r\n\r\n";
        
    fwrite($fp$out);
        
    $str '';
        while (!
    feof($fp)) {
            
    $str .= fgets($fp128);
        }
        
    c("memo1")->text $str;
        
    fclose($fp);

    Последний раз редактировалось Няшик; 10.09.2016 в 05:14.

  40. #239
    Аватар для Артер Артер Не известно кто Новичок
    Сообщений
    2
    Поблагодарили 0 раз(а) в 0 сообщениях

    Чат Бот

    Здравствуйте, хотел бы спросить, кто может кинуть нормальную и понятную статейку по созданию простейшего чат бота для вк, без использования iii.ru например. Чтоб Бот отвечал на точно заданные ему команды. Бот вобще нужен в развлекательных целях для бесед. Прошу помочь!

  41. #240
    Аватар для PiEy PiEy Очень опасный тип PiEy Очень опасный тип PiEy Очень опасный тип Путешественник
    Сообщений
    443
    Поблагодарили 40 раз(а) в 40 сообщениях
    Цитата Сообщение от Артер Посмотреть сообщение
    Здравствуйте, хотел бы спросить, кто может кинуть нормальную и понятную статейку по созданию простейшего чат бота для вк, без использования iii.ru например. Чтоб Бот отвечал на точно заданные ему команды. Бот вобще нужен в развлекательных целях для бесед. Прошу помочь!
    По точнее..
    Чат бот для вк ?
    Я его делал, он же делается очень просто, надо только понять смысл, как он у тебя будет работать!

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения