客戶推廣
當前位置:SEO165 > 搜索引擎界
用Flash 進行Google
來源: product beta 時間:2005-9-27 瀏覽:

演示:http://www.productbeta.com/google/index.php

當 SOAP的來臨和 XML等相似的到來一樣 , 站點開發者可以非常容易的從不同的來源提供其他站的更多信息。 為了增加這種方便,許多不同的Web服務提供了API,諸如Google, Amazon, ebay 以及一些你所知道的名字。

  Google作為我最喜愛的搜索引擎(以及數百萬個互聯網網用戶的), Flash是我的生計工具,這個想法就是建立一個環境可以使Flash能使用Google并且在該Flash中輸出結果。

  基本需求:
  我們需要以下東西建立這個產品

Flash MX
PHP 并有XML支持
Nusoap(PHP小組一種,允許開發者建立使用 SOAP網頁服務)
A Google API 賬戶(可以在這里獲得)
  我在這里將不打算介紹SOAP的細節以及如何使用它。在線幫助已經有足夠的數據了。無論如何,對XML和它的各種各樣的同胞的熟悉是我從讀者那里期望的全部。無論如何,我期望讀者們能夠閱讀它。 不過,通過Nusoap 訪問Google之后我將大力推薦在Devshed上的這篇文章。
  制作步驟

  第一步,建立一個PHP文件連接到Google,并在Flash環境中獲得搜索結果。下面是該文件的原代碼。 這個過程很容易使用Nusoap實現。
  <?php
   //Initialize PHP
  
   //include the nusoap class..(http://dietrich.ganx4.com/nusoap/)
   include_once($document.ROOT."/../scripts/nusoap/nusoap.php");
  
   /*prints the results of the search in a swf file
   as an array structure to hold ready made data for flash*/
   function google2Flash($searchStr, $startParam=0){
   if(empty($searchStr)) {
   expirationHeaders();
   return;
   }//end if
  
   // create an instance of the SOAP client object
  
   // remember that this script is the client,
   // accessing the web service provided by Google
   $soapclient = new soapclient("http://api.google.com/search/beta2";);
  
   setType($startParam, "integer");
   $maxResults = 10; //Google Limit :(
  
   // set up an array containing input parameters to be
   // passed to the remote procedure
   $params = array(
   "key" => "xxxxxxxxxxxxxxx", // Google license key
   "q" => $searchStr, // search term..given by flash user
   "start" => $startParam*$maxResults, // start from result n
   "maxResults" => $maxResults, // show a total of n results.. Google Limit 10
   "filter" => false, // remove similar results
   "restrict" => "", // restrict by topic
   "safeSearch" => false, // adult links?
   "lr" => "", // restrict by language
   "ie" => "", // input encoding
   "oe" => "" // output encoding
   );
  
   // invoke the method on the server
   $result = $soapclient->call("doGoogleSearch", $params, "urn:GoogleSearch", "urn:GoogleSearch");
  
   //Now result will be an array which contains various result elements
   //it is these elements that we are concerned with
   $tElements = sizeof($result["resultElements"]);
  
   if(empty($tElements)) {
   expirationHeaders();
   return;
   }//end if
  
   //Send expiration headers
   expirationHeaders();
   //Okay so we got something.. now we have to make a display string for Flash
   print "&displayData=";
   for($i=0; $i<$tElements; $i++){
   //If we got a title the this result..
   if (!empty($result["resultElements"][$i]["title"])){
   //If no link available
   if (empty($result["resultElements"][$i]["URL"])){
   print "<font size=\"12px\"><b>".(($i+1) + ($startParam*$maxResults)).". ".urlencode($result["resultElements"][$i]["title"])."</b></font>";
   } else {
   print "<font size=\"12px\"><b>".(($i+1) + ($startParam*$maxResults)).". </b><a href=\"".urlencode($result["resultElements"][$i]["URL"])."\" target=\"_blank\"><b><u>".urlencode($result["resultElements"][$i]["title"])."</u></b></a></font>";
   }//End if
   print "<br><br>";
  
   //Did we get a summary?
   if(!empty($result["resultElements"][$i]["summary"])){
   print "<font size=\"10px\"><b>Summary</b>: ".urlencode(ereg_replace("\n|<br>", "", $result["resultElements"][$i]["summary"]))."</font><br>";
   }//End if
  
   //Did we get a snippet?
   if(!empty($result["resultElements"][$i]["snippet"])){
   print "<font size=\"10px\">".urlencode(ereg_replace("\n|<br>", "", $result["resultElements"][$i]["snippet"]))."</font><br>";
   }//End if
  
   print "-----------------------------------------------------------------------------";
  
   //if we are not on the last element.. print a break
   if($i+1 < $tElements){
   print "<br><br>";
   }//End if
   }//End if
   }//End for loop
  
   //Print out the total results number that came in
   print "&estimatedTotalResultsCount=".$result["estimatedTotalResultsCount"]."&";
   //Calculate the total number of pages which will be needed to show all the results
   print "&tPages=".ceil($result["estimatedTotalResultsCount"]/$maxResults)."&";
   print "&searchTime=".urlencode($result["searchTime"])."&";
   print "&searchQuery=".urlencode($result["searchQuery"])."&";
   }//End function
  
   //Prints an expiration headers for form-encoded data
   function expirationHeaders(){
   header("application/x-www-urlform encoded");
   header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); //Creation time
   header("Expires: ".gmdate("D, d M Y H:i:s")." GMT"); //Expiration time.. right away!
   header("Cache-Control: no-cache, must-revalidate");
   header("Pragma: no-cache");
   }//End function
  
   google2Flash(urldecode($usrInput), $startParam);
  
   //Goodbye PHP
   ?>

  這里是PHP代碼的一些難點:

包含Nusoap
傳送用戶輸入和開始的數據(在腳本中還有數據是Flash本身工作的傳輸)定義google2Flash的PHP功能 。
google2Flash將做如下工作:
連接到Google (使用 nusoap)
在Google使用Flash傳送數據執行一個搜索...需要使用Google API組件執行GoogleSearch
傳送頭部數據確認數據正確到達。
輸出Google結果列表數據或其他數據量,發回到Flash并準備顯示。Google每一次提交將僅僅提供最大十個數據量,這是Google API極限,不是我的錯。Flash需要輸出至少50個吧這樣你會覺得更需要些。
  在選擇可能在Flash返回“準備成功的”顯示數據和Flash傳遞數據組列并分析兩者之間,我選擇了前者,因為我并不滿意 actionscript處理一大堆數據 的速度。在一些PHP工作會比 actionscript快點,它還可以重定義數據顯示的樣子并不需要產生任何文件,在Flash里執行就可以了,這樣方便不少。

  進行 Flash制作!

  我將設計部分留給了你, 我自己制作的布局并不復雜只是想完成Flash引用Google搜索的過程。本質上,這些Flash的應用是使用loadVars() 組件。
  這里是在Flash(通過PHP)從Google獲得數據的核心部分。工程的整個代碼是比較復雜將需要更多頁碼的教程在OOP 設計上,我們將跳過這個。

  /*############################
  GOOGLE SEARCH ENGINE
  #############################*/
  Google = new Object();
  Google.submitSearch = function(){
//Create loadvars object
this.googleData = new LoadVars();
this.googleData.usrInput = this.searchBox.inputFieldMc.usrInput.text;
this.googleData.startParam = this.startParam;

this.googleData.onLoad = function(){
//We did get some results
if(typeof(this.displayData) != "undefined"){
_level0.Google.resultsBox.resultArea.results.htmlText = this.displayData;
delete(this.displayData); //Delete this really long string!
}//End if

this.googled = true; //Indicator that we are done with onLoad method
}//end function
this.googleData.sendAndLoad("/google/scripts/getGoogle.php", this.googleData, "POST");
  }//End function


【聲明】:
  以上搜索引擎優化文章或資料除注明為SEO165.COM自創或編輯整理外,均為各方收集或網友推薦所得。其中摘錄的內容以共享、研究為目的,不存在任何商業考慮。
  目前網站上有些文章未注明作者或出處,甚至標注錯誤,此類情況出現并非不尊重作者及出處網站,而是因為有些資料來源的不規范。如果有了解作者或出處的原作者或網友,請告知,本網站將立即更正注明,并向作者或出處單位道歉。
  被摘錄的對象如有任何異議,請與本站聯系,本站確認后將立即撤下。謝謝您的支持與理解!
公司介紹 - 聯系我們 - 留言 - 地圖 - 免費登錄 - Google排名 - Google優化 - 搜索引擎大全 - 網站優化 - 網站推廣 - 工具條 -

抢红包客服 初音步兵番号 黑龙江p62最新开奖结果查询 辽宁35选7中奖规则 重庆麻将怎么打 正规挣钱最快的app 查番号网站 幸运农场攻略微信群 5毛微信福州麻将群 日本黄色片ed2k 贵阳捉鸡麻将挂在哪里买 今日股市行情点评 捕鱼达人千炮版修改器 哈尔滨麻将怎么玩视频 甘肃11选5网 北单比分3串1过滤模式 深圳风采走势图带连线