04/10/2018, 18:01

Cách lấy và hiển thị ảnh từ URL bằng PHP

Trước khi bắt đầu bài viết, mình xin chúc các bạn có một mùa Giáng Sinh vui vẻ và đầm ấm ,hạnh phúc bên gia đình và người thân của mình. Trong bài viết này, mình xin chia sẻ cho các bạn một đoạn code ngắn được viết bằng PHP , đoạn script này sẽ giúp các bạn lấy ảnh trực tiếp từ URL và hiển thị ảnh ...

Trước khi bắt đầu bài viết, mình xin chúc các bạn có một mùa Giáng Sinh vui vẻ và đầm ấm ,hạnh phúc bên gia đình và người thân của mình.  Trong bài viết này, mình xin chia sẻ cho các bạn một đoạn code ngắn được viết bằng PHP , đoạn script này sẽ giúp các bạn lấy ảnh trực tiếp từ URL và hiển thị ảnh thumnail trên trang web mà không cần phải tải về.

Cách lấy và hiển thị ảnh từ URL bằng PHP

displayImg.php

<?php 
//$url = "http://share.meebo.com/content/katy_perry/wallpapers/3.jpg"; 
$url = $_GET['url']; 

$url = str_replace("http:/","http://",$url); 

$allowed = array('jpg','gif','png'); 
$pos = strrpos($_GET['url'], "."); 
$str = substr($_GET['url'],($pos + 1)); 

$ch = curl_init(); 
$timeout = 0; 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 

// Getting binary data 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); 

$image = curl_exec($ch); 
curl_close($ch); 
// output to browser 
$im = @imagecreatefromstring($image); 

$tw = @imagesx($im); 
if(!$tw){ 
    // Font directory + font name 
    $font = '../../fonts/Austrise.ttf'; 
    // Size of the font 
    $fontSize = 18; 
    // Height of the image 
    $height = 32; 
    // Width of the image 
    $awidth = 250; 
    // Text 
    $str = 'Couldn't get image.'; 
    $img_handle = imagecreate ($awidth, $height) or die ("Cannot Create image"); 
    // Set the Background Color RGB 
    $backColor = imagecolorallocate($img_handle, 255, 255, 255); 
    // Set the Text Color RGB 
    $txtColor = imagecolorallocate($img_handle, 20, 92, 137);  
    $textbox = imagettfbbox($fontSize, 0, $font, $str) or die('Error in imagettfbbox function'); 
    $x = ($awidth - $textbox[4])/2; 
    $y = ($height - $textbox[5])/2; 
    imagettftext($img_handle, $fontSize, 0, $x, $y, $txtColor, $font , $str) or die('Error in imagettftext function'); 
    header('Content-Type: image/jpeg'); 
    imagejpeg($img_handle,NULL,100); 
    imagedestroy($img_handle);  
}else{ 
    if($str == 'jpg' || $str == 'jpeg') 
        header("Content-type: image/jpeg"); 
    if($str == 'gif') 
        header("Content-type: image/gif"); 
    if($str == 'png') 
        header("Content-type: image/png"); 
    $th = imagesy($im); 
    $thumbWidth = 200; 
    if($tw <= $thumbWidth){ 
        $thumbWidth = $tw; 
    } 
    $thumbHeight = $th * ($thumbWidth / $tw); 
    $thumbImg = imagecreatetruecolor($thumbWidth, $thumbHeight); 
    if($str == 'gif'){ 
        $colorTransparent = imagecolortransparent($im); 
        imagefill($thumbImg, 0, 0, $colorTransparent); 
        imagecolortransparent($thumbImg, $colorTransparent); 
    } 
    if($str == 'png'){ 
        imagealphablending($thumbImg, false); 
        imagesavealpha($thumbImg,true); 
        $transparent = imagecolorallocatealpha($thumbImg, 255, 255, 255, 127); 
        imagefilledrectangle($thumbImg, 0, 0, $thumbWidth, $thumbHeight, $transparent); 
    } 
    imagecopyresampled($thumbImg, $im, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $tw, $th); 


    if($str == 'jpg' || $str == 'jpeg'){ 
        imagejpeg($thumbImg, NULL, 100); 
    } 
    if($str == 'gif'){ 
        imagegif($thumbImg); 
    } 
    if($str == 'png'){ 
        imagealphablending($thumbImg,TRUE); 
        imagepng($thumbImg, NULL, 9, PNG_ALL_FILTERS); 
    } 
         
    imagedestroy($thumbImg); 
} 
?>

