Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Прогресс бар для curl

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
rafaello9
Отправлено: 09 Января, 2016 - 13:58:31
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Здравствуйте!
Есть сервис для проверки уникальности контента онлайн. http://www[dot]content-watch[dot]ru/text/
Там можно ввести для пробы любой произвольный текст и проверить, это бесплатно. Кстати, там можно увидеть импровизированный прогресс бар в виде круга.
На этом сервисе есть API.
Я буду взаимодействовать с сервисом через API. После того, как мой скрипт сделал запрос, мне необходимо вывести наглядно прогресс бар, так как сам процесс запрос занимает некоторое время.
Они предоставили код для подключения:
PHP:
скопировать код в буфер обмена
  1. $post_data = array(
  2.     'key' => 'EC5AvamfYHlWV', // ваш ключ доступа (параметр key) со страницы http://www.content-watch.ru/api/request/
  3.     'text' => $text,
  4.     'test' => 0 // при значении 1 вы получите валидный фиктивный ответ (проверки не будет, деньги не будут списаны)
  5.     );
  6.  
  7. $curl = curl_init();
  8. curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
  9. curl_setopt($curl, CURLOPT_POST, TRUE);
  10. curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
  11. curl_setopt($curl, CURLOPT_URL, 'http://www.content-watch.ru/public/api/');
  12. $return = json_decode(trim(curl_exec($curl)), TRUE);
  13. curl_close($curl);
  14. // далее идет обработка ответа

После того я добавил две строки. Получилось так:
PHP:
скопировать код в буфер обмена
  1. $curl = curl_init();
  2. curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
  3. curl_setopt($curl, CURLOPT_POST, TRUE);
  4. curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
  5. curl_setopt($curl, CURLOPT_NOPROGRESS, false );
  6. curl_setopt( $ch, CURLOPT_PROGRESSFUNCTION, 'progressCallback' );
  7. curl_setopt($curl, CURLOPT_URL, 'http://www.content-watch.ru/public/api/');
  8. $return = json_decode(trim(curl_exec($curl)), TRUE);
  9. curl_close($curl);

Далее моих мозгов не хватает. Пожалуйста, помогите!
Как прописать функцию progressCallback();
А самое главное, как увязать эту функцию с выводом на экран. Вот примеры:
http://falbar[dot]ru/article/id/66
http://sergey-oganesyan[dot]ru/javas[dot][dot][dot]_javascript[dot]html

В сети я нашел готовые решения, но они все для отправки/загрузки файла, а у меня немного другая ситуация...

(Отредактировано автором: 09 Января, 2016 - 13:59:43)

 
 Top
Viper
Отправлено: 10 Января, 2016 - 00:09:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




rafaello9 а смысл делать прогресбар для того, что нельзя заведомо просчитать?
Сервер может ответить в течение 1 минуты, а может и за доли секунд, и каким же макаром(раком) вы решили это время узнавать?


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
rafaello9
Отправлено: 10 Января, 2016 - 02:22:27
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Так в том то и дело, что если бы я знал, то не спрашивал бы...
Согласно документации http://php.net/manual/ru/functio....curl-setopt.php
в параметре CURLOPT_PROGRESSFUNCTION есть несколько параметров.
Я предполагаю два варианта:
1. Как тот использовать эти параметры
2. Зацепиться за момент окончания процесса. То есть, при самом процессе прогресс бар будет показывать что нибудь, а в момент окончания процесса тут же сообщит об этом...
 
 Top
Viper
Отправлено: 10 Января, 2016 - 09:41:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




https://gist[dot]github[dot]com/bdunogier/1030450
Правда делать это на клиенте больше на костыль похоже.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
rafaello9
Отправлено: 10 Января, 2016 - 11:30:31
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Спасибо за помощь.
Все таки я остановился на решении.
Тупо влепить прогресс бар без привязки к curl. Как только процесс закончится, выходит сообщение об успешном окончании или об ошибке.
Ну и что, что он не будет совпадать с реальным процессом. Это не так страшно.

Viper! Спасибо за помощь!
К сожалению количества моих сообщений не хватает, чтобы щелкнуть ссылку Спасибо.

(Отредактировано автором: 10 Января, 2016 - 11:32:05)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB