Connection limit has been reached. Please come back later.
MyVidster PRO Users are not restricted by the connection limit. Support MyVidster and become a PRO User today!
Connection limit has been reached. Please come back later.
MyVidster PRO Users are not restricted by the connection limit. Support MyVidster and become a PRO User today!
We notice that you like our web site and you are also running Adblock :(
We 100% understand why you are running Adblock, but we still need ad revenue to keep the servers running. Please disable Adblock (or add myvidster.com to your whitelist) to continue using our wonderful service. You can also upgrade to MyVidster PRO which includes ad removal for popular bookmarked tube sites and you are allow to use your Adblock!
';
$script = '';
break;
case 21: //for vids that do not allow hotlinking :(
case 1: //google video
case 2: //video is revver
case 5: //video is iflim
case 6: //video is blip
case 8: //video is myspace
case 8: //video is myspace
case 9: //video is jumpcut
case 10: //video is grouper
case 11: //video is break
case 13: //video is livevideo
case 17: //video is aol hell
case 95: //Windows Media
case 98:
//case 49:
$w=$glb_vid_w;
$h=$glb_vid_h;
if($type_id == "down" || $type != 21)
$msg="The site hosting this video has been reported being down.
If the site is back up and running, please contact us.";
else
$msg="Video embed is not available.
Please visit the source site by clicking on the thumbnail below.";
$embedcode ='
'.$msg.'
';
$embedcode2 = 'embed code not available';
$script = '';
break;
}
$embedcodes[0] = $embedcode;
$embedcodes[1] = $embedcode2;
$embedcodes[2] = $script;
$embedcodes['h'] = $h;
$embedcodes['w'] = $w;
$embedcodes['og_video'] = $og_video;
$embedcodes['tip'] = $tip;
$embedcodes['override_type'] = $override_type;
return $embedcodes;
}
function is_site_down($type_id) {
global $mysql_link_slave;
global $mysql_link_slave;
global $mysql_link_slave;
global $user_id;
//return false;
if($mysql_link_slave) {
$query = "SELECT domain FROM myvidster_site_down WHERE status = 1";
$result_name = mysql_query($query,$mysql_link_slave);
while ($row = mysql_fetch_array($result_name)) {
$domains[] = $row['domain'];
}
}
if($domains) {
foreach($domains as $domain) {
if(strstr($type_id,$domain)){
return true;
break;
}
}
}
return false;
}
function create_bookmarklet() {
global $glb_site_width;
$w = $glb_site_width+20;
$js_code="javascript:(function(){window.open('https://www.myvidster.com/share.php?p=4&url='+encodeURIComponent(window.location.href),'myvwindow','width=$w, height=760');}());";
$video_bookmarklet='Use MyVidster's Video Bookmarklet to collect your favorite videos from any website!
Drag and drop this bookmarklet to the bookmark toolbar of your browser.
Note, we are retiring our browser extensions because the folks at Google were trying to use it to control us and NO ONE controls MyVidster!
';
return $video_bookmarklet;
}
function fetch_ad($adult_filter,$spot='ntv1',$private='adult') {
global $glb_sex_pref;
global $glb_meta_type;
global $glb_filter_by;
global $user_id;
global $mysql_link_slave;
global $mysql_link_slave2;
global $mysql_link_slave2;
$pornmd="";
if(!$adult_filter && $private) {
if($glb_meta_type==1) $sex_pref = 'straight';
elseif($glb_meta_type==2) $sex_pref = 'gay';
elseif($glb_filter_by=='straight') $sex_pref = 'straight';
elseif($glb_filter_by=='gay') $sex_pref = 'gay';
elseif($glb_sex_pref==1) $sex_pref = 'straight';
elseif($glb_sex_pref==2) $sex_pref = 'gay';
else $sex_pref = 'gay';
}
else
$sex_pref = 'family';
$number = date('i');
if($sex_pref == 'gay') {
if($spot == 'ntv1') {
$sql="select m_value from myvidster_vars where m_name='fetch_ad' and m_key=2";
$var_result = mysql_query($sql,$mysql_link_slave2);
$var_row = mysql_fetch_assoc($var_result);
$my_ad=$var_row['m_value'];
//was $my_ad_exo
$my_ad='
';
/*
$my_ad="";
*/
}
elseif($spot == 'cam') {
$my_ad='';
}
else {
$my_ad='
';
}
}
elseif($sex_pref == 'straight') {
if($spot == 'ntv1') {
$sql="select m_value from myvidster_vars where m_name='fetch_ad' and m_key=1";
$var_result = mysql_query($sql,$mysql_link_slave2);
$var_row = mysql_fetch_assoc($var_result);
$my_ad=$var_row['m_value'];
$my_ad='
';
/*
$my_ad="";
*/
}
elseif($spot == 'cam') {
$my_ad='';
}
else {
$my_ad_disable='
';
}
}
else { //family friendly
if($spot == 'ntv1') {
$my_ad='
';
}
}
return $my_ad;
}
function create_analytics($video_type="general") {
$code_legacy="
";
$code="
";
//$code=false;
return $code;
}
function create_header($filter_by=NULL,$q=NULL,$https=false) {
global $user_id;
global $user_name;
global $adult_filter;
global $default_gallery;
global $anc1;
global $glb_valid_email;
global $glb_myvideos;
global $glb_new_connections;
global $glb_notify;
global $glb_sex_pref;
global $glb_profile_photo;
global $glb_locale;
global $glb_locale_txt;
global $adult_filter;
global $glb_site_width;
global $mysql_link_slave;
if(!$glb_myvideos) $glb_myvideos = ""._("my videos")."";
$annoucement = "";
$chat_djs = "";
$sel_user = "";
//anouncements now control by cookie anc1_read_9 and not db, so no updates needed mrg
$anc1 = false;
if ($anc1) {
$tweet = '1258132302510657536';
$title = "MyVidster is under maintenance yet again :(";
$anc_msg="I need to reboot the master server, more updates. Hey membership is CHEAP for the last 10 years for a reason.";
//$anc_msg="We lost our primary database server (RIP) and are in the processs of restoring the data on a new server, sorry the inconvenience";
//$anc_msg = lastest_tweets($tweet);
//$anc_msg="I always find a way. Please give us a few hours to upgrade our hardware. Also sorry for all the downtime, please forgive me (only if I am successful).";
if($tweet) {
$title_html = '
';
return $pagination;
}
function getPaginationString($page = 1, $totalitems, $limit = 15, $adjacents = 1,
$targetpage = "/", $id = 0, $thumbnum=1,$mini=false)
{
//defaults
if(!$adjacents) $adjacents = 1;
if(!$limit) $limit = 15;
if(!$page) $page = 1;
if(!$targetpage) $targetpage = "/";
//other vars
$prev = $page - 1; //previous page is page - 1
$next = $page + 1; //next page is page + 1
$lastpage = ceil($totalitems / $limit); //lastpage is = total items / items per page, rounded up.
$lpm1 = $lastpage - 1; //last page minus 1
$padding="";
$margin="";
if(!$mini) {
$nxt_txt='>'._("next").' »';
$pre_txt='>« '._("prev");
$max_lastpage = 8;
}
else {
$nxt_txt='style="font-size:1.25em;padding-top:0px; padding-bottom:1px;"> » ';
$pre_txt='style="font-size:1.25em;padding-top:0px; padding-bottom:1px;"> « ';
$max_lastpage = 7;
}
/*
Now we apply our rules and draw the pagination object.
We're actually saving the code to a variable in case we want to draw it more than once.
*/
$pagination = "";
if($lastpage > 1)
{
$pagination .= "
1)
$pagination .= "";
else
$pagination .= "";
//pages
if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination .= "$counter";
else
$pagination .= "$counter";
}
}
elseif($lastpage >= 7 + ($adjacents * 2)) //enough pages to hide some
{
//close to beginning; only hide later pages
if($page < 1 + ($adjacents * $max_lastpage))
{
for ($counter = 1; $counter < $max_lastpage + ($adjacents * 2); $counter++)
{
if ($counter == $page)
$pagination .= "$counter";
else
$pagination .= "$counter";
}
$pagination .= "...";
$pagination .= "$lpm1";
$pagination .= "$lastpage";
}
//in middle; hide some front and some back
elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
{
$pagination .= "1";
$pagination .= "2";
$pagination .= "...";
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
{
if ($counter == $page)
$pagination .= "$counter";
else
$pagination .= "$counter";
}
$pagination .= "...";
$pagination .= "$lpm1";
$pagination .= "$lastpage";
}
//close to end; only hide early pages
else
{
$pagination .= "1";
$pagination .= "2";
$pagination .= "...";
for ($counter = $lastpage - (1 + ($adjacents * 3)); $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination .= "$counter";
else
$pagination .= "$counter";
}
}
}
//next button
if ($page < $counter - 1)
$pagination .= "";
else
$pagination .= "";
$pagination .= "
\n";
}
return $pagination;
}
function get_myVidsterAD() {
global $glb_no_ads;
global $glb_last_vid_access;
global $adult_filter;
global $user_id;
$myVidsterAD="";
$myVidsterAD2="";
if($adult_filter) {
$vid_access=0;
}
else {
if(!isset($glb_last_vid_access)) $vid_access=0;
else $vid_access=$glb_last_vid_access;
}
$myv_pro_txt_ad='';
if (!isset($_SESSION['ad_rotate_misc'])) {
$ad_rotate_misc=mt_rand(0, 3);
}
else $ad_rotate_misc=$_SESSION['ad_rotate_misc'];
switch ($ad_rotate_misc) {
case 0:
$adult_ad = fetch_ad('a1');
$ff_ad = fetch_ad('f1');
$ad_rotate_misc=1;
break;
case 1:
$adult_ad = fetch_ad('a2');
$ff_ad = fetch_ad('f2');
$ad_rotate_misc=2;
break;
case 2:
$adult_ad = fetch_ad('a3');
$ff_ad = fetch_ad('f1');
$ad_rotate_misc=3;
break;
case 3:
default:
$adult_ad = fetch_ad('a4');
$ff_ad = fetch_ad('f2');
$ad_rotate_misc=0;
break;
}
$_SESSION['ad_rotate_misc']=$ad_rotate_misc;
if ($vid_access == 2)
$myVidsterAD=$adult_ad;
else
$myVidsterAD=$ff_ad;
if($myVidsterAD && !$glb_no_ads) $myVidsterAD='
'.$myVidsterAD.'
'.$myv_pro_txt_ad.'
';
else $myVidsterAD='';
return $myVidsterAD;
}
function promoted_app() {
$myv_ad_title = 'You should download the MyVidster App!';
$myv_ad_url = '/docs/mobile';
$myv_ad_thumb = '//cdn1.myvidster.com/ads/android-ios175.jpg';
$myv_ad_desc = 'Sponsored AD by MyVidster - Collect the videos you love';
$myv_ad_desc ='You can now take MyVidster to go and enjoy all of its benefits in the palm of your hand.';
$profile_url="
";
$myv_ad_target="";
break;
case 5:
$myv_ad_title = 'Love MyVidster? UPGRADE to MyVidster PRO!';
$myv_ad_url = '/get_pro.php?ref=homepage';
$myv_ad_thumb = '/images/badges/gold-coin-pro-57.png';
$myv_ad_desc = 'Sponsored AD by MyVidster - Collect the videos you love';
$myv_ad_desc ='Ad-free browsing, PRO badge and rates starting at $4.99 a month.';
$profile_url="
';
return $myv_videos;
}
function mongo_notify_insert($tmp_user_id,$type,$type_id,$master_id,$video_id,$thumbnail,$posted_by,$message,$posted,$external_url) {
global $mongo_link_master;
global $mysql_link_slave;
global $mysql_link_slave;
global $glb_user_token;
if(!$mongo_link_master) {
return true;
}
if(!$glb_user_token || !$tmp_user_id) return true;
$sql="SELECT b.id FROM myvidster_block_user b
JOIN myvidster_user u ON u.id = b.block_user_id
WHERE b.user_id = $tmp_user_id
and u.disp_name = '$posted_by'
and b.status = 1
limit 1";
$result = mysql_query($sql,$mysql_link_slave);
if($result) {
$row = mysql_fetch_assoc($result);
if($row['id']) {
return false;
}
}
$message = htmlspecialchars($message);
$collection = $mongo_link_master->notify;
if($collection) {
if($posted) $posted_formated = new MongoDate(strtotime($posted));
else $posted_formated = new MongoDate();
$obj = array(
"user_id" => "$tmp_user_id",
"type" => "$type",
"type_id" => "$type_id",
"master_id" => "$master_id",
"video_id" => "$video_id",
"thumbnail" => "$thumbnail",
"posted_by" => "$posted_by",
"message" => "$message",
"posted" => $posted_formated,
"external_url" => "$external_url",
"status" => "1" );
$collection->insert($obj);
}
if($type == "share") {
$sql = "select email from myvidster_user where id='$tmp_user_id' and notify_disable not like '%email_video%' and valid_email=1";
$result = mysql_query($sql,$mysql_link_slave) or die("Could not run query.");
$row = mysql_fetch_array($result);
if($row['email']) {
$to=$row['email'];
$from="no-reply@myvidster.com";
$subject="$posted_by is sharing a video with you!";
$thumbnail = tmb_loader($thumbnail);
$message="$posted_by is sharing video with you. $message //www.myvidster.com/video/$video_id
If you do not want to receive email notifications please disable email notifications in the user options.
MyVidster - collect the videos you love";
//hack to block abusive users
//if($posted_by!='MrSKINFLICK' || $posted_by!='manuelmoranmoran')
//send_mail($to,$from,$subject,$message);
}
}
}
function send_mail($to,$from,$subject,$message) {
require_once($_SERVER['DOCUMENT_ROOT']."/user/class.phpmailer.php");
$mail = new PHPMailer();
$mail->SetLanguage("en");
$mail->IsSMTP(); // set mailer to use SMTP
$mail->Host = "smtp.sendgrid.net:2525";
//$mail->Host = "smtp.sendgrid.net:25"; // specify main and backup server
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "apikey"; // SMTP username
$mail->Password = "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"; // SMTP password
$mail->From = "no-reply@myvidster.com";
$mail->FromName = "MyVidster";
$mail->AddReplyTo($from);
$mail->AddAddress($to);
$mail->WordWrap = 50; // set word wrap to 50 characters
$mail->IsHTML(true); // set email format to HTML
$mail->Subject = $subject;
$body =stripslashes(nl2br($message));
$mail->Body = $body;
if(!$mail->Send()) {
$status.= "Message could not be sent.
";
$status.= "Mailer Error: " . $mail->ErrorInfo;
}
else {
$status=true;
}
return $status;
}
function curl_get_file_size($url,$referer=NULL) {
$arr_domain=parse_url($url);
if($arr_domain['host']) $domain=$arr_domain['scheme']."://".$arr_domain['host'];
else $domain="https://www.myvidster.com";
if(strstr($url,".cdn")
|| strstr($url,".sex.com")
|| strstr($url,".kordonivkakino.net")
|| strstr($url,".neodrive.co")
) $domain="";
elseif(strstr($domain,".tub99.com")) $domain="https://www.tub99.com/";
elseif(strstr($url,"xdomain=")) {
$start = explode("xdomain=",$url);
$domain = end($start);
}
//hack for these sites that block my ip
if(stristr($url,"jerkyourtube.eu")
|| stristr($url,"youtube.com")
|| stristr($url,"pridetube.com")
|| stristr($url,"theluckeystartube.com")
|| stristr($url,"xxxbunker.com")
|| stristr($url,"www.w3.org")
|| stristr($url,"ccstatic.highwebmedia.com")
|| stristr($url,"//chaturbate.com/")
) return false;
// Assume failure.
$result = -1;
$curl = curl_init( $url );
// Issue a HEAD request and follow any redirects.
curl_setopt( $curl, CURLOPT_NOBODY, true );
curl_setopt( $curl, CURLOPT_HEADER, true );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, true );
if($referer) {
curl_setopt( $curl, CURLOPT_REFERER, $referer);
}
$ua="Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36";
curl_setopt( $curl, CURLOPT_USERAGENT, $ua);
curl_setopt( $curl, CURLOPT_TIMEOUT, 20);
curl_setopt( $curl, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt( $curl, CURLOPT_MAXREDIRS, 5); // stop after 5 redirects
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false);
/*
if(stristr($url,".tumblr.com/video_file/")) { //
curl_setopt($curl, CURLOPT_PROXY, "108.59.9.137:3128");
curl_setopt($curl, CURLOPT_HTTPPROXYTUNNEL, 0);
}
*/
$data = curl_exec( $curl );
$results['contentType'] = curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
$results['content_length'] = curl_getinfo($curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
$results['http_code'] = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close( $curl );
return $results;
}
function flag_cloud_upload($id,$file,$reason) {
global $mysql_link_slave;
global $mysql_link_slave;
global $mysql_link_master;
if($file) {
$file = explode(".",$file);
$hash = $file[0];
$query = "select id from myvidster_vbackup where hash = '$hash' order by id desc limit 1";
$result = mysql_query($query,$mysql_link_slave);
$row = mysql_fetch_array($result);
$id = $row['id'];
}
if($id) {
$query = "select id from myvidster_flag_cloud where vbackup_id = '$id'";
$result = mysql_query($query,$mysql_link_slave);
$row = mysql_fetch_array($result);
$vbackup_id = $row['id'];
if(!$vbackup_id) {
$query = "insert into myvidster_flag_cloud (vbackup_id,reason) values ($id,'$reason')";
mysql_query($query,$mysql_link_master);
}
else {
$query = "update myvidster_flag_cloud set status=1 where id = $vbackup_id";
mysql_query($query,$mysql_link_master);
}
}
}
function getPaginationString_no_ajax($page = 1, $totalitems, $limit = 15, $adjacents = 1, $targetpage = "/", $pagestring = "&page=")
{
//defaults
if(!$adjacents) $adjacents = 1;
if(!$limit) $limit = 15;
if(!$page) $page = 1;
if(!$targetpage) $targetpage = "/";
//other vars
$prev = $page - 1; //previous page is page - 1
$next = $page + 1; //next page is page + 1
$lastpage = ceil($totalitems / $limit); //lastpage is = total items / items per page, rounded up.
$lpm1 = $lastpage - 1; //last page minus 1
$pagestring1 = $pagestring."1";
$pagestring2 = $pagestring."2";
/*
Now we apply our rules and draw the pagination object.
We're actually saving the code to a variable in case we want to draw it more than once.
*/
$pagination = "";
if($lastpage > 1)
{
$pagination .= "
1)
$pagination .= "« prev";
else
$pagination .= "« prev";
//pages
if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination .= "$counter";
else
$pagination .= "$counter";
}
}
elseif($lastpage >= 7 + ($adjacents * 2)) //enough pages to hide some
{
//close to beginning; only hide later pages
if($page < 1 + ($adjacents * 3))
{
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if ($counter == $page)
$pagination .= "$counter";
else
$pagination .= "$counter";
}
$pagination .= "...";
$pagination .= "$lpm1";
$pagination .= "$lastpage";
}
//in middle; hide some front and some back
elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
{
$pagination .= "1";
$pagination .= "2";
$pagination .= "...";
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
{
if ($counter == $page)
$pagination .= "$counter";
else
$pagination .= "$counter";
}
$pagination .= "...";
$pagination .= "$lpm1";
$pagination .= "$lastpage";
}
//close to end; only hide early pages
else
{
$pagination .= "1";
$pagination .= "2";
$pagination .= "...";
for ($counter = $lastpage - (1 + ($adjacents * 3)); $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination .= "$counter";
else
$pagination .= "$counter";
}
}
}
//next button
if ($page < $counter - 1)
$pagination .= ""._("next")." »";
else
$pagination .= ""._("next")." »";
$pagination .= "
\n";
}
return $pagination;
}
function scaleserp_web_search($query,$start,$mobile=false) {
global $adult_filter;
if($adult_filter) {
$safe='on';
}
else {
$safe='off';
}
$rm_sites = "-site:exporntoons.net -site:mat6tube.com -site:noodlemagazine.com -site:manyvids.com -site:clips4sale.com -site:xfantazy.com -site:daftsex.com -site:pornocriceto.com -site:buylegalporno.com -site:sxyprn.com -site:sxyprn.net -site:anybunny.com -site:freepornxxxhd.com -site:sineplex.net -site:anybunny.tv -site:porngo.com -site:hellporno.com -site:biguz.net -site:gosexpod.com -site:xvideos2.com -site:bangx.org -site:vidmo.org -site:peekvids.com -site:mojva.com -site:melonstube.cc -site:legalporno.com -site:faphouse.com";
$query = trim($query)." ".$rm_sites;
$hits = array();
if($query) {
if(!$start) $start = 1;
$queryString = http_build_query([
'api_key' => '5063CBCB798C4DA3996A7CA114D14CE0',
'q' => $query,
'search_type' => 'videos',
'safe' => $safe,
'num' => '20',
'page' => $start
]);
# make the http GET request to Scale SERP
$ch = curl_init(sprintf('%s?%s', 'https://api.scaleserp.com/search', $queryString));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$api_result = curl_exec($ch);
curl_close($ch);
# print the JSON response from Scale SERP
$results = json_decode($api_result, false);
$videos = $results->video_results;
if($videos) {
foreach($videos as $video) {
if(!$mobile) {
$hits[] = array('link' => $video->link,
'thumb' => $video->image,
'title' => $video->title,
'description' => $video->snippet,
'source' => get_domain($video->link));
}
else {
$hits[] = array('link' => $video->link,
'video_thumbnail' => $video->image,
'video_title' => $video->title,
'source' => get_domain($video->link),
'video_id' => $video->link);
}
}
}
else {
$hits = false;
}
}
else {
$hits = false;
}
return $hits;
}
function adult_web_search($search,$page,$mobile=false,$category ="") {
$search = urlencode(trim($search));
$api_url="https://www.pornhub.com/webmasters/search?search=$search&thumbsize=large_hd&page=$page".$category;
if($mobile)
$apc_label = "web_search".md5($api_url."mobile");
else
$apc_label = "web_search".md5($api_url."desktop");
$response = apc_fetch($apc_label,$apc);
if(!$apc) {
$response = curl_scrape($api_url,20024);
apc_store($apc_label, $response,60*10);
}
$jsonobj = json_decode($response);
if($jsonobj->message != 'No Videos found!') {
foreach ($jsonobj->videos as $videos) {
$link = $videos->url;
$thumb = $videos->default_thumb;
$title = $videos->title;
$description = '';
$source = "pornhub.com";
if(!$mobile) {
$hits[] = array('link' => $link,
'thumb' => $thumb,
'title' => $title,
'description' => $description,
'source' => $source);
}
else {
$hits[] = array('video_id' => $link,
'video_thumbnail' => $thumb,
'video_title' => $title,
'source' => $source);
}
}
}
return $hits;
}
function iExplode($Delimiter, $String, $Limit = '') {
$Explode = array();
$LastIni = 0;
$Count = 1;
if (is_numeric($Limit) == false)
$Limit = '';
while ( false !== ( $Ini = stripos($String, $Delimiter, $LastIni) ) && ($Count < $Limit || $Limit == ''))
{
$Explode[] = substr($String, $LastIni, $Ini-$LastIni);
$LastIni = $Ini+strlen($Delimiter);
$Count++;
}
$Explode[] = substr($String, $LastIni);
return $Explode;
}
function mysql_fetch_all(array &$rows=NULL) {
while($row=mysql_fetch_array($this->result))
{
$rows[] = $row;
}
if(isset($rows))
{
return $rows;
}
return NULL;
}
function cloud_upload_mysqli($title,$master_id,$user_id,$thumbnail,$flv_download,$video_id,$type_url,$queue=false) {
global $mysqli_link_slave;
global $mysqli_link_slave2;
global $mysqli_link_master;
$type_url = sanitize_sql_string($type_url); //this is needed b/c single quotas have been found see manage.inc.php mrg
if($user_id == 436) $limit = 2;
else $limit = 3;
$ran = rand();
$hash = "";
$newfile = "videos/$ran.mp4";
$query = "SELECT count(id) cnt from myvidster_vbackup where user_id='$user_id' and completed IN (2,6,7)"; //and file_size > 0
sleep(2); //do not remove hacker man will fuck you good
$result = $mysqli_link_slave2->query($query); //mrg
$row=$result->fetch_assoc();
$cnt = $row['cnt'];
if($cnt <= $limit) {
$scraper = get_upload_server($flv_download,$video_id);
$flv_download = $scraper.".mp4";
$completed=6;
$query = "insert into myvidster_download (title,master_id,user_id,thumbnail,filepath,video_id,type_url,source) VALUES ('$title','$master_id','$user_id','$thumbnail','$flv_download','$video_id','$type_url',2)";
$mysqli_link_master->query($query);
$dl_id = $mysqli->insert_id;
$query = "INSERT INTO myvidster_vbackup
(video_id, user_id, vid_download, newfile, completed, thumbnail, hash)
VALUES ($dl_id, $user_id, '$flv_download', '$newfile', $completed,'$thumbnail','$hash')";
$mysqli_link_master->query($query);
$insert_id = $mysqli->insert_id;
$newfile = "videos/$insert_id.mp4";
$query = "UPDATE myvidster_vbackup SET newfile = '$newfile' WHERE id=$insert_id";
$mysqli_link_master->query($query);
}
return true;
}
function cloud_upload($title,$master_id,$user_id,$thumbnail,$flv_download,$video_id,$type_url,$queue=false) {
if(!function_exists('mysql_connect')) {
return cloud_upload_mysqli($title,$master_id,$user_id,$thumbnail,$flv_download,$video_id,$type_url,$queue=false);
}
global $mysql_link_slave;
global $mysql_link_slave2;
global $mysql_link_master;
$type_url = sanitize_sql_string($type_url); //this is needed b/c single quotas have been found see manage.inc.php mrg
if($user_id == 436) $limit = 2;
else $limit = 3;
$ran = rand();
$hash = "";
$newfile = "videos/$ran.mp4";
$query = "SELECT count(id) cnt from myvidster_vbackup where user_id='$user_id' and completed IN (2,6,7)"; //and file_size > 0
sleep(2); //do not remove hacker man will fuck you good
$result = mysql_query($query,$mysql_link_slave2); //mrg
$row=mysql_fetch_assoc($result);
$cnt = $row['cnt'];
if($cnt <= $limit) {
$scraper = get_upload_server($flv_download,$video_id);
$flv_download = $scraper.".mp4";
$completed=6;
$query = "insert into myvidster_download (title,master_id,user_id,thumbnail,filepath,video_id,type_url,source) VALUES ('$title','$master_id','$user_id','$thumbnail','$flv_download','$video_id','$type_url',2)";
mysql_query($query,$mysql_link_master);
$dl_id = mysql_insert_id();
$query = "INSERT INTO myvidster_vbackup
(video_id, user_id, vid_download, newfile, completed, thumbnail, hash)
VALUES ($dl_id, $user_id, '$flv_download', '$newfile', $completed,'$thumbnail','$hash')";
mysql_query($query,$mysql_link_master);
$insert_id = mysql_insert_id();
$newfile = "videos/$insert_id.mp4";
$query = "UPDATE myvidster_vbackup SET newfile = '$newfile' WHERE id=$insert_id";
mysql_query($query,$mysql_link_master);
}
return true;
}
function get_video_by_id($id) {
global $config;
global $mysql_link_slave;
global $user_id;
$viddata = false;
if($user_id) {
$id = intval($id);
$sql = "SELECT * FROM myvidster_video v WHERE v.id = '$id'";
$result = mysql_query($sql,$mysql_link_slave);
$viddata = mysql_fetch_assoc($result);
}
return $viddata;
}
Function get_channel_by_name($name) {
global $user_id;
$query = "SELECT id FROM myvidster_channel WHERE name = '$name'
AND user_id = '$user_id'";
$result = mysql_query($query)
or die(mysql_error());
$row = mysql_fetch_array($result);
$id = $row['id'];
Return $id;
}
function SmartAddSlashes($str){
if (get_magic_quotes_gpc()){
return $str;
}
else{
return addslashes($str);
} //if magic_quotes_gpc
}
function SmartStripSlashes($str){
if (get_magic_quotes_gpc()){
return stripslashes($str);
}else{
return $str;
}//if magic_quotes_gpc
}
function left ($str, $howManyCharsFromLeft)
{
return substr ($str, 0, $howManyCharsFromLeft);
}
function right ($str, $howManyCharsFromRight)
{
$strLen = strlen ($str);
return substr ($str, $strLen - $howManyCharsFromRight, $strLen);
}
function mid ($str, $start, $howManyCharsToRetrieve = 0)
{
$start--;
if ($howManyCharsToRetrieve === 0)
$howManyCharsToRetrieve = strlen ($str) - $start;
return substr ($str, $start, $howManyCharsToRetrieve);
}
function is_firefox() {
$agent = '';
// old php user agent can be found here
if (!empty($HTTP_USER_AGENT))
$agent = $HTTP_USER_AGENT;
// newer versions of php do have useragent here.
if (empty($agent) && !empty($_SERVER["HTTP_USER_AGENT"]))
$agent = $_SERVER["HTTP_USER_AGENT"];
if (!empty($agent) && preg_match("/firefox/si", $agent))
return 1;
if (!empty($agent) && preg_match("/MSIE/si", $agent))
return 2;
return false;
}
function get_user_browser()
{
$u_agent = $_SERVER['HTTP_USER_AGENT'];
$ub = '';
if(preg_match('/MSIE/i',$u_agent))
{
$ub = "ie";
}
elseif(preg_match('/Firefox/i',$u_agent))
{
$ub = "firefox";
}
elseif(preg_match('/Chrome/i',$u_agent))
{
$ub = "chrome";
}
elseif(preg_match('/Safari/i',$u_agent))
{
$ub = "safari";
}
elseif(preg_match('/Flock/i',$u_agent))
{
$ub = "flock";
}
elseif(preg_match('/Opera/i',$u_agent))
{
$ub = "opera";
}
return $ub;
}
function create_header_lite() {
$header ='
'._("collect the videos you love").' '._('collect').' | '._('share').' | '._('explore').'
';
return $header;
}
function get_family_popunder() {
if (!isset($_SESSION['family_popunder'])) {
$family_popunders[]=''; //good
$family_popunders[]=''; //good
$family_popunders[]=''; //good
$fp_cnt = count($family_popunders);
$fp_pick = rand(0,$fp_cnt -1);
$family_popunder = $family_popunders[$fp_pick];
$_SESSION['family_popunder'] = $family_popunder;
}
else {
$family_popunder = $_SESSION['family_popunder'];
}
return true; //MRG ad tags need updated
return $family_popunder;
}
function sm_hash_email($email){
$parts = explode('@',$email); //split the email into the local and domain parts
$res = '';
$res .= 'H1:' . sha1(strtolower($email)); // SHA1 hexadecimal string of the lowercase version of the email address
$res .= ',H2:' . sha1(strtoupper($email)); # SHA1 hexadecimal string of the uppercase version of the email address
$res .= ',H3:' . sha1(strtolower($parts[1])); # SHA1 hexadecimal string of the lowercase version of the email domain
$res .= ',H4:' . md5 (strtolower($email)); # MD5 hexadecimal string of the lowercase version of the email address
$res .= ',H5:' . md5 (strtoupper($email)); # MD5 hexadecimal string of the uppercase version of the email address
$res .= ',H6:' . hash('sha256', strtolower($email)); # SHA256 hexadecimal string of the lowercase version of the email address
$res .= ',H7:' . hash('sha256', strtoupper($email)); # SHA256 hexadecimal string of the uppercase version of the email address
return $res;
}
function adult_content($string) {
global $mysql_link_slave;
$chunks = 50;
$query = "SELECT * FROM myvidster_adult_meta WHERE status = 1";
$result = mysql_query($query, $mysql_link_slave);
while($row = mysql_fetch_array($result)) {
$type = $row['type'];
$meta = $row['meta'];
if($type == 1){
$meta = str_replace ("http://", "", $meta);
$meta = str_replace ("www.", "", $meta);
$compare_string = substr($meta, -1);
if($compare_string === "/"){
$meta = str_replace ("/", "", $meta);
}
//To escape special characters
$meta = addcslashes("$meta",".");
$meta = addcslashes("$meta","-");
$meta = addcslashes("$meta",":");
$meta = addcslashes("$meta","/");
$domain_patterns[] = $meta;
}
elseif($type == 2){
$meta = str_replace ("http://", "", $meta);
$meta = str_replace ("www.", "", $meta);
$compare_string = substr($meta, -1);
if($compare_string === "/"){
$meta = str_replace ("/", "", $meta);
}
//To escape special characters
$meta = addcslashes("$meta",".");
$meta = addcslashes("$meta","-");
$meta = addcslashes("$meta",":");
$meta = addcslashes("$meta","/");
$domain2_patterns[] = $meta;
}
elseif($type == 3){
$append = '\b';
$word = $append.$meta.$append;
$word_patterns[] = $meta;
}
}
$m2_v_ids = array_chunk($domain_patterns, $chunks);
foreach($m2_v_ids as $m2_v_id) {
$domain_pattern = '/'.rtrim(implode("|",$m2_v_id)).'/i';
$result = preg_match($domain_pattern, $string, $matches);
if($result){
return 1; //adult domain
}
unset($matches);
}
unset($m2_v_ids);
$m2_v_ids = array_chunk($domain2_patterns, $chunks);
foreach($m2_v_ids as $m2_v_id) {
$domain2_pattern = '/'.rtrim(implode("|",$m2_v_id)).'/i';
$result = preg_match($domain2_pattern, $string, $matches);
if($result){
return 2; //mostly adult content
}
unset($matches);
}
unset($m2_v_ids);
$m2_v_ids = array_chunk($word_patterns, $chunks);
foreach($m2_v_ids as $m2_v_id) {
$word_pattern = '/'.rtrim(implode("|",$m2_v_id)).'/i';
$result = preg_match($word_pattern, $string, $matches);
if($result){
return 3; //word filter
}
unset($matches);
}
return 0; //no match, public video
}
function mongo_cometchat_insert($id,$from,$to,$message,$sent,$read,$direction) {
global $mongo_link_master;
if(!$mongo_link_master) {
return true;
}
$collection = $mongo_link_master->cometchat2;
$message = new MongoBinData($message);
$id = intval($id);
$sent = intval($sent);
$read = intval($read);
$direction = intval($direction);
$obj = array(
"id" => $id,
"from" => "$from",
"to" => "$to",
"message" => $message,
"sent" => $sent,
"read" => $read,
"direction" => $direction);
$collection->insert($obj);
}
function build_thumb_html($file) {
global $mysql_link_slave;
$thumb_html = "";
$arr_domain=parse_url($file);
$start = explode("/",$arr_domain['path'],2);
$end = explode('.',$start[1],2);
$master_id = $end[0];
$img_server="https://cdn1.myvidster.com";
$max_thumbs = 100;
$thumbnails = "";
$sql="select id, duration, seconds from myvidster_duration where master_id = '$master_id' and status = 1 limit 1";
$result = mysql_query($sql,$mysql_link_slave);
$row = mysql_fetch_array($result);
$duration = $row['duration'];
$seconds = $row['seconds'];
$id = $row['id'];
if(!$id) {
duration_fix($master_id);
return true;
}
if($duration && $duration != '0.000') {
$thumb_cnt = ceil($duration / $seconds);
if($thumb_cnt > $max_thumbs) {
$z_factor = ceil($duration / $max_thumbs / $seconds);
}
else {
$z_factor = 1;
}
for ($i = $z_factor; $i <= $thumb_cnt; $i+=$z_factor) {
$z = $i - $z_factor;
$zs = $z * $seconds;
$tmb_cnt=str_pad($i,3,"0",STR_PAD_LEFT);
$thumbnails[] = "$zs: {src: '$img_server/$master_id/img$tmb_cnt.jpg', style: {left: '-90px',width: '180px'}}";
$thumbnails_pl[]="img$z = new Image();\n img$z.src = '$img_server/$master_id/img$tmb_cnt.jpg';\n";
}
if($thumbnails) {
$thumb_html="";
}
}
elseif(!strstr($master_id,'/') && $duration <= 0) {
duration_fix($master_id);
}
return $thumb_html;
}
function url_shorters_fix($video_link) {
if(stristr($video_link,"://goo.gl/")
|| stristr($video_link,"://bit.ly/")
|| stristr($video_link,"://is.gd/")
|| stristr($video_link,"://bitly.com/")
|| stristr($video_link,"://urlcut.org/")
|| stristr($video_link,"://tinyurl.com/")
|| stristr($video_link,"://cort.as/")
|| stristr($video_link,"://ow.ly/")
|| stristr($video_link,"://hyperurl.co/")
|| stristr($video_link,"://ShortURL.de/")
|| stristr($video_link,"://bit.do/")
|| stristr($video_link,"://adf.ly/")
|| stristr($video_link,"://j.gs/")
|| stristr($video_link,"://q.gs/")
|| stristr($video_link,"://www.allanalpass.com/")
|| stristr($video_link,"://www.drstickyfingers.com/")
|| stristr($video_link,"://www.fapoff.com/")
|| stristr($video_link,"://www.freegaysitepass.com/")
|| stristr($video_link,"://www.galleries.bz/")
|| stristr($video_link,"://www.hornywood.tv/")
|| stristr($video_link,"://www.linkbabes.com/")
|| stristr($video_link,"://www.picbucks.com/")
|| stristr($video_link,"://www.poontown.net/")
|| stristr($video_link,"://www.tnabucks.com/")
|| stristr($video_link,"://www.youfap.me/")
|| stristr($video_link,"://www.rqq.co/")
|| stristr($video_link,"://www.zff.co/")
|| stristr($video_link,"://www.yye.io/")
|| stristr($video_link,"://www.lba.io/")
|| stristr($video_link,"://www.iskk.co/")
|| stristr($video_link,"://www.yyv.co/")
|| stristr($video_link,"://www.ekdd.co/")
|| stristr($video_link,"://www.erq.io/")
|| stristr($video_link,"://www.ooep.co/")
|| stristr($video_link,"://zo.ee/")
|| stristr($video_link,"://jmpz.in/")
|| stristr($video_link,"://blv.me/")
|| stristr($video_link,"://unloc.us/")
|| stristr($video_link,"://adurl.id/")
|| stristr($video_link,"://iwas.pw/")
|| stristr($video_link,"://ad24.us/")
|| stristr($video_link,"://akorto.eu/")
|| stristr($video_link,"://linclik.com/")
|| stristr($video_link,"://mskip.us/")
|| stristr($video_link,"://50tl.net/")
|| stristr($video_link,"://ref.so/")
|| stristr($video_link,"://adfe.es/")
|| stristr($video_link,"://www.tec.so/")
|| stristr($video_link,"://x18.eu/")
|| stristr($video_link,"://sht.st/")
|| stristr($video_link,"://url.ie/")
|| stristr($video_link,"://urlskip.co/")
|| stristr($video_link,"://elink.link/")
|| stristr($video_link,"://get.al/")
|| stristr($video_link,"://el32.com/")
|| stristr($video_link,"://privatelink.de/")
|| stristr($video_link,"://glurl.co/")
|| stristr($video_link,"://so.gd/")
|| stristr($video_link,"://so.")
|| stristr($video_link,"//tiny.cc/")
|| stristr($video_link,"//cutt.ly/")
) {
$redirect=get_redirect_url($video_link);
if($redirect) $video_link = $redirect;
}
return $video_link;
}
function duration_fix($master_id) { //
$scraper = get_rand_selenium_server(1);
$myurl = "$scraper/user/duration_fixer.php?master_id=$master_id&apc_label=$apc_label";
$shell_results= exec("wget -O /dev/null \"$myurl\" > /dev/null 2>&1 &",$results,$status);
}
function get_upload_server($flv_download=NULL,$type_id=NULL) { //mrg
//global $mysql_link_master;
global $mysql_link_slave;
global $mysql_link_slave2;
global $mysql_link_slave2;
$cloud_servers=array();
if(substr($flv_download,0,6) == "server") {
$start = explode("server",$flv_download);
$end = explode(".mp4",end($start),2);
$m_key= $end[0];
$query="select count(v.id) cnt from myvidster_vbackup v where v.completed IN (2) and server = 'server$m_key'";
$result2 = mysql_query($query,$mysql_link_slave2);
$row2 = mysql_fetch_array($result2);
$cnt2 = $balancer + $row2['cnt'];
if($cnt2 <= 6) {
$sql="select id from myvidster_vars where m_name = 'c_server_load' and m_value != 69 and m_key='$m_key'";
$var_result = mysql_query($sql,$mysql_link_slave2);
if($var_row = mysql_fetch_assoc($var_result)) {
$rr_server = "server".$m_key;
}
}
}
if(!$rr_server) {
$sql="select m_key, m_value from myvidster_vars where m_name = 'c_server_load' and m_value != 69 order by rand()";
$var_result = mysql_query($sql,$mysql_link_slave2);
while($var_row = mysql_fetch_assoc($var_result)) {
$server = "server".$var_row['m_key'];
$balancer = $var_row['m_value'];
$query="select count(v.id) cnt from myvidster_vbackup v where v.completed IN (2) and server = '$server'";
$result1 = mysql_query($query,$mysql_link_slave2);
$row1 = mysql_fetch_array($result1);
$cnt = $balancer + $row1['cnt'];
$cloud_servers[$server]=$cnt;
}
$min_cnt = min($cloud_servers);
$rr_server = array_search($min_cnt,$cloud_servers,true);
}
return $rr_server;
}
function s3_tmb_upload($source_file,$key,$s3_img) {
$image_bucket = 'myvidster-images2'; //myvidster-images2 is cdn2.myvidster.com
if(file_exists($source_file)) {
//authenticated-read OR public-read
try {
$acl = 'public-read';
$bucket = $image_bucket;
$s3_img->upload($bucket, $key, fopen($source_file, 'r'), $acl);
}
catch (S3Exception $e) {
$msg = $e->getMessage();
//send_mail("marques@myvidster.com","no-reply@myvidster.com","S3 Video - $id",$msg);
}
}
}
function tmb_loader($source_file) {
if($source_file == 'https://www.myvidster.com/user/images/film.jpg')
$tmb="https://www.myvidster.com/user/images/film.jpg";
elseif(substr($source_file,0,6) == 'images')
$tmb="https://cdn2.myvidster.com/user/$source_file";
elseif(substr($source_file,0,11) == 'user/thumbs')
$tmb="https://cdn2.myvidster.com/$source_file";
elseif(substr($source_file,0,7) == '/images')
$tmb="https://cdn2.myvidster.com$source_file";
elseif(substr($source_file,0,4) != 'http')
$tmb="https://cdn2.myvidster.com/$source_file";
else
$tmb=$source_file;
return $tmb;
}
function tmb_cloud_loader($source_file) { //currently only used for download thumbs
if(!strstr($source_file,'videothumbs/')) {
$legacy_folder = explode("myvidster.com/",$source_file);
$legacy_folder = $legacy_folder[1];
$tmb="https://cdn2.myvidster.com/$legacy_folder";
}
elseif(substr($source_file,0,11) == 'videothumbs') {
$tmb="https://cdn2.myvidster.com/$source_file";
}
else {
$tmb=$source_file;
}
return $tmb;
}
function fix_ios_trans($keep_id,$user_id) {
global $mysql_link_slave;
if(!$keep_id)
return false;
$sql="select id,transactionId,product_id from myvidster_ios_receipts where
user_id = $user_id and status = 1 and
id <> $keep_id";
$result2 = mysql_query($sql,$mysql_link_slave);
while($row2 = mysql_fetch_array($result2)) {
$drop_id=$row2['id'];
$transactionId=$row2['transactionId'];
$product_id=$row2['product_id'];
switch ($product_id) {
case "silver.product4":
$storage = 131072 * 2;
$myv_item = 'myv_pro_silver2';
$x_amount = '9.99';
$tier = 1;
break;
case "gold.product5":
$storage = 131072 * 2 * 2;
$myv_item = 'myv_pro_gold2';
$x_amount = '14.99';
$tier = 2;
break;
case "platinum.product6":
$storage = 131072 * 2 * 2 * 2;
$myv_item = 'myv_pro_plat2';
$x_amount = '17.99';
$tier = 3;
break;
default:
$storage = 0;
}
$sql="update myvidster_user set v_quota=v_quota-$storage where id='$user_id'";
mysql_query($sql);
$sql="update myvidster_pro set status=0
where x_trans_id = '$transactionId'
and x_cust_id = '$user_id' and status = 1 order by id asc limit 1";
mysql_query($sql);
$sql="update myvidster_ios_receipts set status=0
where id = $drop_id";
mysql_query($sql);
return true;
}
}
function change_dns($server,$cf_api,$name) {
$headers = array(
'X-Auth-Email: marques@myvidster.com',
'X-Auth-Key: ffb1dc4e4ffb864573f2dcd2b2c7c5d162584',
'Content-Type: application/json'
);
$data = array("type" => "CNAME",
"name" => "$name.myvidster.com",
"content" => "$server.myvidster.com",
"ttl" => 1,
"proxied" => true
);
$data_json = json_encode($data);
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $cf_api);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt ($ch, CURLOPT_POSTFIELDS,$data_json);
$reponse = curl_exec ($ch);
curl_close($ch);
$json = json_decode($reponse);
return $json;
}
function setMemoryForImage( $filename ){
$imageInfo = getimagesize($filename);
$MB = 1048576; // number of bytes in 1M
$K64 = 65536; // number of bytes in 64K
$TWEAKFACTOR = 1.5; // Or whatever works for you
$memoryNeeded = round( ( $imageInfo[0] * $imageInfo[1]
* $imageInfo['bits']
* $imageInfo['channels'] / 8
+ $K64
) * $TWEAKFACTOR
);
$memoryLimit = 42 * $MB;
if (function_exists('memory_get_usage') &&
memory_get_usage() + $memoryNeeded > $memoryLimit)
{
$newLimit = $memoryLimitMB + ceil( ( memory_get_usage()
+ $memoryNeeded
- $memoryLimit
) / $MB
);
return true;
}else {
return false;
}
}
function display_qr_code($url) {
$allow = ['gif', 'jpg', 'png']; // allowed extensions
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_PORT, 2222);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 2222);
$img = curl_exec($curl);
$url_info = pathinfo($url);
// if allowed extension
if(in_array($url_info['extension'], $allow)) {
// Format the image SRC: data:{mime};base64,{img_data_base64};
$src = 'data:image/'. $url_info['extension'] .';base64,'. base64_encode($img);
// add the base64 image into a to display it
$re = '';
}
else $re = 'Invalid extension: '. $url_info['extension'];
return $re; // output $re data
}
function create_btc_payment($x_cust_id,$myv_item,$crypto='BTC',$myv_type='new',$myv_type_id=0,$myv_ref) {
global $mysql_link_slave;
global $user_id;
$today = getdate();
$day=$today['mday'];
$btc_server="serverbtc.myvidster.com";
$aro_server="server14.myvidster.com";
if($x_cust_id != $user_id) {
$gift="
"._("You are giving a PRO membership to another user ")."
";
$msg.=" After we have received your payment, your membership will be activated! Please allow up to an hour for the
payment transaction to be completed and confirm.";
$msg.='';
}
else {
$msg.="Your $crypto_name payment has been received and process, contact us if you are having issues accessing your PRO membership. Internal trans id: $x_trans_id";
}
$msg.=' DoneCancel
';
if($myv_ref=='app_btc') {
$callback = $pay_load;
}
else {
$callback = $msg;
}
return $callback;
}
function ip_hacker_check($ip,$email_check="") { //echo ip_hacker_check('101.188.67.134');
global $mysql_link_master;
$ip=sanitize_sql_string($ip);
$email_check=sanitize_sql_string($email_check);
$api_key='qery8uvejyhu';
$method='spam_check';
$message=true;
if($email_check) {
$email_check=sanitize_sql_string($email_check);
$api_url_email="&email=$email_check";
}
else {
$api_url_email="";
}
if($ip) {
$api_url="https://api.cleantalk.org/?method_name=spam_check&auth_key=$api_key&ip=$ip".$api_url_email;
$config_xml = file_get_contents($api_url);
$tmp_json = json_decode($config_xml);
$spam_rate = sanitize_sql_string($tmp_json->data->$ip->spam_rate);
$frequency = sanitize_sql_string($tmp_json->data->$ip->frequency);
$submitted = sanitize_sql_string($tmp_json->data->$ip->submitted);
$updated = sanitize_sql_string($tmp_json->data->$ip->updated);
$reported = $ip;
if(!$spam_rate && $email_check) {
$spam_rate = sanitize_sql_string($tmp_json->data->$email_check->spam_rate);
$frequency = sanitize_sql_string($tmp_json->data->$email_check->frequency);
$submitted = sanitize_sql_string($tmp_json->data->$email_check->submitted);
$updated = sanitize_sql_string($tmp_json->data->$email_check->updated);
$reported = $email_check;
}
$message ="$reported reported as spam $frequency websites attacked, discovered $submitted, last activity $updated";
if($spam_rate) {
$sql="insert into myvidster_hacker (ip,message,email) values('$ip','$message','$email_check')";
mysql_query($sql,$mysql_link_master);
}
else {
$message=false;
}
}
return $message;
}
function video_remove($master_id,$wait=4,$chunks=10) {
global $mysql_link_slave;
return true;
$sql="select id from myvidster_video where master_id = '$master_id' and private <> 3 and broken = 0";
$result1 = mysql_query($sql,$mysql_link_slave);
$ids = array();
while($row1 = mysql_fetch_assoc($result1)) {
$ids[] = $row1['id'];
}
$i = count($ids);
$m_v_ids = array_chunk($ids, $chunks);
foreach($m_v_ids as $m_v_id) {
$v_ids=implode(",",$m_v_id);
$sql="UPDATE myvidster_video SET private=1,broken=1 where id IN ($v_ids)";
mysql_query($sql);
do {
$query="SHOW SLAVE STATUS";
$l_result = mysql_query($query,$mysql_link_slave);
$l_row = mysql_fetch_array($l_result);
$lag = $l_row['Seconds_Behind_Master'];
if($lag > 2) {
sleep($wait);
}
} while ($lag > 2);
}
foreach($ids as $id) {
delete_index_doc($id,false);
insert_index_doc($id,false);
$index_output[]=$id;
}
$index_ids = implode(",",$index_output);
$sql="update myvidster_flag set resolved=1 where master_id = '$master_id'";
mysql_query($sql);
}
function is_cached($channel_id,$type_id,$master_id=NULL) {
global $mysql_link_slave;
global $mysql_link_slave;
$sql = "select id from myvidster_sponsored
where channel_id = $channel_id and status = 1 and cached = 1";
$u_result = mysql_query($sql,$mysql_link_slave);
$u_row1 = mysql_fetch_assoc($u_result);
if($u_row1['id']) {
$cached = 1;
}
elseif(stristr($type_id,'.tumblr.com')
|| stristr($type_id,'//streaminporn.xyz/')
|| stristr($type_id,'//media1.faptube.xyz/')
|| stristr($type_id,'//videos.freegaypornonline.com/')) {
$cached = 1;
}
else {
$cached = 0;
}
return $cached;
}
function is_cloud_hosting($type_id) {
global $mysql_link_slave;
global $mysql_link_slave2;
global $mysql_link_slave2;
$video_host = get_video_host($type_id);
if(function_exists('mysql_query')) {
$sql = "select id from myvidster_vars where m_name = 'ad_removal' and m_value = '$video_host' and m_key = 1";
$result1 = @mysql_query($sql,$mysql_link_slave2);
if($result1) {
$row1 = mysql_fetch_array($result1);
$ad_removal = $row1['id'];
}
else {
$ad_removal = 0;
}
}
if($ad_removal > 0) {
return true;
}
else {
return false;
}
}
function load_videojs_scripts() {
global $user_id;
global $glb_videojs_ver;
$browser = get_user_browser();
if($browser != 'firefox') {
$pip_js = '';
$pip_css = '';
}
else {
$pip_js = '';
$pip_css = '';
}
$videojs_scripts = '
'.$pip_css.'
'.$pip_js.'
';
return $videojs_scripts;
}
function give_pro($user_id, $upgrade_type,$x_trans_id='givepro') {
if(!$user_id){
echo "Can't give someone who doesn't exist a pro trial!";
exit;
}
switch ($upgrade_type){
case 'Give PRO Silver':
case 'MyVidster PRO (Silver) for 1 month.':
$upgrade_text = 'myv_pro_silver2';
$upgrade_ref = 'Admin_silver_gift';
$upgrade_v_quota_new = 131072 * 2;
break;
case 'Give PRO Gold':
case 'MyVidster PRO (Gold) for 1 month.':
$upgrade_text = 'myv_pro_gold2';
$upgrade_ref = 'Admin_gold_gift';
$upgrade_v_quota_new = 131072 * 2* 2;
break;
case 'Give PRO Platinum':
case 'MyVidster PRO (Platinum) for 1 month.':
$upgrade_text = 'myv_pro_plat2';
$upgrade_ref = 'Admin_plat_gift';
$upgrade_v_quota_new = 131072 * 2 * 2 * 2;
break;
default:
echo "wtf v3";
}
$expire_date=time() + (31 * 24 * 60 * 60);//Calculates current time in seconds plus 31 days
$expire_date=date('Y-m-d H:i:s',$expire_date);//Converts expire_date to the format you want using capital and lowercase letters that correspond to PHP documentation
$query="insert into myvidster_pro (x_cust_id,myv_item,myv_ref,expire_date,x_trans_id)
values ($user_id,'$upgrade_text','$upgrade_ref','$expire_date','$x_trans_id')";
mysql_query($query);
$query2="update myvidster_user set v_quota=$upgrade_v_quota_new where id=$user_id";
mysql_query($query2);
$results = "$query $query2 ";
return $results;
}
function fetch_download_server($type_id,$flv_download) {
$download_server4='http://download.myvidster.com/download'; //server4
$download_server2='http://server2.myvidster.com/download'; //server2
$download_server11='https://www.myvidster.com/download'; //server11
return $download_server11;
if(strstr($type_id,'peekvids.com')
|| strstr($type_id,'eporner.com')
|| strstr($type_id,'feedvid.com')
|| strstr($type_id,'indianpornvideos.com')
|| strstr($type_id,'hclips.com')
|| strstr($type_id,'//verystream.com/')
|| strstr($type_id,'//menhdv.com/embed/')
|| strstr($flv_download,'gaysexo.org')
|| strstr($flv_download,'//www.youtube.com/get_video')
) {
$download_server = $download_server2;
}
elseif(strstr($flv_download,'server2.mp4')) {
$download_server = $download_server2;
}
elseif(strstr($flv_download,'/get_file/')
|| strstr($flv_download,'server11.mp4')
|| strstr($flv_download,'wegayboys.com')
|| strstr($flv_download,'gayforit.eu')
) {
$download_server = $download_server11;
}
else {
$servers[] = $download_server4;
$servers[] = $download_server2;
$servers[] = $download_server11;
$rand=array_rand($servers);
$download_server=$servers[$rand];
}
return $download_server;
}
function myv_import($id,$master_id) {
global $mysql_link_slave;
global $mysql_link_slave;
global $mysql_link_master;
$sql="select id from myvidster_download where master_id = '$master_id'
and status = 1 and
filepath like 'http://videos.myvidster.com/%'
limit 1";
$result1 = mysql_query($sql,$mysql_link_slave);
$row1 = mysql_fetch_assoc($result1);
$dl_id = $row1['id'];
$type_id ="https://www.myvidster.com/embed/$dl_id";
if($dl_id) {
$sql="update myvidster_video set type=92, type_id='$type_id' where id = $id";
mysql_query($sql,$mysql_link_master);
}
}
function get_myv_mp4($id) {
global $mysql_link_slave;
global $mysqli_link_slave;
$start = explode('/',$id);
$dl_id = end($start);
$sql="select d.filepath, d.thumbnail, v.private, v.cc_owner, v.access_lock, v.user_id
from myvidster_download d
join myvidster_video v ON v.id = d.video_id
where d.id = '$dl_id' and
d.status = 1 and
d.filepath like 'http://videos.myvidster.com/%'
limit 1";
if($mysql_link_slave) {
$result = mysql_query($sql,$mysql_link_slave);
$row = mysql_fetch_array( $result );
}
else {
$result = $mysqli_link_slave->query($sql);
$row = $result->fetch_assoc();
}
$filepath = $row['filepath'];
if($filepath)
return get_s3_dll($filepath,'&',false);
else
return 'broken.mp4';
}
function get_video_host($type_id) {
$arr_domain=parse_url($type_id);
$host = $arr_domain['host'];
return $host;
}
function get_token($id) {
$salt="Am6ctD#rw5d$";
$token=md5($id.$salt);
return $token;
}
function get_api_key($id) {
$salt="XxtQ$8isE2vHw1";
$key=md5($id.$salt);
return $key;
}
function get_rand_selenium_server($m_key=1,$name=false) { //note, ok let do this
global $mysql_link_slave;
$sql = "select m_value from myvidster_vars where m_name = 'scraper' and m_key IN($m_key) and status = 1";
if(function_exists('mysql_query')) {
$result = mysql_query($sql,$mysql_link_slave);
while($row = mysql_fetch_assoc($result)) {
$servers[] = $row['m_value'];
}
}
if($servers) {
$rand=array_rand($servers);
$server=$servers[$rand];
if($name) {
$x = str_replace('http://','',$server);
$server = explode('.',$x)[0];
}
}
else {
$server = false;
}
return $server;
}
function get_rand_selenium_server_legacy($m_key=1,$name=false) { //note, do not use cloudflare proxied fucks w APC
global $mysqli_link_slave2;
global $mysqli_link_slave3;
global $mysql_link_slave;
global $mysqli_link_slave3;
$sql = "select m_value from myvidster_vars where m_name = 'scraper' and m_key IN($m_key) and status = 1";
if(function_exists('mysql_query') && $mysql_link_slave2) {
$result = mysql_query($sql,$mysql_link_slave);
while($row = mysql_fetch_assoc($result)) {
$servers[] = $row['m_value'];
}
}
else {
$result = $mysqli_link_slave3->query($sql);
while($row = $result->fetch_assoc()) {
$servers[] = $row['m_value'];
}
}
if($servers) {
$rand=array_rand($servers);
$server=$servers[$rand];
if($name) {
$x = str_replace('http://','',$server);
$server = explode('.',$x)[0];
}
}
else {
$server = false;
}
return $server;
}
function url_sanitizer($url) {
$url = filter_var($url, FILTER_SANITIZE_URL);
$url_check = get_video_host($url);
if (!filter_var($url, FILTER_VALIDATE_URL) || !strstr($url_check,'myvidster.com')) {
return false;
}
else {
return $url;
}
}
function json_vid_fixer($pre_json) {
$pre_json = str_replace('file:','"file":',$pre_json);
$pre_json = str_replace('label:','"label":',$pre_json);
$pre_json = str_replace('default:','"default":',$pre_json);
return $pre_json;
}
function string_extact_end($str1,$str2,$data) {
$start = explode($str1,$data);
$end = explode($str2,end($start));
return end($end);
}
function string_extact($str1,$str2,$data) {
$start = iExplode($str1,$data,2);
$end = iExplode($str2,$start[1],2);
return $end[0];
}
function loop_vid($type_id,$base_link) {
global $mysql_link_slave;
$duration = 0;
$duration_master="";
if(strstr($type_id,'//d1sdac3zefu2ho.cloudfront.net/')) {
$duration_master = string_extact('//d1sdac3zefu2ho.cloudfront.net/','.',$type_id);
}elseif(strstr($type_id,'//myvidster-cloud.s3.amazonaws.com/')) {
$duration_master = string_extact('//myvidster-cloud.s3.amazonaws.com/','.',$type_id);
}
if($duration_master) {
$sql="SELECT duration FROM `myvidster_duration` WHERE `master_id` LIKE '$duration_master'";
$result1 = mysql_query($sql,$mysql_link_slave);
$row1 = mysql_fetch_array($result1);
$duration = $row1['duration'];
}
if(strstr($base_link,'.tumblr.com')
|| strstr($type_id,'.gfycat.com')
|| strstr($type_id,'slushe.com/videos')
|| strstr($type_id,'motherlessmedia.com')
|| (strstr($type_id,'.mp4') && !$duration)
|| ($duration && $duration < 600)
)
$loop = 'loop';
else
$loop = '';
return $loop;
}
function selenium_check($server,$url) {
$url = $server."/selenium_chrome.php?token=badkitty&sleep=0d&url=".urlencode($url);
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, $url);
curl_setopt($curlHandle, CURLOPT_HEADER, true);
curl_setopt($curlHandle, CURLOPT_NOBODY, true); // we don't need body
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlHandle, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($curlHandle, CURLOPT_TIMEOUT,20); //timeout in seconds
curl_exec($curlHandle);
$httpcode = curl_getinfo($curlHandle, CURLINFO_HTTP_CODE);
$total_time = curl_getinfo($curlHandle, CURLINFO_TOTAL_TIME);
curl_close($curlHandle); // Don't forget to close the connection
$payload="http_code: $httpcode | total_time: $total_time";
if($httpcode <> 200) {
return false;
}
return $payload;
}
function dl_blacklist($type_id) {
global $mysql_link_slave;
global $mysqli_link_slave;
global $mysql_link_slave2;
global $mysqli_link_slave3;
if($type_id) {
$sql = "select m_value from myvidster_vars where m_name = 'dl_blacklist' and m_key = 1";
if(function_exists('mysql_query') && $mysql_link_slave2) {
$result = mysql_query($sql,$mysql_link_slave2);
while($row = mysql_fetch_array($result)) {
$vid=$row['m_value'];
if(strstr($type_id,$vid)) {
return true;
}
}
}
elseif(function_exists('mysqli_query') && $mysqli_link_slave3) {
$result = $mysqli_link_slave3->query($sql) or die($mysqli_link_slave3->error);
while($row = $result->fetch_assoc()) {
$vid=$row['m_value'];
if(strstr($type_id,$vid)) {
return true;
}
}
}
}
return false;
}
function resub($email) {
$url = 'https://api.sendgrid.com/api/unsubscribes.delete.json';
$fields = array(
'email' => $email,
'api_user' => 'myvidster',
'api_key' => 'bppq296t',
);
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
return $result;
}
function load_js_scripts() {
global $glb_js_ver;
//$cb=127;
$output="";
$js_files[]='/js/jquery-1.12.4.js';
$js_files[]='/js/jquery-migrate-1.4.1.js';
$js_files[]='/js/jquery-ui.min.js';
$js_files[]='/js/jquery.address-1.5.min.js';
$js_files[]='/js/myv_address.js';
$js_files[]='/js/jquery.qtip-1.0.0-rc3.min.js';
$js_files[]='/js/loadingoverlay.min.js';
$js_files[]='/js/vidster.js';
//$js_files[]='/js/core_engine.js';
$js_files[]='/js/smartbanner/jquery.smartbanner.js';
foreach($js_files as $js_file) {
$output .= "\n";
}
$output .= ''; //needs CB for auto refresh
return $output;
}
function load_css_scripts() {
global $glb_css_ver;
$output="";
$css_files[]='/css/style.css?type=css';
$css_files[]='/css/redmond/jquery-ui-1.8.22.custom.css?type=css';
$css_files[]='/css/smartbanner/jquery.smartbanner.css?type=css';
//$css_files[]='/arrowchat/external.php?type=css';
foreach($css_files as $css_file) {
$output .= "\n";
}
return $output;
}
function is_mobile($ua) {
if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$ua)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($ua,0,4))) {
return true;
}
else {
return false;
}
}
function sendgrid_suppressions($email) {
$api="https://api.sendgrid.com/v3/asm/suppressions/global/$email";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $api);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_TIMEOUT, 30);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer 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'
));
$reponse = curl_exec ($ch);
curl_close($ch);
$json = json_decode($reponse, true);
return $json;
}
function sendgrid_resub($email) {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.sendgrid.com/v3/asm/suppressions/global/$email",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_POSTFIELDS => "{}",
CURLOPT_HTTPHEADER => array(
"authorization: Bearer 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"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
}
function sanitize_url_check($url) {
if(!$url) {
return false;
}
// Remove all illegal characters from a url
$url = filter_var($url, FILTER_SANITIZE_URL);
// php FILTER_VALIDATE_URL is fucking broken, thanks!
if(substr($url,0,4) != 'http') {
return false;
}
if(!filter_var($url, FILTER_VALIDATE_URL)) {
return false;
}
return true;
}
function is_admin($user_id) {
global $mysql_link_slave2;
$results = false;
if($user_id) {
$sql="SELECT m_value FROM `myvidster_vars` WHERE `m_name` = 'admin' and m_value = '$user_id' and m_key=1";
$result = @mysql_query($sql,$mysql_link_slave2);
$row = @mysql_fetch_array($result);
$m_value = $row['m_value'];
if($m_value) $results = true;
}
return $results;
}
function is_php_server($ip) {
global $mysql_link_slave2;
$sql="SELECT id FROM `myvidster_vars` WHERE `m_name` = 'php_server' and m_value = '$ip' and m_key=1";
$result = mysql_query($sql,$mysql_link_slave2);
$row = mysql_fetch_array($result);
$id = $row['id'];
if($id)
$is_php_server = true;
else
$is_php_server = false;
return $is_php_server;
}
function pornhub_api($video_id) {
$result = get_web_page($video_id,true);
$ph_content = $result['content'];
$ph_thumb = string_extact('thumbnailUrl": "','"',$ph_content);
return $ph_thumb;
}
function unparse_url($parsed_url) {
$scheme = isset($parsed_url['scheme']) ? $parsed_url['scheme'] . '://' : '';
$host = isset($parsed_url['host']) ? $parsed_url['host'] : '';
$port = isset($parsed_url['port']) ? ':' . $parsed_url['port'] : '';
$user = isset($parsed_url['user']) ? $parsed_url['user'] : '';
$pass = isset($parsed_url['pass']) ? ':' . $parsed_url['pass'] : '';
$pass = ($user || $pass) ? "$pass@" : '';
$path = isset($parsed_url['path']) ? $parsed_url['path'] : '';
$query = isset($parsed_url['query']) ? '?' . $parsed_url['query'] : '';
$fragment = isset($parsed_url['fragment']) ? '#' . $parsed_url['fragment'] : '';
return "$scheme$user$pass$host$port$path$query$fragment";
}
function is_valid_domain($url){
$validation = FALSE;
/*Parse URL*/
$urlparts = parse_url(filter_var($url, FILTER_SANITIZE_URL));
/*Check host exist else path assign to host*/
if(!isset($urlparts['host'])){
$urlparts['host'] = $urlparts['path'];
}
if($urlparts['host']!=''){
/*Add scheme if not found*/
if (!isset($urlparts['scheme'])){
$urlparts['scheme'] = 'http';
}
/*Validation*/
if(checkdnsrr($urlparts['host'], 'A') && in_array($urlparts['scheme'],array('http','https')) && ip2long($urlparts['host']) === FALSE){
$urlparts['host'] = preg_replace('/^www\./', '', $urlparts['host']);
$url = $urlparts['scheme'].'://'.$urlparts['host']. "/";
if (filter_var($url, FILTER_VALIDATE_URL) !== false && @get_headers($url)) {
$validation = TRUE;
}
}
}
if(!$validation){
return true;
}else{
return false;
}
}
function is_working_url($url) {
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_NOBODY, true);
curl_setopt($handle, CURLOPT_TIMEOUT, 20);
curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
curl_exec($handle);
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
curl_close($handle);
if ($httpCode >= 200 && $httpCode < 300) {
return true;
}
else {
return false;
}
}
function getjpegsize($img_loc) {
$handle = @fopen($img_loc, "rb") or die("Invalid file stream.");
$new_block = NULL;
if(!feof($handle)) {
$new_block = fread($handle, 32);
$i = 0;
if($new_block[$i]=="\xFF" && $new_block[$i+1]=="\xD8" && $new_block[$i+2]=="\xFF" && $new_block[$i+3]=="\xE0") {
$i += 4;
if($new_block[$i+2]=="\x4A" && $new_block[$i+3]=="\x46" && $new_block[$i+4]=="\x49" && $new_block[$i+5]=="\x46" && $new_block[$i+6]=="\x00") {
// Read block size and skip ahead to begin cycling through blocks in search of SOF marker
$block_size = unpack("H*", $new_block[$i] . $new_block[$i+1]);
$block_size = hexdec($block_size[1]);
while(!feof($handle)) {
$i += $block_size;
$new_block .= fread($handle, $block_size);
if($new_block[$i]=="\xFF") {
// New block detected, check for SOF marker
$sof_marker = array("\xC0", "\xC1", "\xC2", "\xC3", "\xC5", "\xC6", "\xC7", "\xC8", "\xC9", "\xCA", "\xCB", "\xCD", "\xCE", "\xCF");
if(in_array($new_block[$i+1], $sof_marker)) {
// SOF marker detected. Width and height information is contained in bytes 4-7 after this byte.
$size_data = $new_block[$i+2] . $new_block[$i+3] . $new_block[$i+4] . $new_block[$i+5] . $new_block[$i+6] . $new_block[$i+7] . $new_block[$i+8];
$unpacked = unpack("H*", $size_data);
$unpacked = $unpacked[1];
$height = hexdec($unpacked[6] . $unpacked[7] . $unpacked[8] . $unpacked[9]);
$width = hexdec($unpacked[10] . $unpacked[11] . $unpacked[12] . $unpacked[13]);
return array($width, $height);
} else {
// Skip block marker and read block size
$i += 2;
$block_size = unpack("H*", $new_block[$i] . $new_block[$i+1]);
$block_size = hexdec($block_size[1]);
}
} else {
return FALSE;
}
}
}
}
}
return FALSE;
}
?>