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 :: jQuery $.get => get.php?video{id} => curl(id)

 PHP.SU

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


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

> Описание: Запуск get.php через js, в нем курлом забирается страница, возвращает строку, которая найдена регуляркой
Interes
Отправлено: 01 Декабря, 2013 - 11:42:14
Post Id


Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Сент. 2012  


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




Здравствуйте.
Вроде все написано верно. Но url остается равен 'http://www.kernel-video-sharing.com/kt_player/720p.mp4', данные в get.php приходят, но походу курлом в get.php страница не тянется. В чем проблема? Возможно ли такое? Какие другие решения могут быть?
CODE (javascript):
скопировать код в буфер обмена
  1. <script type="text/javascript">
  2.         var url = 'http://www.kernel-video-sharing.com/kt_player/720p.mp4';
  3.         $.get('/kt_player/get.php', {video:"/4108890/"}, function(data) {
  4.                 url = data;
  5.         }, "text");
  6.  
  7.     var flashvars = {
  8.         hide_controlbar: '1',
  9.         hide_style: 'fade',
  10.         preview_url: 'http://www.kernel-video-sharing.com/kt_player/poster.jpg',
  11.         bt: '5',
  12.         video_url: url,
  13.         video_url_text: '720p'
  14.     };
  15.  
  16.     var params = {allowfullscreen: 'true', allowscriptaccess: 'always'};
  17.     kt_player('kt_player', '/kt_player/kt_player.swf', '854', '480', flashvars, params);
  18. </script>



PHP:
скопировать код в буфер обмена
  1. include('kt_player/GET.class.php');
  2.  
  3. if(isset($_GET['video'])){
  4.  
  5.         echo getflv($_GET['video']);
  6.        
  7. }
  8. function getflv($video){
  9.  
  10.         $c = GET::request('http://www.com'.$video);
  11.         $pattern = '~&url=(http%3A%2F%2F.*)&url_bigthumb=~i';
  12.         preg_match_all($pattern, $c['content'], $matches);
  13.         return $matches[1][0]; //ссылка на flv файл
  14.        
  15. }

(Отредактировано автором: 01 Декабря, 2013 - 11:44:24)

 
 Top
Мелкий Супермодератор
Отправлено: 01 Декабря, 2013 - 11:55:15
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Расставьте console.log или alert'ы по JS коду. Удивитесь порядку исполнения асинхронного кода.


-----
PostgreSQL DBA
 
 Top
Interes
Отправлено: 01 Декабря, 2013 - 12:41:34
Post Id


Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Сент. 2012  


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




Мелкий пишет:
Расставьте console.log или alert'ы по JS коду. Удивитесь порядку исполнения асинхронного кода.

CODE (javascript):
скопировать код в буфер обмена
  1. <script type="text/javascript">
  2.         var url = 'http://www.kernel-video-sharing.com/kt_player/720p.mp4';
  3. alert(1);
  4.         $.get('/kt_player/get.php', {video:"/4108890/"}, function(data) {
  5.                 url = data;
  6. alert(2);
  7.         }, "text");
  8. alert(3);
  9.     var flashvars = {
  10.         hide_controlbar: '1',
  11.         hide_style: 'fade',
  12.         preview_url: 'http://www.kernel-video-sharing.com/kt_player/poster.jpg',
  13.         bt: '5',
  14.         video_url: url,
  15.         video_url_text: '720p'
  16.     };
  17. alert(4);
  18.     var params = {allowfullscreen: 'true', allowscriptaccess: 'always'};
  19. alert(5);
  20.     kt_player('kt_player', '/kt_player/kt_player.swf', '854', '480', flashvars, params);
  21. alert(6);
  22. </script>

выполняются 1, 3, 4, 5, 6 алерты. 2 алерт не выполнился. В js не силен. В чем причина?
И как быть в таком случае? Мне нужно получить урл flv ролика с внешнего сайта(урл меняется динамично), и подставить этот урл в код плеера.

(Отредактировано автором: 01 Декабря, 2013 - 12:56:01)

 
 Top
dXdYdZ
Отправлено: 01 Декабря, 2013 - 20:19:54
Post Id


Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Нояб. 2013  


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




Может, у Вас висит скрипт /kt_player/get.php, раз алерт 2 не выскакивает? Попробуйте из браузера запустить /kt_player/get.php с требуемым Вами параметром. Там же метод get используется, так что сложностей быть не должно. И посмотрите, что он Вам вернёт.
 
 Top
Interes
Отправлено: 01 Декабря, 2013 - 21:10:46
Post Id


Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Сент. 2012  


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




dXdYdZ пишет:
Может, у Вас висит скрипт /kt_player/get.php, раз алерт 2 не выскакивает? Попробуйте из браузера запустить /kt_player/get.php с требуемым Вами параметром. Там же метод get используется, так что сложностей быть не должно. И посмотрите, что он Вам вернёт.

Запустил. Вывел в браузере строку на flv файл.
Такое ощущение, что js не ждет ответа от get.php и следовательно ничего не возвращается.
сам get.php курлом грузит страницу по переданному параметру из js, регуляркой дергает урл flv и возвращает его.
 
 Top
tuareg
Отправлено: 01 Декабря, 2013 - 21:27:44
Post Id


Участник


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


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




Именно это "асинхронность" Улыбка
По теме либо все пихайте в
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function(data) {
  3.                 url = data;
  4. alert(2);
  5. }
  6.  

