Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите со скриптом скачки! Иногда результат возвращает иногда нет! / 8 сообщений из 8, страница 1 из 1
13.06.2013, 07:51
    #38295609
GeoYouTube
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите со скриптом скачки! Иногда результат возвращает иногда нет!
Здравствуйте пишу в этот раздел потому что в начинающих никто и не ответил! есть скрипт который должен генерировать ссылка для скачки с ютуба! написал на пхп форуме у знатаков тоже и 0 ответов может вы поможете!

index.php

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
<?php

if(isset($_POST['submit']))
{
$url = $_POST['down'];
parse_str( parse_url( $url, PHP_URL_QUERY ), $my_array_of_vars );
}
?>
<!DOCTYPE html>
<html>
<head>
	<title>Youtube Video Details Class Example</title>
	<style type="text/css">
	body{ background-color: #FBFBFB; font-family: Arial; font-size: 12px; color: #333; line-height: 20px; }
	.box { background-color: #fff; border: 1px solid #e2e2e2; width: 730px; padding: 10px; margin: 0px auto;}
	</style>
</head>
<body>

<div class="box">




<form action="" method="post">
<input value="<? echo $url; ?>" autocomplete="off" id="ind" type="text" name="down" style="float:left;height:50px;width:800px;border:2px solid #06bfea;font-size:20px;padding-left:10px;">


 <input type="submit" id="mb" style="background:#06bfea;
  margin-left:-1px;
font-weight:700;
font-size:15px;
width:150px;
height:56px;
color:#fff;
text-shadow:0 1px 0 #338bb1;
cursor:pointer;
-webkit-box-shadow:0 2px 5px #c5dfea;
-moz-box-shadow:0 2px 5px #c5dfea;
-moz-border-radius:0 3px 3px 0;
-webkit-border-radius:0 3px 3px 0;
-khtml-border-radius:0 3px 3px 0;
border-radius:0 3px 3px 0;
padding:7px 14px;" name="submit" value="GO !"  />
</form>



<? if($url){ 


?>


<?php


  include('curl.php');
  include('youtube.php');
  
  $tube = new youtube();
    
  $links = $tube->get('http://www.youtube.com/watch?v='.$my_array_of_vars['v']);
   
  if($links) {

	$x = 0;
    foreach($links as $key){
	echo '<a href="'.$links[$x]['url'].'">'.$links[$x]['ext'].' '.$links[$x]['type'].'</a><br>';
	$x = $x + 1;
}
  }
    
  
} else {
      echo $tube->error;

  }
  



?>




</div>
</body>
</html>



curl.php
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
<?php

class Curl {
	var $callback = false;
	var $secure = false;
	var $conn = false;

	

	function Curl($u = false) {
		$this->conn = curl_init();


	
	}


	function doRequest($method, $url, $vars) {

		$ch = $this->conn;

		$user_agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";

		curl_setopt($ch, CURLOPT_URL, $url);
		if ($this->header) {
			curl_setopt($ch, CURLOPT_HEADER, 1);
		} else {
		    curl_setopt($ch, CURLOPT_HEADER, 0);
		}
		curl_setopt($ch, CURLOPT_USERAGENT,$user_agent);
     

		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);


		$data = curl_exec($ch);



		if ($data) {
			if ($this->callback)
			{
				$callback = $this->callback;
				$this->callback = false;
				return call_user_func($callback, $data);
			} else {
				return $data;
			}
		} else {
			return false;
		}
	}

	function get($url) {
		return $this->doRequest('GET', $url, 'NULL');
	}
	

}

?>



и файл youtube.php


Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
<?php


class youtube {
    
    var $conn = false;
    var $username = "";
    var $password = "";
    var $error = false;
          
    function get($url)
    {
        $this->conn = new Curl('youtube');
        
        $html = $this->conn->get($url);

     

        if(!preg_match('/stream_map=(.[^&]*?)&/i',$html,$match))
        {
			
            $this->error = "Error Locating Downlod URL's";
            return false;
        }

        if(!preg_match('/stream_map=(.[^&]*?)(?:\\\\|&)/i',$html,$match))
        {
            return false;
        }

        $fmt_url =  urldecode($match[1]);
   
        $urls = explode(',',$fmt_url);
                
        $foundArray = array();

        foreach($urls as $url)
        {            
            if(preg_match('/itag=([0-9]+)/',$url,$tm) && preg_match('/sig=(.*?)&/', $url , $si) && preg_match('/url=(.*?)&/', $url , $um))
            {
                $u = urldecode($um[1]);
                $foundArray[$tm[1]] = $u.'&signature='.$si[1];
            }
        }
                        
        $typeMap = array();

        $typeMap[13] = array("13", "3GP", "176x144");
        $typeMap[17] = array("17", "3GP", "176x144");
        $typeMap[36] = array("36", "3GP", "320x240");
        $typeMap[5]  = array("5", "FLV", "400x226");
        $typeMap[6]  = array("6", "FLV", "640x360");
        $typeMap[34] = array("34", "FLV", "640x360");
        $typeMap[35] = array("35", "FLV", "854x480");
        $typeMap[43] = array("43", "WEBM", "640x360");
        $typeMap[44] = array("44", "WEBM", "854x480");
        $typeMap[45] = array("45", "WEBM", "1280x720");
        $typeMap[18] = array("18", "MP4", "480x360");
        $typeMap[22] = array("22", "MP4", "1280x720");
        $typeMap[37] = array("37", "MP4", "1920x1080");
        $typeMap[33] = array("38", "MP4", "4096x230");

        
        $videos = array();
        
        foreach($typeMap as $format => $meta) {
            if (isset($foundArray[$format])) {
                $videos[] = array('ext' => strtolower($meta[1]) , 'type' => $meta[2], 'url' => $foundArray[$format]);
            } 
        }
		
		
		if(empty($videos)){$this->get($url);}else{return $videos;}
		 
		

       

        
    }
	
	
    
}?>



так вот в чём проблема вбейте туда ссылку
YouTube Video
...
Рейтинг: 0 / 0
13.06.2013, 08:44
    #38295637
GeoYouTube
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите со скриптом скачки! Иногда результат возвращает иногда нет!
GeoYouTube,

ну или не знаю как написать если внутри вроде $data = curl_exec($ch);
пустая то заного отправить запрос и так пока не вернёт не пустой массив! хоть какие то варианты скажите
...
Рейтинг: 0 / 0
13.06.2013, 09:52
    #38295698
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите со скриптом скачки! Иногда результат возвращает иногда нет!
Цикл. Условие выхода из цикла - массив с нужными данными.
...
Рейтинг: 0 / 0
13.06.2013, 09:56
    #38295708
GeoYouTube
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите со скриптом скачки! Иногда результат возвращает иногда нет!
vkle,

Извините можете написать где и как? ! правда! я не халявщик! просто настолько задолбал скрипт что и думать толком не могу!
...
Рейтинг: 0 / 0
13.06.2013, 10:10
    #38295728
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите со скриптом скачки! Иногда результат возвращает иногда нет!
GeoYouTubeнастолько задолбал скрипт что и думать толком не могу!Займитесь чем-нибудь другим. На пляж сходите, попейте пивка... А потом в светлую отдохнувшую голову и мысли правильные придут.

PS: лень разбираться в коде.
...
Рейтинг: 0 / 0
13.06.2013, 10:14
    #38295733
GeoYouTube
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите со скриптом скачки! Иногда результат возвращает иногда нет!
vkle,

мда уж! спасибо)

что то вроде тут но не могу условие правильное поставить!

$tube = new youtube();

$links = $tube->get('http://www.youtube.com/watch?v='.$my_array_of_vars['v']);


if(empty($links))
{

while(){$links = $tube->get('http://www.youtube.com/watch?v='.$my_array_of_vars['v']);}

}

какое условие можно?
...
Рейтинг: 0 / 0
13.06.2013, 10:19
    #38295738
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите со скриптом скачки! Иногда результат возвращает иногда нет!
Вот это уж точно Вам виднее. var_dump() в зубы, и смотрите что возвращается в случае успеха и в случае неудачи. По полученным данным думать над способом определения успеха/неудачи.
...
Рейтинг: 0 / 0
13.06.2013, 10:43
    #38295782
GeoYouTube
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите со скриптом скачки! Иногда результат возвращает иногда нет!
vkle,

Понятно! Спасибо попробую разобраться!
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите со скриптом скачки! Иногда результат возвращает иногда нет! / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]