Bing Search Image API Azure Format Json PHP

Format xml search image dengan Bing API lawas yang gratis alias free, sudah tidak berlaku. Yang dipakai sekarang Bing API V.2 atau dengan Windows Azure Markerplace, masih ada yang gratis walaupun terbatas (limit) hanya sampai 5000 request. Dengan menggunakan format Bing Windows Azure, kita dapat melakukan parsing PHP yang sederhana untuk Bing Search Image format json dengan cara berikut:

Membuat Form Search Box

<form method="get" action="<?php echo $_SERVER['PHP_SELF'];?>">
	Type in a search:
<input type="text" id="searchText" name="s"
	value="<?php
		if (isset($_GET['s']))
		{
			echo($_GET['s']); 
		}
			else 
		{ 
			echo('superman');
		}
?>"/>
<input type="submit" value="Search" id="searchButton" />
</form>

Menampilkan hasil pencarian gambar berdasarkan kata kunci (keyword) yang ditentukan.

if (isset($_GET['s'])) {
	$accountKey = 'your-account-key-here'; //get it here https://datamarket.azure.com/account
	$ServiceRootURL =  'https://api.datamarket.azure.com/Bing/Search/';
	$count = 2;//total list
        $skip  = 0; //for paged
        $WebSearchURL = $ServiceRootURL . 'Image?$format=json&$top=' . $count . '&$skip=' . $skip . '&Query=';
	$context = stream_context_create(array(
		'http' => array(
		'request_fulluri' => true,
		'header'  => "Authorization: Basic " . base64_encode($accountKey . ":" . $accountKey)
			)
	));
	$request = $WebSearchURL . urlencode( '\'' . $_GET['s'] . '\'');
	$response = file_get_contents($request, 0, $context);
	$jsonobj = json_decode($response);
	echo('<ul id="result">');
	foreach($jsonobj->d->results as $value)
	{                        
		echo('<li class="resultlistitem">');
		echo('<b>Title</b>: ' . $value->Title .'<br>');
		echo('<b>Url</b>: ' . $value->MediaUrl .'<br>');
		echo('<b>Source</b>: ' . $value->SourceUrl .'<br>');
		echo('<b>Display Url</b>: ' . $value->DisplayUrl .'<br>');
		echo('<b>Width</b>: ' . $value->Width .' px<br>');
		echo('<b>Height</b>: ' . $value->Height .' px<br>');
		echo('<b>File Size</b>: ' . KByteSize($value->FileSize) .'<br>');
		echo('<b>Image Type</b>: ' . $value->ContentType .'<br>');
		echo('<b>Thumbnail Url</b>: ' . $value->Thumbnail->MediaUrl . '<br>');					
		echo('<b>Thumbnail Display</b>:<br><img src="' . $value->Thumbnail->MediaUrl. '"><br>');
		echo('<b>Large Image Display</b>:<br><img src="' . $value->MediaUrl. '">');
		echo('</li>');
	}
	echo("</ul>");
}
//function to convert file size image
function KByteSize($bytes) {
    $size = $bytes / 1024;
    if($size < 1024)
        {
        $size = number_format($size, 2);
        $size .= ' KB';
        } 
    else 
        {
        if($size / 1024 < 1024) 
            {
            $size = number_format($size / 1024, 2);
            $size .= ' MB';
            } 
        else if ($size / 1024 / 1024 < 1024)  
            {
            $size = number_format($size / 1024 / 1024, 2);
            $size .= ' GB';
            } 
        }
    return $size;
}

Tampilannya seperti gambar ini

Tampilan API Bing Search Image

Pastikan Anda mencantumkan Primary/Account Key Anda dalam kode tersebut, silahkan daftar di Windows Azure https://datamarket.azure.com/account, gratis terbatas. Semoga bermanfaat.

Reference Code
Migrating Bing Search API Applications


 Share

Published by

Jevuska

Rachmanuddin Chair Yahya a.k.a Jevuska is the founder of Jevuska.Com, a qualified web about offering medical articles, blogging, tips, and tutorial of WordPress. Having written for Jevuska since 2007.

Code is my cookies. ~ Jev
Before you read or leave a comment, please take a couple minutes to read our Copyright & Disclaimer notice.

26 thoughts on “Bing Search Image API Azure Format Json PHP”

  1. Gan gimana agar permalink search uniq, asalnya kan gini : www.namadomain.com/?s=good+images&cat=0

    agar seperti ini www.namadomain.com/search/good-images.html atau gini www.namadomain.com/search-good-images.html

    Gimana?

    Gan , ane pasang script diatas di theme AGC vitarich dan permalink search STT2 seperti ini www.namadomain.com/search/good-images.html
    Nah tu script diatas nggak work (AGC image ngk tampil), script baru jalan jika permalink nya /?s=good+images&cat=0

    Lalu piye solusine gan?

    1. Perlu dimengerti mas, script PHP ini masih mentah, sangat mentah bahkan, dan bukan cuma diperuntukkan hanya untuk WordPress, karena blog ini punya kategori khusus untuk tutor WordPress, begitu juga script-script lainnya yang ada di blog ini. Jadi tidak bisa langsung digunakan untuk production site, just development. Jadi tugasnya para developer untuk menyesuaikannya dengan cms atau aplikasi yang digunakan. Khusus WP, kalau masalah permalink, plugin STT2EXTAT sudah ada menyediakan pengaturan permalink untuk itu, query s harus diganti get_search_query. please try to learn more about WP theme here https://developer.wordpress.org/themes/getting-started/ dan solusi lainnya please contact your developer.

  2. rame lagi post agc imagenya semenjak google update api hehehe..kalo pake yang ini kira2 kalo kuota azure limit jadi eror image gak nongol ya bang?masih ragu nih buat masang entar baru masang seminggu udah keburu limit hehehe.
    jadi eror nih bang bisa bantuin bang?ane ada script agc image yg masih work tapi ane gak bisa edit biar jadi 1 file php doang

      1. bukan virus bang mungkin iklan popup nakal hehehe..
        agc .ane ada plugin agc wordpress yg agc imagenya masih work..bisa bang jevuska bantu edit biar jd 1 file php/yang lebih simple.ane email ya bang…kesian situs ane page imagenya melompong hehehe

  3. Thanks gan, script nya work. tapi ane ingin pasang script nya di 404.php coding nya gimana gan, ane sdah coba2 tetap ngak work

    Please bantu ane gan

    1. Untuk WordPress, kode ini menggunakan GET dengan parameter s yang ditujukan untuk halaman search, sedangkan halaman 404 tidak merequest query varian s, lebih baik tetap menggunakan halaman search.php di tambahkan di bagian loop jika tidak ada post yang ditampilkan dan code PHP header tetap 200 OK. Halaman search yang “not Found” bukan berarti itu adalah halaman 404. Selalu hindari halaman web kita menuju ke halaman 404.

      1. Begitu baiklah. Terima kasih atas jawabannya

        Maaf gan masih belum paham, bisakah jika script di atas dipasang di singlepost.php dan work?

        Jika iya, coding nya gimana?

        1. Untuk WP, itu tergantung dari apa yang ingin kita request dari halaman WP. Jika hanya menginginkan title halaman yang direquest pada single post, cukup menggunakan single_post_title() menggantikan $_GET[‘s’]

  4. Gan nih script masih work nggak?
    nggak ada contoh blognya gan work atau nggak gitu?

    Please Gan share script AGC Google search image terbaru nya Gan?

    1. Scriptnya ada.. kebetulan ada sobat blogger yang bagi via email kemarin… tapi saya dilarang share. So sorry, belum bisa saya share.

  5. dalam satu pencarian defauld nya 50 gambar.kalo pingin page 2 atau gambar yg 51 ke atas gimana ya mas ?
    coba gunakan page=2 gak bisa

  6. Mau tanya om , caranya kalau menambahkan lebih dari api key gimana ya codingnya ? jadi kalau 5000 api pertama habis, otomatis pakai api kedua dan seterusnya.. terima kasih.

    1. belum tersedia API untuk mengetahui total request, jadi musti selalu memantau di https://datamarket.azure.com/account/datasets

  7. Eror bang
    Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in /home/***

    1. trying to compile with curl like this code http://www.jevuska.com/2013/04/15/parsing-rss-menggunakan-curl-dan-simplexmlelement/ or this one may solve your issue… http://php.net/manual/en/migration56.openssl.php

Tinggalkan Komentar