либо как то так
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var url = 'http://www.kernel-video-sharing.com/kt_player/720p.mp4',
  3. myAjax = $.get('/kt_player/get.php', {video:"/4108890/"}, "text");
  4. myAjax.done(function(data){
  5. url = data
  6. alert(3);
  7.     var flashvars = {
  8.         hide_controlbar: '1',
  9.         hide_style: 'fade',
  10.         preview_url: 'http://www.kernel-video-sharing.com/kt_player/poster.jpg',
  11.         bt: '5',
  12.         video_url: url,
  13.         video_url_text: '720p'
  14.     };
  15. alert(4);
  16.     var params = {allowfullscreen: 'true', allowscriptaccess: 'always'};
  17. alert(5);
  18.     kt_player('kt_player', '/kt_player/kt_player.swf', '854', '480', flashvars, params);
  19. alert(6);
  20.  
  21. })
  22.  
 
 Top
dXdYdZ
Отправлено: 01 Декабря, 2013 - 21:40:15
Post Id


Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Нояб. 2013  


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




Да, точно. Только почему вообще не срабатывает alert(2), вот что не понятно.
 
 Top
tuareg
Отправлено: 01 Декабря, 2013 - 21:44:23
Post Id


Участник


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


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




А так срабатывает ?
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. /kt_player/get.php?video=/4108890/
  3.  

Откройте прямо в браузере.
 
 Top
Interes
Отправлено: 01 Декабря, 2013 - 21:52:03
Post Id


Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Сент. 2012  


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




tuareg пишет:


либо как то так
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var url = 'http://www.kernel-video-sharing.com/kt_player/720p.mp4',
  3. myAjax = $.get('/kt_player/get.php', {video:"/4108890/"}, "text");
  4. myAjax.done(function(data){
  5. url = data
  6. alert(url);
  7.     var flashvars = {
  8.         hide_controlbar: '1',
  9.         hide_style: 'fade',
  10.         preview_url: 'http://www.kernel-video-sharing.com/kt_player/poster.jpg',
  11.         bt: '5',
  12.         video_url: url,
  13.         video_url_text: '720p'
  14.     };
  15. alert(4);
  16.     var params = {allowfullscreen: 'true', allowscriptaccess: 'always'};
  17. alert(5);
  18.     kt_player('kt_player', '/kt_player/kt_player.swf', '854', '480', flashvars, params);
  19. alert(6);
  20.  
  21. })
  22.  

Сделал так. alert(url) пустая строка.

(Отредактировано автором: 01 Декабря, 2013 - 21:53:16)

 
 Top
tuareg
Отправлено: 01 Декабря, 2013 - 21:54:28
Post Id


Участник


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


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




Данные от сервера не приходят
(Добавление)
Вообще alert выводится?
 
 Top
Interes
Отправлено: 01 Декабря, 2013 - 21:59:16
Post Id


Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Сент. 2012  


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




tuareg пишет:
А так срабатывает ?
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. /kt_player/get.php?video=/4108890/
  3.  

Откройте прямо в браузере.

Руками открывать норм. Возвращается строка с урлом. В js прописать в get просто путь, тоже не работает.
 
 Top
Interes
Отправлено: 01 Декабря, 2013 - 22:02:08
Post Id


Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Сент. 2012  


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




tuareg пишет:
Данные от сервера не приходят
(Добавление)
Вообще alert выводится?

Да выводится пустой алерт.
Прикреплено изображение (Нажмите для увеличения)
123.jpg
 
 Top
tuareg
Отправлено: 01 Декабря, 2013 - 22:02:58
Post Id


Участник


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


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




Тогда консоль (f12 хром, файербаг) смотрим и пишем сюда, что там Улыбка
 
 Top
Interes
Отправлено: 01 Декабря, 2013 - 22:08:59
Post Id


Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Сент. 2012  


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




tuareg пишет:
Тогда консоль (f12 хром, файербаг) смотрим и пишем сюда, что там Улыбка


GET http://url[dot]ru/kt_player/get.php?video=/4108890/ 200 OK 284ms
во вкладке "ответ", "html" пусто.
(Добавление)
Тьфу ты Радость на серве файлы не обновил
CODE (javascript):
скопировать код в буфер обмена
  1. ar url = 'http://www.kernel-video-sharing.com/kt_player/720p.mp4',
  2.  
  3. myAjax = $.get('/kt_player/get.php', {video:"/4108890/"}, "text");
  4.  
  5. myAjax.done(function(data){
  6.  
  7. url = data
  8.  
  9. alert(url);
  10.  
  11.     var flashvars = {
  12.  
  13.         hide_controlbar: '1',
  14.  
  15.         hide_style: 'fade',
  16.  
  17.         preview_url: 'http://www.kernel-video-sharing.com/kt_player/poster.jpg',
  18.  
  19.         bt: '5',
  20.  
  21.         video_url: url,
  22.  
  23.         video_url_text: '720p'
  24.  
  25.     };
  26.  
  27. alert(4);
  28.  
  29.     var params = {allowfullscreen: 'true', allowscriptaccess: 'always'};
  30.  
  31. alert(5);
  32.  
  33.     kt_player('kt_player', '/kt_player/kt_player.swf', '854', '480', flashvars, params);
  34.  
  35. alert(6);
  36.  
  37.  
  38.  
  39. })

Работает! Спасибо!
Прикреплено изображение (Нажмите для увеличения)
123.jpg
 
 Top
dXdYdZ
Отправлено: 01 Декабря, 2013 - 22:12:47
Post Id


Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Нояб. 2013  


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




По-моему Вы забыли точку с запятой после url=data. Хотя, должно работать и так.

(Отредактировано автором: 01 Декабря, 2013 - 22:15:13)

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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB