رفتن به مطلب
jistili1

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

پست های پیشنهاد شده

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

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


لینک به ارسال

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

با استفاده از 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"; 
}; 

 

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


لینک به ارسال
در 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 قرار بدم؟

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


لینک به ارسال

سلام و درود

 

نقل قول

خیلی ممنونم.بعدش باید فرمتی که میخوام مثلا 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;

?>

 

موفق باشید

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


لینک به ارسال
در 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 دیگه؟

 

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


لینک به ارسال

درود مجدد

 

نقل قول

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

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

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

 

موفق باشید

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


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

درود مجدد

 

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

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

 

موفق باشید

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

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


لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • اضافه کردن...