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

Bing Image Api
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

39 Replies to “Bing Search Image API Azure Format Json PHP”

  1. bang gambarnya gede bingitz sampe meluber2 hehehe cara ngecilin gimana…

    bang gambarnya gede bingitz sampe meluber2 hehehe
    cara ngecilin gimana bang?maksud ane kalo kita klik baru muncul resolusi gambar aslinya,jadi kalo tampil disitus imagenya pada ukuran rata yang kita inginkan.
    tks sebelumnya bang :)

    • Di set mas dikodenya, ganti <pre style="overflow:scroll">$value->MediaUrl</pre> menjadi <pre style="overflow:scroll">$value->Thumbnail->MediaUrl</pre>

      Di set mas dikodenya, ganti

      $value->MediaUrl

      menjadi

      $value->Thumbnail->MediaUrl
      • terlalu cepat abis limit azzurenya bang :( ada opsi lain?

        terlalu cepat abis limit azzurenya bang :(
        ada opsi lain?

        • pake yang berbayar or contact via email gan.

          pake yang berbayar or contact via email gan.

  2. seep gan…. btw, kalau mau ambil image yg size-nya Large…

    seep gan….
    btw, kalau mau ambil image yg size-nya Large aja gmn gan?

    tks

    • Dari beberapa opsi echo dalam kode ini, untuk large size…

      Dari beberapa opsi echo dalam kode ini, untuk large size

      echo('<b>Large Image Display</b>:<br><img src="' . $value->MediaUrl. '">');
      • maksud ane sortir langsung dari: $WebSearchURL = $ServiceRootURL . ‘Image?$format=json&$top=’…

        maksud ane sortir langsung dari:
        $WebSearchURL = $ServiceRootURL . ‘Image?$format=json&$top=’ . $count . ‘&$skip=’ . $skip . ‘&Query=’;

        udah ane coba ambil image dari parameter $value->MediaUrl,
        tapi yg size kecil juga ikut keangkut.

        tks reply-nya :)

        • Kode $WebSearchURL nggak perlu di sortir mas. Untuk menghapus thumbnail,…

          Kode $WebSearchURL nggak perlu di sortir mas. Untuk menghapus thumbnail, cukup hilangkan kode

          echo('<b>Thumbnail Url</b>: ' . $value->Thumbnail->MediaUrl . '<br>');
          echo('<b>Thumbnail Display</b>:<br><img src="' . $value->Thumbnail->MediaUrl. '"><br>');
  3. Gan gimana agar permalink search uniq, asalnya kan gini :…

    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?

    • Perlu dimengerti mas, script PHP ini masih mentah, sangat mentah…

      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.

  4. rame lagi post agc imagenya semenjak google update api hehehe..kalo…

    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

    • link pagenya di baca ada virusnya gan. Sorry.. gak bisa…

      link pagenya di baca ada virusnya gan. Sorry.. gak bisa dibuka.

      • bukan virus bang mungkin iklan popup nakal hehehe.. agc .ane…

        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

        • send code via email gan… nanti coba dibantu.

          send code via email gan… nanti coba dibantu.

  5. Thanks gan, script nya work. tapi ane ingin pasang script…

    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

    • Untuk WordPress, kode ini menggunakan GET dengan parameter s yang…

      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.

      • Begitu baiklah. Terima kasih atas jawabannya Maaf gan masih belum…

        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?

        • Untuk WP, itu tergantung dari apa yang ingin kita request…

          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’]

          • Maaf gan Karena saya nggak paham coding dan PHP. iya…

            Maaf gan

            Karena saya nggak paham coding dan PHP.

            iya script diatas untuk page search.php namun karena theme yang saya gunakan AGC nya dipage 404.php,

            Jadi please untuk memanggil script AGC diatas agar berjalan di page 404.php (request di page 404.php), scriptnya gimana?

            • gunakan $_SERVER[‘REQUEST_URI’] combine dengan str_replace atau preg_replace untuk menghilangkan beberapa…

              gunakan $_SERVER[‘REQUEST_URI’] combine dengan str_replace atau preg_replace untuk menghilangkan beberapa path untuk mendapatkan kw-nya. And remember don’t create your 404 page crawled to index by robots, its harm for your site.

  6. Gan nih script masih work nggak? nggak ada contoh blognya…

    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?

    • Scriptnya ada.. kebetulan ada sobat blogger yang bagi via email…

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

  7. dalam satu pencarian defauld nya 50 gambar.kalo pingin page 2…

    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

    • gunakan parameter skip mas. code update.

      gunakan parameter skip mas. code update.

  8. minta link dawnload source kodenya gan

    minta link dawnload source kodenya gan

    • kalau maksudnya kode referensinya ada di sini http://go.microsoft.com/fwlink/?LinkID=248077

      kalau maksudnya kode referensinya ada di sini http://go.microsoft.com/fwlink/?LinkID=248077

  9. Mau tanya om , caranya kalau menambahkan lebih dari api…

    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.

    • belum tersedia API untuk mengetahui total request, jadi musti selalu…

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

  10. dulu waktu di bing untuk filter safemode=on,off ….kalo di azure…

    dulu waktu di bing untuk filter safemode=on,off ….kalo di azure pakai apa mas ?
    makasih banyak sebelum nya

    • Try “Adult” as parameter and “Off|Moderate|Strict” as optional values.

      Try “Adult” as parameter and “Off|Moderate|Strict” as optional values.

  11. kode di atas include php 5 gak gan?trims

    kode di atas include php 5 gak gan?trims

  12. kalo kita mau letakan di search.php wordpress di taro di…

    kalo kita mau letakan di search.php wordpress di taro di mana yah kang?

    • before or after the_content loop

      before or after the_content loop

  13. Eror bang Warning: file_get_contents(): SSL operation failed with code 1.…

    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/***[text language=”filtered”][/text]

    • Maaf Gan Sebenarnya malu tanya melulu Mohon bantuannya ya Kode…

      Maaf Gan

      Sebenarnya malu tanya melulu

      Mohon bantuannya ya

      Kode ini $_GET[‘s’] semuanya sdah diganti dengan $_SERVER[‘REQUEST_URI’]

      Permasalahan nya untuk kode str_replace atau preg_replace ini cara gabungnya gimana, (sdah cari2 digoogle and dicoba2 ngk bisa)

      Please Gan kasih contoh lengkapnya ya untuk 404.php seperti contoh diatas (search.php)

      Terima kasih sebelumnya Gan

      • Misalnya url halaman error itu seperti ini http://www.example.com/topic/whatever-this-keywords.html, maka: <pre…

        Misalnya url halaman error itu seperti ini http://www.example.com/topic/whatever-this-keywords.html, maka:

        $q = str_replace( home_url('/'), '', $_SERVER['REQUEST_URI']); //remove home url
        $q = str_replace('topic/', '', $q );  //remove topic
        $q = str_replace('-', ' ', $q );   //remove dash
        $q = str_replace('.html', '', $q ); //remove .html
        echo $q; // whatever this keywords

        simplenya seperti itu.

        • Ini yang ditunggu2. Terimakasih banyak Gan Please cek email Gan

          Ini yang ditunggu2. Terimakasih banyak Gan

          Please cek email Gan

Leave a Reply

*

*