میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

عکس گرفتن از صفحات وب با PHP

برای عکس گرفتن از صفحات وب با استفاده از google page speed insights نیاز به ارسال ۲ پارامتر داریم!

  • پارامتر url : این پارامتر آدرس وب سایت مورد نظر شما را مشخص میکند
  • پارامتر screenshot : برای گرفتن تصویر وب سایت مورد نظر این پارامتر باید برابر با true باشد.

خب بریم سر اصل مطلب و ببینیم نحوه ی کار چجوری هست. به کدهای زیر دقت کنید :

<?php
    function getData($siteURL){
        $url=“https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url=”.$siteURL.“&screenshot=true”;
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_REFERER, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        $result = curl_exec($ch);
        curl_close($ch);
        return $result;
    }
    //website url
    $siteURL = “http://www.tarhche.com/”;
    //call Google PageSpeed Insights API
    $googlePagespeedData = getData($siteURL);
    //decode json data
    $googlePagespeedData = json_decode($googlePagespeedData, true);
    //screenshot data
    $screenshot = $googlePagespeedData[‘screenshot’][‘data’];
    $screenshot = str_replace(array(‘_’,‘-‘),array(‘/’,‘+’),$screenshot);
    //display screenshot image
    echo “<img src=\”data:image/jpeg;base64,”.$screenshot.“\” />”;

مثال بالا نحوه ی استفاده از Google PageSpeed Insights برای گرفتن اسکرین شات از وب سایت مورد نظر ما رو نشون میده. در اینجا من ادرس وب سایت خودم رو درون متغیر siteURL قرار دادم سپس با استفاده از تابع getData به وسیله ی cURL یک درخواست به گوگل ارسال کردم. نتیجه ی دریافتی به صورت json خواهد بود که با استفاده از json_decode میتونید اون رو از حالت JSON به حالتی که برای PHP قابل استفاده باشد تبدیل کنید. سپس علامت های – , _ رو با + و / جایگزین میکنیم , تصویر دریافتی به صورت base64 خواهد بود و در اخر اون رو نمایش میدیم.

اگه میخواید این اسکریپت رو روی لوکال هاست (localhost) تست کنید باید بدونید که گوگل ایران رو تحریم کرده و ممکنه روی لوکال هاست شما کار نکنه چون IP ایران دارین! میتونید با نرم افزارهای قند شکن IP خودتون رو تغییر بدید به یه کشور دیگه و روی لوکال هاست تست بگیرید. اما روی سرور مشکلی وجود نداره مگر اینکه سرور شما داخل ایران باشه.

شما میتونید یه فرم طراحی کنید که URL یا ادرس سایت رو بگیره و عکسش رو نمایش بده نحوه ی انجام این کار به صورت زیر است :

<!doctype html>
<html>
    <head>
        <title>get websites screenShot using php</title>
        <meta charset=“UTF-8”>
    </head>
    <body>
        <form method=“post” action=<?php echo htmlentities($_SERVER[‘PHP_SELF’]); ?> >
            <p>Website URL: <input type=“text” name=“url” placeholder=“http://yoursite.com” /></p>
            <input type=“submit” name=“submit” value=“CAPTURE”>
        </form>
    </body>
</html>
<?php
function getData($siteURL){
    $url=“https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url=”.$siteURL.“&screenshot=true”;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_REFERER, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}
if(!empty($_POST[‘url’])){
    //website url
    $siteURL = $_POST[‘url’];
    if(filter_var($siteURL, FILTER_VALIDATE_URL)){
        //call Google PageSpeed Insights API
        $googlePagespeedData =getData($siteURL);
        //decode json data
        $googlePagespeedData = json_decode($googlePagespeedData, true);
        //screenshot data
        $screenshot = $googlePagespeedData[‘screenshot’][‘data’];
        $screenshot = str_replace(array(‘_’,‘-‘),array(‘/’,‘+’),$screenshot);
        //display screenshot image
        echo “<img src=\”data:image/jpeg;base64,”.$screenshot.“\” />”;
    }else{
        echo “Please enter a valid URL.”;
    }
}
?>

 


 

امیدواریم آموزش ‌عکس گرفتن از صفحات وب با PHP نیز برای شما مفید واقع شده باشد .برای مطالعه پست‌ها بیشتر ، ما را در مدرسه کدنویسی تلگرام  و یا در تی جوان اینستاگرام دنبال کنید.

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.

 

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