PDA

View Full Version : دانلود به وسیله php



alireza es
جمعه 13 دی 1392, 14:19 عصر
با عرض سلام.قصد دارم یه اسکریپتی بنویسم که توی سایت برای مثال سایت زیر

www.xxxx.com/p0
بره و ابتدا p0 و سپس p1 و الی p1000 و بعد تمامی عکس ها وبسایتو داخل این مسیر c:/folder
بریزه تقریبا همه چیزش حاظره به جز اینکه من نمیدونم چطور میشه با php فایل دانلود کرد :لبخند:
ممنون میشم اگه دوستی کمکم کنه

marys_farahani
جمعه 13 دی 1392, 14:48 عصر
$file = 'apache_pb.gif';

if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}



readfile — Outputs a file (http://www.php.net/readfile)

foreach
جمعه 13 دی 1392, 14:58 عصر
با عرض سلام.قصد دارم یه اسکریپتی بنویسم که توی سایت برای مثال سایت زیر

www.xxxx.com/p0
بره و ابتدا p0 و سپس p1 و الی p1000 و بعد تمامی عکس ها وبسایتو داخل این مسیر c:/folder
بریزه تقریبا همه چیزش حاظره به جز اینکه من نمیدونم چطور میشه با php فایل دانلود کرد :لبخند:
ممنون میشم اگه دوستی کمکم کنه

اینطور که من متوجه شدم شما میخوای فایلی رو در یک مسیر مشخص دانلود کنی
یک مثال ساده میتونه این باشه


<?php
$file = 'http://localhost/image.gif';

$fileContent = file_get_contents($file);

file_put_contents('newImage.gif',$fileContent);

alireza es
جمعه 13 دی 1392, 15:03 عصر
خیلی ممنون اما نام فایل ها مشخص نیست و قراره با یه پسوند خاص مثلا jpg دانلود شن ینی مبنا بر اساس پسوند هست نه نام فایل
باید چی کار کنم؟یه آرایه ای از فایل ها بسازم؟
اگه این مورد رو هم راهنمایی کنین دیگه تایپکو میبندم :)

metal gear solid 4
جمعه 13 دی 1392, 15:59 عصر
شما باید از cURL استفاده کنید.
از file_get_contents هم میتونید استفاده کنید. فقط اگر صفحه ی مقصد ریدایرکت شده باشه، یا نیاز به استفاده از کوکی ها داشته باشید واسه لاگین و ... دیگه file_get_contens جوابگو نیست. بهتره از cURL استفاده کنید.
نتیجه ی استفاده از این تابع HTML صفحه ی مورد نظره. با استفاده از regular expression تصاویر دلخواهتون رو از بین تمامی تگ ها بیرون بکشید.
با استفاده از copy در PHP و تعیین کردن مبدا و مقصد ( مبدا که مسیر تصویری که استخراج کردید هست ) و مقصد هم یکی از دایرکتوری های شما، تصاویر رو کپی کنید.

نکته: سعی کن بین هر چند درخواستت یک وقفه ایجاد کنی. با استفاده از تگ متا. و یک ثانیه برای لد کردن مجدد صفحه ی خودت.
نکته : تابع sleep در PHP اینکارو برای شما انجام نمیده. چرا که درخواست شما همچنان به سرور ارسال شده هست و قطع ارتباطی صورت نمیگیره.
دلیلش اینه درخواست های cURL بسیار سریع تر از یک انسان معمولیه. و در صورتی که تعداد درخواست ها از سمت شما به سرور زیاد باشه که خواهد شد، فایروال سرور آیپی شمارو بلاک خواهد کرد.
برای جلوگیری از این مشکلات، علاوه بر وقفه از user agent های مختلف و تصادفی استفاده کن. توی اینترنت سرچ کن پیدا میکنی.
نکته: user agent هات باید مرتبط با نوع مرورگرت باشه. در غیر این صورت نتایج ناخواسته ای در خروجی میبینی.

به دنیای ربات نویسی خوش اومدی :)

alireza es
جمعه 13 دی 1392, 18:22 عصر
شما باید از cURL استفاده کنید.
از file_get_contents هم میتونید استفاده کنید. فقط اگر صفحه ی مقصد ریدایرکت شده باشه، یا نیاز به استفاده از کوکی ها داشته باشید واسه لاگین و ... دیگه file_get_contens جوابگو نیست. بهتره از cURL استفاده کنید.
نتیجه ی استفاده از این تابع HTML صفحه ی مورد نظره. با استفاده از regular expression تصاویر دلخواهتون رو از بین تمامی تگ ها بیرون بکشید.
با استفاده از copy در PHP و تعیین کردن مبدا و مقصد ( مبدا که مسیر تصویری که استخراج کردید هست ) و مقصد هم یکی از دایرکتوری های شما، تصاویر رو کپی کنید.

نکته: سعی کن بین هر چند درخواستت یک وقفه ایجاد کنی. با استفاده از تگ متا. و یک ثانیه برای لد کردن مجدد صفحه ی خودت.
نکته : تابع sleep در PHP اینکارو برای شما انجام نمیده. چرا که درخواست شما همچنان به سرور ارسال شده هست و قطع ارتباطی صورت نمیگیره.
دلیلش اینه درخواست های cURL بسیار سریع تر از یک انسان معمولیه. و در صورتی که تعداد درخواست ها از سمت شما به سرور زیاد باشه که خواهد شد، فایروال سرور آیپی شمارو بلاک خواهد کرد.
برای جلوگیری از این مشکلات، علاوه بر وقفه از user agent های مختلف و تصادفی استفاده کن. توی اینترنت سرچ کن پیدا میکنی.
نکته: user agent هات باید مرتبط با نوع مرورگرت باشه. در غیر این صورت نتایج ناخواسته ای در خروجی میبینی.

به دنیای ربات نویسی خوش اومدی :)
خیلی ممنون ولی حالا دارم با کلمات و اصطلاحاتی آشنا میشم که هرگز به گوشم نخورده
به نظر شما میشه چنین اسکریپتی رو با جاوا اسکریت نوشت؟یا حداقل تمامی قسمت ها مثل ریدایرکت و بیرون کشیدن تگ هارو با جاوا اسکریپت و دانلود رو با php (فکر نکنم جاوا اسکریپت بتونه دانلود کنه)
نظر شما چیه؟تریکبی از جاوا اسکریت و php باشه یا فقط php؟

metal gear solid 4
جمعه 13 دی 1392, 20:25 عصر
اون بستگی به خودتون داره. فقط حواستون باشه. صفحاتی که میخاید هدف قرار بدید اطلاعات رو به صورت Ajax قرار ندن. ربات هایی که مینویسید در واقع مثل انسان هایی هستند که مرورگرشون جاوااسکریپت رو ساپورت نمیکنه!! یعنی کد شما جاوااسکریپت رو ساپورت نخواهد کرد.