Lấy ảnh trực tiếp :

displayImg.php?url=http://thuthuatweb.net/images/image.jpg

Lấy ảnh sử dụng Tag :

<img src="displayImg.php?url=http://thuthuatweb.net/images/image.jpg" />

Mình hy vọng với đoạn script này sẽ giúp các bạn nâng cao khả năng lập trình , cũng như áp dụng được nhiều vào trong các dự án web của mình.

Chúc các bạn thành công !

Tags: code Snipppets php code

Chuyên Mục: PHP

Bài viết được đăng bởi webmaster

Bài liên quan

Cách lấy và hiển thị ảnh từ URL bằng PHP

Trước khi bắt đầu bài viết, mình xin chúc các bạn có một mùa Giáng Sinh vui vẻ và đầm ấm ,hạnh phúc bên gia đình và người thân của mình. Trong bài viết này, mình xin chia sẻ cho các bạn một đoạn code ngắn được viết bằng PHP , đoạn script này sẽ giúp các bạn lấy ảnh trực tiếp từ URL và hiển thị ảnh ...

Trịnh Tiến Mạnh viết 18:01 ngày 04/10/2018

Cách lấy YouTube Video Thumbnail từ URL bằng PHP

Với sự phát triển của livestream, thì hầu như mọi người đang tìm mọi cách post video để giới thiệu sản phẩm của mình trên Youtube channel. Và cũng có rất nhiều trang web sử dụng mã nhúng video từ Youtube để hiển thị những đoạn clip giới thiệu về công ty hay sản phẩm của họ. Trong bài viết này, ...

Bùi Văn Nam viết 17:56 ngày 04/10/2018

3 cách save hình từ url bằng PHP

Trong bài viết này mình sẽ giới thiệu cho các bạn 3 cách để lấy hình và save vào máy tính của bạn bằng PHP từ một đường dẫn bất kỳ trên internet, Nào chúng ta cùng khám phá nha. Cách 1 : Sử dụng file_get_contents $contents= file_get_contents('http://mydomain.com/folder/image.jpg'); ...

Trần Trung Dũng viết 17:54 ngày 04/10/2018

Lấy giá trị và hiển thị thứ hạng Alexa của website bằng PHP

Alexa là một dịch vụ xếp hạng website dựa vào thông tin về lưu lượng truy cập vào các trang web hay blog. Nếu trang web hay blog của các bạn càng có nhiều người truy cập thì thứ hạng mà bạn nhận được từ Alexa càng cao. Hôm nay mình sẽ chia sẻ cho các bạn một đoạn code đơn giản bằng PHP , đoạn code ...

Bùi Văn Nam viết 17:49 ngày 04/10/2018

Sử dụng curl download hình ảnh từ remote server và hiển thị ngay trên site của mình

Mình giả sử các bạn muốn lấy 1 tấm hình tại site của Góc Kinh Nghiệm (ví dụ tấm này http://gockinhnghiem.com/wp-content/uploads/global-cofiguration.gif) để hiển thị lên site các bạn. Dĩ nhiên các bạn có thể dùng trực tiếp link trên nhưng ở đây mình muốn mô tả cách dùng CURL để đạt cùng một mục ...

Trần Trung Dũng viết 17:31 ngày 01/10/2018
0