PHP加Flash调用谷歌图片搜索

把上次找到的Flash Pic Viewer重新利用了下,结合PHP,可以调用谷歌手机图片搜索第一页的图片在Flash里展示。暂叫这个小程序Flash Pic Viewer for Google,改改代码应该也能调用百度xEP5EF

PHP代码主要是把谷歌手机图片搜索第一页的图片原图地址抠出来,并按照FLASH所要求的格式拼接起来。这里对我来说有点难。然后再连同用户表单的配置参数一块传给FLASH。FLASH参数用FLASH VARS传递的,这么多年第一次主动使用FLASH VARS传参。但这个FLASH文件只有10多K,省不了多少流量。

还有另外一段PHP代码,当访问者在FLASH里点击图片时会发出一个请求,这段代码就是把这图片放进去并把地址给出来,但却被编码问题困扰了N久,Flash传过来的是gb2312 URLENCODE处理后的,所有这个页面也只好且国标编码。

演示地址 PHP,swf,及fla源文件下载

调用GOOGLE图片搜索并在FLASH里展示搜索图片结果部分 PHP代码:


<?php

if( isset($_REQUEST&#91;'q'&#93;) )
{

/*获取GOOGLE图片搜索网页中的图片,并支持FLASH PIC VIEWER调用
是所有的图片*/
$sw = $_REQUEST&#91;"sw"&#93;;
$sh = $_REQUEST&#91;"sh"&#93;;
$autosize = $_REQUEST&#91;"autosize"&#93;;
$autoplay = $_REQUEST&#91;"autoplay"&#93;;
$intervalTime = $_REQUEST&#91;"intervalTime"&#93;;
$htitle = $_REQUEST&#91;"htitle"&#93;;
$hbtn = $_REQUEST&#91;"hbtn"&#93;;
$flashSW = $sw+50;
$flashSH = $sh+50;

$query=$_REQUEST&#91;"q"&#93;; // request any query with '?q='
//对输入值进行编码防止空格问题
$query=urlencode($_REQUEST&#91;"q"&#93;);
//在GOOGLE获取图片
$url="http://www.google.com.hk/m/search?site=images&q=$query"; 
//file_get_contents() 函数把整个文件读入一个字符串中 
$string=file_get_contents($url); 
//正则表达式抠地图地址
$reg = "/imgurl=http:&#91;^>]*\/\/(.+)\/(.+)\.(jpg|gif|bmp|pnp)/isU"; 
//把抠出来的 img 地址存放到 $img_array 变量中 
preg_match_all($reg, $string, $img_array, PREG_PATTERN_ORDER); 
//过滤重复的图片 
$new_arr=array_unique($img_array[0]);
//拼接所有图片地址
foreach ($new_arr as $img){ 
//获得图片
$img = ltrim($img,'imgurl='); //ltrim是除去字符串首的指定字符 trim是首尾 rtrim是末尾

 $allurl .= "$img^";  //拼接所有图片地址
} 
//将参数传给FLASH
$html = "<center><object>
<param name='movie' value='http://littlebar.tk/app/flash-pic-viewer/flash-pic-viewer-google.swf' />
<param name='flashvars' value='caption=$query&sw=$sw&sh=$sh&autosize=$autosize&autoplay=$autoplay&intervalTime=$intervalTime&htitle=$htitle&hbtn=$hbtn&picurl=$allurl' />
<embed width='$flashSW' height='$flashSH' src='http://littlebar.tk/app/flash-pic-viewer/flash-pic-viewer-google.swf' flashvars='caption=$query&sw=$sw&sh=$sh&autosize=$autosize&autoplay=$autoplay&intervalTime=$intervalTime&htitle=$htitle&hbtn=$hbtn&picurl=$allurl'>
</embed>
</object></center>";
//输出HTML
echo $html;

}

else {
echo "<br><br><hr><br><center><img src='http://www.google.com/intl/en_ALL/images/logos/images_logo_lg.gif'><br><br>在下边输入查看</center>";
}

?>

<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF8">
<title>PHP加Flash调用谷歌图片搜索 演示</title>
<center>
<br>
<br>
<form method=post action="http://littlebar.tk/app/flash-pic-viewer/flash-pic-viewer-google-vars.php">
PHP+Flash调用谷歌图片搜索演示 关键词:<input type="text" name="q" value="桂林" style="width:100px">
宽:<input type="text" name="sw" value="550" style="width:40px">
高:<input type="text" name="sh" value="400" style="width:40px">
图片轮换间隔:<input type="text" name="intervalTime" value="3" style="width:40px">秒<br>

自动调整大小:<select name="autosize" >
<option value="true">是
<option value="false">否
</select>

自动播放:
<select name="autoplay" >
<option value="true">是
<option value="false">否
</select>

是否显示标题:
<select name="htitle" >
<option value="false">是
<option value="true">否
</select>
按钮位置:
<select name="hbtn" >
<option value="false">上
<option value="true">下
</select>
<input type="submit" value="搜索查看"> <input type="reset">
</form>
</center>
<hr>
代码详见:<a href="http://littlebar.tk/flash-pic-viewer/">http://littlebar.tk/flash-pic-viewer/</a>
</html>

展示FLASH里点击的图片和地址代码:

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
div img {
max-width:600px; 
//IE7、FF等其他非IE浏览器下最大宽度为600px;
width:600px; 
//所有浏览器中图片的大小为600px;
width:expression(document.body.clientWidth>600?"600px":"auto"); 
//当图片大小大于600px,自动缩小为600px;
overflow:hidden;
}
</style>

<?php
$picurl = urldecode($_REQUEST&#91;"picurl"&#93;);
$pictitle = urldecode($_REQUEST&#91;"pictitle"&#93;);
echo $pictitle ;

$html = "<title>View Pictures about $pictitle on Flash Pic Vierwer</title>
<body>
<hr>
<p>
<center><div id=img><img src='$picurl'></div></p><hr>
You are viewing a picture about <strong>$pictitle</strong> on <a href='http://littlebar.tk/app/flash-pic-viewer'>Flash Pic Vierwer</a><br>
<br>你查看的图片地址:<a href='$picurl'>$picurl</a></hr><br></center></body>";
echo $html;
?>
One Comment

Add a Comment

Your email address will not be published.