Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function get_videolinks_pornhub_script($pornhub_contents)
- {
- // Очистим всю страницу от переводов строки
- $pornhub_contents = str_replace("\n", "", $pornhub_contents);
- preg_match("!player_mp4_seek = \"(ms|start)\";(.+?)loadScriptUniqueId!", $pornhub_contents, $matches);
- if (!isset($matches[2]))
- {
- return NULL;
- }
- // Получим основную часть скрипта
- $script_content = $matches[2];
- // Очистим скрипт от комментариев
- $script_content = preg_replace('/(\/\*.+?\*\/)/', "", $script_content);
- // Разобьем скрипт на мини-скрипты, в каждом из которых содержится список переменных, и правило склейки переменных для получения урла определенного качества
- $arr_scripts = array();
- while (true)
- {
- preg_match('/var .+?;flashvars_\d{1,20}.+?;/', $script_content, $matches);
- if (!isset($matches[0]))
- {
- break;
- }
- $cur_script = $matches[0];
- $arr_scripts[] = $cur_script;
- $script_content = str_replace($cur_script, '', $script_content);
- }
- if (count($arr_scripts) == 0)
- {
- return NULL;
- }
- $arr_quality_link = array(); // Итоговый массив "качество" => "ссылка"
- foreach ($arr_scripts as $script)
- { // Цикл по мини-скриптам
- // Очистим текущий скрипт от flashvars_
- $script = preg_replace('/((var )?flashvars_.+?;)/', "", $script);
- // Получим правила составления урла и качество этого урла
- preg_match('/var quality_(\d{1,5})p=(.+?);/', $script, $matches);
- if (!isset($matches[1]) || !isset($matches[2]))
- {
- continue;
- }
- $cur_quality = $matches[1];
- $cur_chain_vars = $matches[2];
- // Очистим скрипт от quality_777p (после чего остается только список переменных с кусочками строки)
- $script = preg_replace('/((var )?quality_\d{1,4}p.+?;)/', "", $script);
- // Получим список с переменными которые содержат кусочки строк
- $arr_vars_str = explode(';', $script);
- for ($i = 0;$i < count($arr_vars_str);$i++)
- {
- $arr_vars_str[$i] = trim($arr_vars_str[$i]); // очистка пробелов спереди и сзади
- $arr_vars_str[$i] = preg_replace('/^var /', '', $arr_vars_str[$i]); // удаление var
- $arr_vars_str[$i] = str_replace(' ', '', $arr_vars_str[$i]); // очистка оставшихся пробелов
- preg_match("!^(.+?)=(.+?)$!", $arr_vars_str[$i], $matches);
- if (!isset($matches[0]))
- {
- continue;
- }
- $cur_name = $matches[1];
- $cur_value = $matches[2];
- $arr_values_pieces = explode('+', $cur_value);
- $cur_value = '';
- foreach ($arr_values_pieces as $value_piece)
- {
- $value_piece = str_replace('"', '', $value_piece); // очистка ковычек
- $cur_value .= $value_piece;
- }
- $arr_var_value[$cur_name] = $cur_value;
- }
- // Склейка переменных в соответствии с правилом
- $cur_chain_vars = str_replace(' ', '', $cur_chain_vars);
- $arr_chain_vars = explode('+', $cur_chain_vars);
- $cur_link = '';
- foreach ($arr_chain_vars as $chain_var)
- {
- $cur_link .= $arr_var_value[$chain_var];
- }
- if (strpos($cur_link, '&clientip=') !== false || strpos($cur_link, '&ip=') !== false)
- {
- $ip_binding = true;
- return NULL;
- }
- if (count($arr_quality_link) == 0)
- {
- array_push($arr_quality_link, array(
- 'q' => 0,
- 'url' => $cur_link
- ));
- }
- array_push($arr_quality_link, array(
- 'q' => $cur_quality,
- 'url' => $cur_link
- ));
- }
- if (count($arr_quality_link) == 0)
- {
- return false;
- }
- return $arr_quality_link;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement