jistili1

دریافت لینک های دانلود از یک صفحه وب

7 پست در این موضوع قرار دارد

سلام دوستان.میخوام برای وردپرس یه تابع بهم معرفی کنید که بهش بگم برو داخل فلان صفحه وب ، توی اون صفحه هر چی لینک با فرمت مثلا mp4 بود رو برگردون اینجا که بهت میگم.مثلا یه صفحه ای از یک وب که توش دانلود یک فیلم با کیفیت های مختلفه که میتونه چند تا لینک باشه ، همه اون لینک ها که فرمتشون یا mp4 هست و یا mkv برام بیار.خواهش میکنم جوابم رو بدید.خیلی نیاز دارم.اگه متوجه منظورم نشدید بگید یه جور دیگه توضیح بدم.خیلی ممنون.

0

به اشتراک گذاری این پست


لینک به پست

وردپرس چنین تابعی نداره شما باید خودتون بنویسین

با استفاده از curl , domdocument , xpath میتونین این کار رو انجام بدین

$url = 'http://www.xexample.com/download';
$ch  = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result = curl_exec ($ch);
$doc    = new DOMDocument; 
$doc->load($result); 
$items = $doc->getElementsByTagName('a'); 

foreach($items as $value) { 
    echo $value->nodeValue . "\n"; 
    $attrs = $value->attributes; 
    echo $attrs->getNamedItem('href')->nodeValue . "\n"; 
}; 

 

1

به اشتراک گذاری این پست


لینک به پست
در 17 ساعت قبل، lord_viper گفته است :

وردپرس چنین تابعی نداره شما باید خودتون بنویسین

با استفاده از curl , domdocument , xpath میتونین این کار رو انجام بدین


$url = 'http://www.xexample.com/download';
$ch  = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result = curl_exec ($ch);
$doc    = new DOMDocument; 
$doc->load($result); 
$items = $doc->getElementsByTagName('a'); 

foreach($items as $value) { 
    echo $value->nodeValue . "\n"; 
    $attrs = $value->attributes; 
    echo $attrs->getNamedItem('href')->nodeValue . "\n"; 
}; 

 

خیلی ممنونم.بعدش باید فرمتی که میخوام مثلا mp4 رو درون تابع get elementsbytagname به جای a قرار بدم؟

0

به اشتراک گذاری این پست


لینک به پست

سلام و درود

 

نقل قول

خیلی ممنونم.بعدش باید فرمتی که میخوام مثلا mp4 رو درون تابع get elementsbytagname به جای a قرار بدم؟

خیر.

برای اینکه فقط به شما لینک هایی که فرمتشون mp4 هست نمایش داده بشه باید از کد زیر استفاده کنید.

<?php

function curl($url) {

	$ch = curl_init();
	$timeout = 0;
	$header=array(
	'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12',
	'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
	'Accept-Language: en-us,en;q=0.5',
	'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7',
	'Connection: keep-alive',
	'Keep-Alive: 300'
	);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_ENCODING, "");
	$data = curl_exec($ch);
	$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
	
	if ($httpCode != 200)
		return false;
	
	curl_close($ch);
	return $data;
}

$site = curl('http://example.com/');

if($site) :

	$dom = new DOMDocument();
	@$dom->loadHTML(mb_convert_encoding($site, 'HTML-ENTITIES', 'UTF-8'));
	$links = $dom->getElementsByTagName('a');
	
	foreach($links as $link) :
	
	if(
	pathinfo($link->getAttribute('href'), PATHINFO_EXTENSION) == 'mp4'
	||
	pathinfo($link->getAttribute('href'), PATHINFO_EXTENSION) == 'MP4'
	)
		echo $link->getAttribute('href') . '<br>';
	
	endforeach;
	
else :

	echo "مشکلی در لود سایت به وجود آمده است";
	
endif;

?>

 

موفق باشید

1

به اشتراک گذاری این پست


لینک به پست
در 12 ساعت قبل، naghmesara گفته است :

سلام و درود

 

خیر.

برای اینکه فقط به شما لینک هایی که فرمتشون mp4 هست نمایش داده بشه باید از کد زیر استفاده کنید.


<?php

function curl($url) {

	$ch = curl_init();
	$timeout = 0;
	$header=array(
	'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12',
	'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
	'Accept-Language: en-us,en;q=0.5',
	'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7',
	'Connection: keep-alive',
	'Keep-Alive: 300'
	);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_ENCODING, "");
	$data = curl_exec($ch);
	$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
	
	if ($httpCode != 200)
		return false;
	
	curl_close($ch);
	return $data;
}

$site = curl('http://example.com/');

if($site) :

	$dom = new DOMDocument();
	@$dom->loadHTML(mb_convert_encoding($site, 'HTML-ENTITIES', 'UTF-8'));
	$links = $dom->getElementsByTagName('a');
	
	foreach($links as $link) :
	
	if(
	pathinfo($link->getAttribute('href'), PATHINFO_EXTENSION) == 'mp4'
	||
	pathinfo($link->getAttribute('href'), PATHINFO_EXTENSION) == 'MP4'
	)
		echo $link->getAttribute('href') . '<br>';
	
	endforeach;
	
else :

	echo "مشکلی در لود سایت به وجود آمده است";
	
endif;

?>

 

موفق باشید

خیلی خیلی ممنونم.بعدش باید بزارمش توی function.php دیگه؟

 

0

به اشتراک گذاری این پست


لینک به پست

درود مجدد

 

نقل قول

خیلی خیلی ممنونم.بعدش باید بزارمش توی function.php دیگه؟

خیر. این کد برای فایل functions.php نوشته نشده.

صرفا کدی هست که کاری رو که گفتید انجام میده. شما میتونید با الگو گیری از روی این کد ، کد مورد نظر خود رو بنویسید و ازش در فانکشن استفاده کنید.

 

موفق باشید

0

به اشتراک گذاری این پست


لینک به پست
در 8 ساعت قبل، naghmesara گفته است :

درود مجدد

 

خیر. این کد برای فایل functions.php نوشته نشده.

صرفا کدی هست که کاری رو که گفتید انجام میده. شما میتونید با الگو گیری از روی این کد ، کد مورد نظر خود رو بنویسید و ازش در فانکشن استفاده کنید.

 

موفق باشید

دستت درد نکنه.خیلی لطف کردید.

1

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری