siavashsay
یک شنبه 01 بهمن 1391, 16:07 عصر
دوستان یه مدتی فکرم درگیر گرفتن ScreenShot از صفحه یک سایت و ذخیره اون بروی هاست خودم بود !
توی PHP نمیشه اینکارو کرد ( البته در هاست های Linux ) با هاست ویندوز میشد !
اما یک سری سایت ها هستن که API میدن و میتونی از لینک اونا استفاده کنی !
یعنی مثلا سایت thumbshot.org میاد لینک رو از شما میگیره و عکس اون لینک رو به شما میده !
مثال :
http://open.thumbshots.org/image.pxf?url=http://www.google.com
اگه به این لینک برین میتونین عکس صفحه گوگل رو که کوچک هست ببینید ! و اگر خواستید با کد :
<img src="http://open.thumbshots.org/image.pxf?url=http://www.google.com" />
در سایتتون اون عکس رو نمایش بدید !
اما یک مشکلی وجود داشت !
اونم این بود که شما عکس رو باید مرتبا از اون سایت بگیرید و اگر اون سایت به هر دلیلی دیگه نبود عکس شما دیگه نمایش داده نمیشد !
باید کاری میکردید که این عکس توی سرور خودتون واسه یک بار ذخیره بشه و بعد ازون استفاده کنید نه از لینک اون سایت !
حالا بنده با CURL این کارو کردم و خواستم به بقیه دوستان هم بگم که شاید موثر باشه واسشون !
این کد :
if(isset($_GET['url'])){
$imgUrl=$_GET['url'];
$mixUrl='http://open.thumbshots.org/image.pxf?url='.$imgUrl;
$name=time();
$ch = curl_init ($mixUrl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$raw=curl_exec($ch);
curl_close ($ch);
$fp = fopen("images/".$name.'.png','x');// میتونید مسیر پوشه مورد نظر برای آپلود عکس رو توی سرور خودتون بدید
if(fwrite($fp, $raw)){
return 1;
}else{
return 0;
}
fclose($fp);
}
توضیح !
http://www.Your-Site.com/getimg.php?url=http://www.google.com
این کد آدرس URL مورد نظر برای عکس رو میگیره ( از طریق متغیر GET ) و اون رو به سایت thumbshot.org میفرسته !
عکس رو از اون سایت میگیره و بعد در مسیری که شما بهش دادین ( روی سرور خودتون ) ذخیره میکنه !
ازون به بعد شما با این کد :
<img src="Your_Image_Folder/file.png" />
میتونید عکس رو از سرور خودتون توی صفحه مورد نظر ساییتون نشون بدید !
موفق باشید !:)
توی PHP نمیشه اینکارو کرد ( البته در هاست های Linux ) با هاست ویندوز میشد !
اما یک سری سایت ها هستن که API میدن و میتونی از لینک اونا استفاده کنی !
یعنی مثلا سایت thumbshot.org میاد لینک رو از شما میگیره و عکس اون لینک رو به شما میده !
مثال :
http://open.thumbshots.org/image.pxf?url=http://www.google.com
اگه به این لینک برین میتونین عکس صفحه گوگل رو که کوچک هست ببینید ! و اگر خواستید با کد :
<img src="http://open.thumbshots.org/image.pxf?url=http://www.google.com" />
در سایتتون اون عکس رو نمایش بدید !
اما یک مشکلی وجود داشت !
اونم این بود که شما عکس رو باید مرتبا از اون سایت بگیرید و اگر اون سایت به هر دلیلی دیگه نبود عکس شما دیگه نمایش داده نمیشد !
باید کاری میکردید که این عکس توی سرور خودتون واسه یک بار ذخیره بشه و بعد ازون استفاده کنید نه از لینک اون سایت !
حالا بنده با CURL این کارو کردم و خواستم به بقیه دوستان هم بگم که شاید موثر باشه واسشون !
این کد :
if(isset($_GET['url'])){
$imgUrl=$_GET['url'];
$mixUrl='http://open.thumbshots.org/image.pxf?url='.$imgUrl;
$name=time();
$ch = curl_init ($mixUrl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$raw=curl_exec($ch);
curl_close ($ch);
$fp = fopen("images/".$name.'.png','x');// میتونید مسیر پوشه مورد نظر برای آپلود عکس رو توی سرور خودتون بدید
if(fwrite($fp, $raw)){
return 1;
}else{
return 0;
}
fclose($fp);
}
توضیح !
http://www.Your-Site.com/getimg.php?url=http://www.google.com
این کد آدرس URL مورد نظر برای عکس رو میگیره ( از طریق متغیر GET ) و اون رو به سایت thumbshot.org میفرسته !
عکس رو از اون سایت میگیره و بعد در مسیری که شما بهش دادین ( روی سرور خودتون ) ذخیره میکنه !
ازون به بعد شما با این کد :
<img src="Your_Image_Folder/file.png" />
میتونید عکس رو از سرور خودتون توی صفحه مورد نظر ساییتون نشون بدید !
موفق باشید !:)