Seperti halnya Parsing RSS Bing Search Result ke PHP, untuk Parsing XML Bing Images ke PHP masih menggunakan fungsi php simplexml_load_file untuk merender halaman pencarian gambar Bing search engine.
Berikut kode parsing XML Bing Images ke PHP untuk blog WordPress:
<?php
//function untuk konversi Byte ke KB/MB gambar
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;
}
?>
<?php
//eksekusi kata kunci
$bingimagequery = urlencode(get_search_query());
//jumlah gambar maksimal yang tampil (max 30)
$bingimagecount = 10;
//parsing xml Bing images
$xmlbingimage = simplexml_load_file('http://www.bing.com/images/search?q='.$bingimagequery.'&count='.$bingimagecount.'&format=xml');
foreach ($xmlbingimage->section->documentset->document as $imagebing) {
//menampilkan gambar kecil dan sedang dengan eksternal link ke halaman bing image
echo '<a rel="nofollow" target="_blank" href="http://www.bing.com/images/search?q='.urlencode($bingimagequery).'&view=detail&id='.$imagebing->id.'">';
echo '<img src="'.$imagebing->thumbnail{0}->url.'" onmouseover="this.src=''.$imagebing->thumbnail{1}->url.''" onmouseout="this.src=''.$imagebing->thumbnail{0}->url.''"/>';
echo '</a>';
//menampilkan judul gambar yang di substrak jumlah karakternya menjadi 35 karakter
echo '<p><b>'.substr($imagebing->title, 0, 35).' ...</b><br>';
//menampilkan host gambar
preg_match('@^(?:http://)?([^/]+)@i',"$imagebing->displayurl", $matchurlbing);
echo '<span style="color:#388222">'.$matchurlbing[1].'</span><br>';
//menampilkan ukuran lebar dan tinggi gambar
echo '<small><span style="color:#898994">'.$imagebing->width.' x '.$imagebing->height.' - ';
//menampilkan ukuran file gambar
echo KByteSize($imagebing->mediafilesize).' - ';
//menampilkan format file gambar
echo $imagebing->thumbnail{0}->format = str_replace('image/','',($imagebing->thumbnail{0}->format) ).'</span><br>';
//menampilkan link yang menuju url gambar ukuran aslinya
echo '<a rel="nofollow" target="_blank" href="'.$imagebing->mediaurl.'">See full size image</a> - ';
//menampilkan url ke bing untuk melihat ukuran gambar lainnya
echo '<a rel="nofollow" target="_blank" href="http://www.bing.com/images/search?q='.urlencode($bingimagequery).'&cbir=ms&mid='.$imagebing->id.'">More Sizes</a></small><br>';
//menampilkan url/link sumber halaman gambar
echo 'IMAGE SOURCE PAGE: <a rel="nofollow" target="_blank" href="'.$imagebing->url.'">'.substr($imagebing->url, 0, 35).' ...</a></p>';
}
//jika gambar tidak ada, tampil pesan Not Found
if (empty($imagebing)) {
echo '<small>Not Found</small>';
}
?>
Atribut Elemen
http://www.bing.com/images/search?q=‘.$bingimagequery.β&count=‘.$bingimagecount.β&format=xml : url XML BING Images.
$imagebing->title : untuk menampilkan judul gambar.
$imagebing->url : menampilkan url/link sumber halaman gambar.
$imagebing->id : ID gambar.
$imagebing->width : ukuran lebar gambar (pixel).
$imagebing->mediafilesize : ukuran file gambar (bytes).
$imagebing->thumbnail{0}->format : format file gambar (jpeg).
$imagebing->mediaurl : url gambar untuk ukuran aslinya/full size/gambar besar.
$imagebing->thumbnail{0}->url : untuk menampilkan gambar kecil.
$imagebing->thumbnail{1}->url : untuk menampilkan gambar sedang.
Jika ingin menggunakan paramater query lainnya, contoh http://www.domain.ltd/?q=lady+gaga atau http://www.domain.ltd/?search=lady+gaga, Anda bisa mengganti kode get_search_query() menjadi $_GET['q'] atau $_GET['search'].
UPDATE 21-07-2015
Format XML Bing ini sudah tidak berlaku, silahkan merujuk pada Bing API versi 2 atau yang terbaru di sini http://www.jevuska.com/2015/07/21/bing-search-image-api-azure-format-json-php/
Bagikan
gambar gak nongol..update dong bang :)
Updated!
mas jev, request untuk dapat hasil dari bing.com video :)
seperti ini mas,
$url = ‘http://www.bing.com/videos/search?q=β.$katakunci.
saya cuma mau generate title hasil search aja, mau dibuat related artikel gitu dari bing video.
misal katakunci nya “ariel peterpan”
yang keluar :
title = ariel peterpan aku menunggumu
lalu kita jadikan url = domainkita.com/ariel-peterpan-aku-menunggumu
ada link api bing untuk video untuk format xml, json atau lainnya mas?
scripnya dah gak jalan om :D tolong diupdate
Harusnya tetap jalan… mungkin ip-nya diblokir… combine dengan script proxy PHP mas.
seperti error klo permalink pake ubahan di htaccess ya bro ? ada solusi ?
What kind of errors mas…? :)
parse ini uda ngga bisa d pake lagi po bro ? ane coba pasang ngga keluar apa2.
ipnya diblokir… coba di localhost dulu.
Btw.. ini scriptnya udah gak jalan lg bang…
Masih bisa bang :)
om jev, script nya kok gak bisa di copy..??
Sudah bisa.. silahkan dicoba lagi. Klik 2x untuk select and copy.
Pake firefox gak bisa di copy…
Pake chrome baru bisa copy codenya…
Klik 2 kali bang kodenya.