<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dedian  
    -- 關注搜索引擎的開發
    日歷
    <2006年9月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567
    統計
    • 隨筆 - 82
    • 文章 - 2
    • 評論 - 228
    • 引用 - 0

    導航

    常用鏈接

    留言簿(8)

    隨筆分類(45)

    隨筆檔案(82)

    文章檔案(2)

    Java Spaces

    搜索

    •  

    積分與排名

    • 積分 - 65516
    • 排名 - 817

    最新評論

    閱讀排行榜

    評論排行榜

     

    2006年9月29日

    微軟從未放棄搜索引擎的競爭,一直和Google暗暗較勁。盡管live search在內部員工里像是一個joke,但老大一直毫不猶豫地往里砸錢。

    說 實話,我盡量使用微軟的產品,操作系統放棄了linux,開發工具放棄了perl和java,當然這些是工作使然。但map我以前用 MapQuest,現在改用live map,瀏覽器也棄Firefox改用IE8,但凡能用的,我都會改用微軟的產品,不過對于搜索引擎,感覺實在太爛了,搜出來的東西總不是自己想要的,往 后翻了10來頁也不見有用的。后來就偷偷把Google設為默認引擎。見到一個同事比我更過分,連outlook的搜索都改用Google Desktop來搜索。

    后來,3月初的時候,內部就發布了一個新的搜索引擎,叫Kumo(酷摸?)。據說是因為live這個名字不好,不 信把它反過來念念看看是什么?我覺得只是一個名字的更換沒有什么意義。后來還是忍不住上去試了試,發現確實比原來的那個好一些。沒事的時候也會用Kumo 摸一把。

    今天,鮑老大又宣布發布一個新的搜索引擎,叫Bing。感覺怎樣?我怎么讀的像有病的‘病’?還不叫Search Engine,改叫Decision Engine,夠新潮的概念。我不太清楚為什么取這樣一個名字(據鮑老大說,是因為它短小好記),不過從一個日文名字變成一個中文名字,我感覺這是陸奇上臺登 上Search老大交椅之后的一個成功。記得前兩天Search主頁的封面就開始用上內部某員工拍的中國陽朔的風景照片。不管猜測對不對,新的搜索引擎還 是要試一試,結果有好事之徒一上來就搜了個“六四”,結果出來的全是大學四六級考試,讓人有些瀑布寒。還沒有公開release,公關就已經做得這么好 了。

    讓人更囧的是,為慶祝新的release,search組的人每人發了一件T-shirt。據說前面是"I Bing",后面是“U Bing”。聽起來像“我有病,你也有病”。不過Search組的人并以為然,因為他們為“Bing”取了一個中文名字叫“必應”。比“谷歌”好一點么?

    其他組的好事之徒可沒那么友好,測試了一段時間之后,把這個“bing”的搜索引擎親切地叫做Mr. Bean。

    當然,面對新鮮事物,我們還應該抱著積極的態度。我想因為在測試階段,我更愿意相信這是因為沒有足夠的用戶行為數據導致的短暫的發育不良。這個“必應”在下周可能就會正式發布了。讓我們試目以待。
    posted @ 2009-05-29 13:20 Dedian 閱讀(3635) | 評論 (14)編輯 收藏
     


    先前有說過,“很 多的軟件做成web-based是web3.0的一個趨勢”。從技術角度上說,這些web-based的應用程序和以前裝在本地硬盤的軟件有些不一樣,確 切地可以理解那些具有服務功能的網站或者應用程序為能夠瀏覽器所容納的對象,而瀏覽器只是一個可以支持多種對象的容器,可對象的后臺的服務應用程序正是 deploy在各種web服務器上的軟件。

    而那些所謂的腳本語言只是容器與各種對象的通訊語言。

    一直以來,容器和后臺服務應用程序一直在改進。但更多的是一個又一個鮮活的對象通過瀏覽器展現在我們眼前,默默地改變我們的生活。

    其 實,說很多的軟件做成web-based就是變成一個個可以為瀏覽器所接納的對象模型只概括了其中的一部分。它只是說到軟件的表現形式。這很容易讓大家忽 略數據的存儲形式,而默認這樣的web-based的服務讓我們更多的是享受網絡上的數據或者搜索引擎上的數據。我們不用經常下載軟件占據自己的硬盤,有 了網絡電視,我們也不用下載電影,甚至也無需下載音樂。我們自己的數據比如email,blog,訂閱的雜志,收藏的信息也都存放在各個網站的服務器上, 而無需下載下來。

    我們似乎已經習慣了在線的狀態。淡忘了脫機的那個年代。而一向標新立異的Google似乎又找到回歸的需求,那就是最近推出的的Google Gears。它提供人們一個瀏覽器的插件,通過這個插件我們下載數據到本地硬盤,并且提供一個小型數據庫引擎(SQLite)在本地硬盤幫助存儲,建立索引和搜索數據。另外提供接口實現后臺的數據同步而無需占用瀏覽器資源。

    目前Google Gears的API應用在Google Reader上,即用戶可以下載訂閱的電子雜志到本地硬盤,方便整理和收藏。

    一句話,軟件有放在網上的趨勢,人們也同樣關注個人數據的搜集和存放。舉個例子,我一直用Del.icio.us來收藏一些技術網站或者文章,可有一天我查閱技術文章的時候,點擊鏈接過去,卻是物是人非頁已去。這時我就想當時文章要是可以自動下載到自己硬盤并整理好那該多好。當然,手工的Copy+Paste就算了,我希望的是像Del.icio.us的一鍵操作。

    posted @ 2007-05-31 14:27 Dedian 閱讀(1924) | 評論 (1)編輯 收藏
     
    Got a question, when I apply sort command line in linux to sort some domain names by dictionary order, no matter which option i used, it will sort some domains like this:

    ...
    abca.com
    abc-d.com
    abce.com
    ...

    I am curious what comparison function it applys in its' sorting function. I supposed it should be a string comparison, like strcmp function, but it is not. coz strcmp will compare ascii code of characters in string one by one, thus above sorting should like this:

    abc-d.com
    abca.com
    abce.com

    one guess is that when sorting names the special characters like "." "-" will be skipped. but still got some problem when sorting following names:

    abc---d.com
    abc--d.com
    abc-d.com

    why can linux sorting keep this order? if it skips some special characters, above names should be compared equally and maybe sorted as a random order.

    confused, anybody has thought about that?

    -----
    p.s.

    Haven't got updated here for quite a long time, coz I am back to program with c under linux and I believe it is a place for Java programmers.

    -----

    update:

    Linux sorting compares unicode of strings … more about unicode is here




    posted @ 2007-02-02 07:10 Dedian 閱讀(1417) | 評論 (1)編輯 收藏
     

    隨著網絡上信息量的日益增加,人們的學習和工作越來越離不開網絡搜索引擎(有些生活中的小例子在《Google 今天8歲》文中有提到)。

    但是,另外一方面,我們會對搜索出來的成千上萬的結果束手無措,使得我們基本上對第一頁的搜索結果保持興趣,從而引發各種為爭取出現在搜索引擎的第一頁的各種技術(如SEO)或手段(Spamdexing)出現,惡劣的則大打出手,甚至搜索引擎公司出現各種幕后黑手

    對于用戶來說,則需要一點智商,來迅速地達到自己的搜索目的。

    對于搜索引擎的老大Google顯然注意到這一事實以及這一事實帶來的客戶需求:即搜索引擎應該滿足客戶自定義化(Customizable).

    最近,Google推出的產品 custom search service 則適應了這一需要。

    idea很簡單,就是用戶可以自己根據自己的興趣所在設置一些自己經常去的或者感興趣的又信息量比較大的一些網站。這樣就可以制定Google的搜索引擎就搜索這幾個網站,或者以這幾個網站的為主。

    例外,這個簡單idea的產品還具備web2.0的色彩。也就是可以幾個興趣相投的人一起編輯網站列表,從而類似一個搜索圈(搜索社區)搜索出大家共同感興趣的東西。

    有興趣的大家可以自己玩玩。我初步自定義了一個與Blog有關的搜索引擎。

    點擊這里。或者連接:
    http://www.google.com/coop/cse?cx=006688650489436466578%3Ac7-4rxi0jf4

    或者點擊這個簡單的域名地址:

    http://blogdigger.info

    大家有興趣可以一起玩,只要你們有gmail的賬號。

    加入的方法很簡單,就是點擊主頁上的鏈接:
    ?
    當然,你需要一個Google 的賬號(沒有也沒有關系,只需要用你們的email注冊一個就可以了,很簡單)
    ?
    這樣,你就可以成為這個搜索引擎的一員了,平時,你覺得那個網站很好,里面的信息量也比較大,你可以把這個網站添加到Blog Digger的網站列表中。也可以為你感興趣的一些搜索添加搜索條目。
    ?
    如果慢慢的覺得這個自定義的Google好玩,就記住這個鏈接吧:http://blogdigger.info





    posted @ 2006-10-27 06:04 Dedian 閱讀(2393) | 評論 (3)編輯 收藏
     
    Not sure if it is a bug of (Http)URLConnection, but it hang sometimes for some URLs while calling any functions to get information from connection (includes getResponseCode, getInputStream, getContent, getContentLength, getHeaderField blabla..) after connection has been built (even I have set the read timeout and connect time out).

    the functions openConnection() and connect() are ok, curious about that problem.

    anybody has the same problem or similar problem with URLConnection?
    posted @ 2006-10-21 07:20 Dedian 閱讀(1313) | 評論 (0)編輯 收藏
     

    ---祝大家中秋愉快---

    Ajax (AsynchronousJavaScript and XML)是近年來流行的一門web 技術。在Blogjava上看到有人開始在介紹AJAX,但仿佛流于概念或理論的東西,對于想用Ajax的初學者似乎不是很make sense。我想,學習任何一樣新的技術,例子和步驟是極為make sense的兩樣東西。

    筆者想結合過去的學習經驗簡單講講使用Ajax的基本步驟和舉幾個實用例子。由于筆者主要在于后臺端的開發,所以很多腳本并不是很擅長。Ajax也主要限于以前大學的修課和近期的一些為后臺端程序的測試的簡單實現。所以只是一個拋磚引玉的使用Ajax版本,歡迎相互學習交流。

    0. 導讀

    ??? 1。使用Ajax的基本流程
    ???
    2。使用Ajax的基本步驟。(簡單例子--> Demo)
    ??? 3。
    再來一個例子(Google Suggest)。(Demo)
    ??? 4。家庭作業 :)


    1。使用Ajax的基本流程

    在筆者看來,Ajax更像是一個簡單的網絡框架,它描述著如何高效地使網絡前端的數據展現和網絡后端的數據之間的交互。基本上,就是瀏覽器提供一個XMLHttpRequest(當然在IE里是ActiveXObject)的對象向后臺端的腳本程序或者Servlet Classes發送http請求,從后臺端的回應中獲取文本數據(如xml格式和最近有人討論的Json格式)并嵌入前臺段的網頁中或腳本中。

    下圖是一個簡單的流程圖:



    2。使用Ajax的基本步驟。

    下面,我們結合上面的流程,以及一個簡單的例子(見這篇文章)過一遍基本的步驟。(藍色代碼為標準寫法)

    第一步:Form 代碼:接受前臺端的輸入,并通過Action方法(方法函數里包含創建XMLHttpRequest對象)把request post到后臺端。

    <input id="username" name="username" type="text"
    ? onblur="checkName(this.value,'')" />
    <span class="hidden" id="nameCheckFailed">
    ? This name is in use, please try another.
    </span>

    <script language="javascript">
    function checkName(input, response)
    {
    ? if (response != ''){
    ??? // Response mode
    ??? message?? = document.getElementById('nameCheckFailed');
    ??? if (response == '1'){
    ????? message.className = 'error';
    ??? }else{
    ????? message.className = 'hidden';
    ??? }
    ? }else{
    ??? // Input mode
    ??? url? = 'http://localhost/xml/checkUserName.php?q=' + input;
    ??? loadXMLDoc(url);
    ? }
    }

    var req;

    function loadXMLDoc(url)
    {
    ??? // branch for native XMLHttpRequest object
    ??? if (window.XMLHttpRequest) {
    ??????? req = new XMLHttpRequest();
    ??????? req.onreadystatechange = processReqChange;
    ??????? req.open("GET", url, true);
    ??????? req.send(null);
    ??? // branch for IE/Windows ActiveX version
    ??? } else if (window.ActiveXObject) {
    ??????? req = new ActiveXObject("Microsoft.XMLHTTP");
    ??????? if (req) {
    ??????????? req.onreadystatechange = processReqChange;
    ??????????? req.open("GET", url, true);
    ??????????? req.send();
    ??????? }
    ??? }
    }
    </script>


    注:
    1。 這里的form只是一個input box,action的方法是onblur,就是響應失去焦點的事件,然后調用一個函數checkName, 這個函數里通過XMLHttpRequest向PHP server script 發送Post請求(看得出來,這里的php server script的文件名叫checkUserName.php,唯一參數是q)。
    2。函數loadXMLDoc里有個通用的創建XMLHttpRequest對象的代碼,標準代碼整理如下:
    ??????? var req;
    ??? ??? function foo()
    ??? ??? {
    ??? ??? ??? req = false;

    ??? ??? ??? // branch for native XMLHttpRequest object
    ??? ??? ??? if(window.XMLHttpRequest)
    ??? ??? ??? {
    ??? ??? ??? ??? try
    ??? ??? ??? ??? {
    ??? ??? ??? ??? ??? req = new XMLHttpRequest();
    ??? ??? ??? ??? }
    ??? ??? ??? ??? catch(e)
    ??? ??? ??? ??? {
    ??? ??? ??? ??? ??? req = false;
    ??? ??? ??? ??? }
    ??? ??? ??? }
    ??? ??? ??? else if(window.ActiveXObject) // branch for IE/Windows ActiveX version
    ??? ??? ??? {
    ??? ??? ??? ??? try
    ??? ??? ??? ??? {
    ??? ??? ??? ??? ??? req = new ActiveXObject("Msxml2.XMLHTTP");
    ??? ??? ??? ??? }
    ??? ??? ??? ??? catch(e)
    ??? ??? ??? ??? {
    ??? ??? ??? ??? ??? try
    ??? ??? ??? ??? ??? {
    ??? ??? ??? ??? ??? ??? req = new ActiveXObject("Microsoft.XMLHTTP");
    ??? ??? ??? ??? ??? }
    ??? ??? ??? ??? ??? catch(e)
    ??? ??? ??? ??? ??? {
    ??? ??? ??? ??? ??? ??? req = false;
    ??? ??? ??? ??? ??? }
    ??? ??? ??? ??? }
    ??? ??? ??? }
    ??? ??? ??? if(req)
    ??? ??? ??? {
    ??? ?? ?? ?? ?? ??
    //do something here
    ???? ??? ??? }
    ??? ??? ???

    ??? ??? }

    第二步:響應文本處理代碼:XMLHttpRequest對象里有個類似消息響應函數的屬性,即通過設置 req.onreadystatechange 來告訴XMLHttpRequest在哪個函數里處理服務端返回的文本信息。
    如在上面的例子中:
    req.onreadystatechange = processReqChange;
    那么我們接著要有一個processReqChange的函數:
    function processReqChange() 
    {
    // only if req shows "complete"
    if (req.readyState == 4) {
    // only if "OK"
    if (req.status == 200)
    {
    // ...processing statements go here...
    processResponse();
    } else {
    alert("There was a problem retrieving
    the XML data:\n" + req.statusText);
    }
    }
    }


    function processResponse()
    {
    response = req.responseXML.documentElement;
    method = response.getElementsByTagName('method')[0].firstChild.data;
    result = response.getElementsByTagName('result')[0].firstChild.data;
    eval(method + '(\'\', result)');

    }
    注:
    1。 基本上processReqChange 函數是標準代碼的寫法。
    2。這里要用到前面定義的全局變量(XMLHttpRequest對象)req

    第三步:后臺端代碼(這個例子是php server script):接受前臺端的請求,處理其參數,并返回相應的結果。

    文件名: checkUserName.php

    <?php
    header('Content-Type: text/xml');

    function nameInUse($q)
    {?
    ? if (isset($q)){
    ??? switch(strtolower($q))
    ??? {
    ????? case? 'drew' :
    ????????? return '1';
    ????????? break;
    ????? case? 'fred' :
    ????????? return '1';
    ????????? break;
    ????? default:
    ????????? return '0';
    ??? }
    ? }else{
    ??? return '0';
    ? }
    ?
    }
    ?>
    <?php echo '<?xml version="1.0" encoding="UTF-8"? standalone="yes"?>'; ?>
    <response>
    ? <method>checkName</method>
    ? <result><?php
    ??? echo nameInUse($_GET['q']) ?>
    ? </result>
    </response>
    注:代碼很簡單,就不用解釋了。這里返回的是xml格式的字符串。

    總體效果見這里
    輸入"fred"或者"drew"的名字,失去焦點后會顯示名字已存在的信息。


    ?3。再來一個例子。

    這里再講一個實用的例子,這是以前上課的一個課堂作業,也很有代表性。是關于Google Suggest(好像新的Google Toolbar上就用的這個功能)的應用問題。這里是寫好的DEMO。現在越來越多的網站提供類似Web Service的API, 我們利用他們提供的API URL可以返回一些我們用的著的數據,放在我們的網頁上。這里就用的上Ajax。只不過有些返回來的文本數據是xml格式的,就可以利用上面的簡單例子來處理,但很多像Google Suggest那樣是返回一段類似代碼格式的文本。我們就要利用Javascript的eval函數,把這些文本當作一段代碼在嵌入自己的網頁中。如果嵌入的代碼中含有函數,則需要自己再寫一個同名的函數作為實現。(這就是流程圖中的optional的func 3)

    這里完整代碼就不貼了,貼一些關鍵代碼(原本后臺端是用Java Servlet寫的,但做demo的空間沒有Tomcat不支持Servlet,所以改用Php實現,大家可以自己用Java再寫一邊作為家庭作業 :) ):

    1) form 代碼:

    <form name = "QForm" method="POST" action="google_suggest.php">
    ??? <table bgcolor="8080C0" width="90%" >
    ??? <tr>
    ??? ??? <td? nowrap>Search Term:</td>
    ??? ??? <td ><input type="text" name="qtext"? onkeyup="return GetSuggestion()" size="60"></td>
    ??? </tr>
    ??? <tr>
    ??? ??? <th colspan="2" align="left" bgcolor="#A8A8FF"><DIV id=google_suggest_target>results go here . . . </DIV></th>
    ??? </tr>
    ??? </table>
    ??? </form>

    注:
    a. 看得出來,要把查詢的字符串post到google_suggest.php上
    b. action的函數是GetSuggestion(),其返回的字符串會顯示在預留的網頁空間里。

    2) 后臺端代碼(PHP):這里主要接收前臺的請求,并不請求轉化為向Google Suggest的API URL請求,把接收到的文本信息返回給前端。代碼很簡單,如下:

    文件名:google_suggest.php

    <?php
    function getGoogleSuggest($q)
    {

    ??? $url = "http://www.google.com/complete/search?hl=en&js=true&qu=" . $q;
    ??? return file_get_contents($url);
    }
    ?>

    <?php echo getGoogleSuggest($_POST['q']) ?>

    注:
    a。 Google Suggest API 返回的是一個代碼格式的文本信息,如下:
    sendRPCDone(frameElement, "", new Array(), new Array(), new Array(""));
    所以我們再前臺接受到這個文本信息之后,應該寫一個sendRPCDone的函數來做進一步信息處理(比如說列表出查詢結果)。

    3) 前臺文本處理代碼:

    ??? <script type="text/javascript">
    ??? ??? var req;
    ??? ??? function GetSuggestion()
    ??? ??? {
    ??? ??? ??? req = false;
    ??? ??? ??? var f = document.QForm;

    ??? ??? ??? // branch for native XMLHttpRequest object
    ??? ??? ??? if(window.XMLHttpRequest)
    ??? ??? ??? {
    ??? ??? ??? ??? try
    ??? ??? ??? ??? {
    ??? ??? ??? ??? ??? req = new XMLHttpRequest();
    ??? ??? ??? ??? }
    ??? ??? ??? ??? catch(e)
    ??? ??? ??? ??? {
    ??? ??? ??? ??? ??? req = false;
    ??? ??? ??? ??? }
    ??? ??? ??? }
    ??? ??? ??? else if(window.ActiveXObject) // branch for IE/Windows ActiveX version
    ??? ??? ??? {
    ??? ??? ??? ??? try
    ??? ??? ??? ??? {
    ??? ??? ??? ??? ??? req = new ActiveXObject("Msxml2.XMLHTTP");
    ??? ??? ??? ??? }
    ??? ??? ??? ??? catch(e)
    ??? ??? ??? ??? {
    ??? ??? ??? ??? ??? try
    ??? ??? ??? ??? ??? {
    ??? ??? ??? ??? ??? ??? req = new ActiveXObject("Microsoft.XMLHTTP");
    ??? ??? ??? ??? ??? }
    ??? ??? ??? ??? ??? catch(e)
    ??? ??? ??? ??? ??? {
    ??? ??? ??? ??? ??? ??? req = false;
    ??? ??? ??? ??? ??? }
    ??? ??? ??? ??? }
    ??? ??? ??? }
    ??? ??? ??? if(req)
    ??? ??? ??? {
    ??? ??? ??? ??? var url = "google_suggest.php";
    ???????
    ??? ??? ??? ??? req.onreadystatechange = processReqChange;
    ??? ??? ??? ??? req.open("POST", url, true);

    ??????? ??? ??? req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    ??? ??? ??? ??? req.setRequestHeader("Method", "POST " + url + " HTTP/1.1");
    ??? ??? ??? ??? req.send("q=" + escape(document.QForm.qtext.value));
    ??? ??? ??? }
    ??? ??? ???

    ??? ??? }
    ??? ???
    ??? ??? function processReqChange()
    ??? ??? {
    ??? ??? ??? if(req.readyState == 4) // only if req shows "loaded"
    ??? ??? ??? {
    ??? ??? ???????????????? if (req.status == 200) // only if "OK"
    ??? ??? ???????????????? {
    ??? ??? ???????????????? ??? ??? x = req.responseText;
    ??? ??? ???????????????????????? eval(x);
    ??
    ? ??? ???????????????? }
    ??? ??? ???????????????? else
    ??? ??? ???????????????? {
    ??? ??? ?????????? ??? ??? ????? alert("There was a problem retrieving the XML data:\n" + req.statusText);
    ??? ??? ???????????????? }
    ??? ??? ??? }
    ??? ??? ??? else if(req.readyState == 2)
    ??? ??? ??? {
    ??? ??? ??? }
    ??? ??? }
    ??? ???
    ??? ??? function sendRPCDone(frameElement, qString, arr1, arr2, arr3)
    ??? ??? {
    ??? ???
    ??? ??? ??? var suggest_results = eval(arr1);
    ??? ??? ??? var counts = eval(arr2);
    ??? ??? ??? var htmlstr = "<TABLE cellspacing=4 border=0>";
    ??? ??? ??? for (var i=0; i < suggest_results.length; i++)
    ??? ??? ??? {
    ??? ??? ??? ??? htmlstr += "<tr><td><a href=\"javascript:self.location=\'http://www.google.com/search?hl=en&q=" + suggest_results[i] + "&btnG=Google+Search\'\">" + suggest_results[i] + "</a></td>";
    ??? ??? ??? ??? htmlstr += "<TD width=200><font color= 228b22>" + counts[i] + "</font></TD></TR>"
    ??? ??? ?????? ??? ?
    ??? ??? ??? }
    ??? ??? ??? htmlstr += "</TABLE>";
    ??? ??? ??? document.getElementById("google_suggest_target").innerHTML = htmlstr;
    ??? ???
    ??? ??? }
    ??? ???
    ??? ??? </script>

    4。家庭作業 :)

    一定要自己寫一些代碼,才能鞏固知識:)
    題目:
    我們經常用del.icio.us來收藏我們喜歡的網站或者文章,并加一些類似讀書筆記的注釋。那么我們怎么利用del.icio.us提供的API來訪問我們的讀書筆記信息,并顯示在自己的Blog里呢?
    提示:
    1。你要有一個del.icio.us的賬號,并且已經有所網頁收藏作為實驗數據:)
    2。API URL 是 "http://del.icio.us/feeds/json/" + "你的賬號名";自己參看一下,看返回什么樣的格式文本。另外,如果要限制返回的記錄數,可以加"?count=10"這樣的參數。


    最后,祝大家中秋愉快!

    ---------------------------完----------------------------




    posted @ 2006-10-07 07:05 Dedian 閱讀(2247) | 評論 (2)編輯 收藏
     
    reference: http://us3.php.net/java
    help doc: http://php-java-bridge.sourceforge.net/

    1- Make sure u have Installed Apache 2 & PHP 5 and Java J2EE 1.5
    2- download pecl-5.0.5-Win32.zip and php-java-bridge_2.0.8.zip, which will include
    extra dll(s)
    ?? - unpack pecl pkg to your extensions folder, in PHP5 its ext.
    ?? - unpack java-Bridge to root php folder, in my case its simply C:\PHP
    ??
    Note:
    1. the java-Bridge inculdes new versions of certain files like php_java.dll
    ?? so, it would be wise to rename your old files that came with PECL pkg for example
    ?? file_old, to rollback at anytime.
    2. Don't run batch file under php-java-bridge after unpacking to php root folder, just add following lines in php.ini configure file (depends on installation fold of j2ee):

    extension=php_java.dll
    extension_dir = "C:\php\ext"
    [java]
    java.java_home=C:\Program Files\Java\jre1.5.0_06
    java.java=C:\Program Files\Java\jre1.5.0_06\bin\javaw.exe
    java.log_level=2
    ;java.log_file=ext/JavaBridge.log

    posted @ 2006-10-06 09:05 Dedian 閱讀(1136) | 評論 (0)編輯 收藏
     
    http://www.apachelounge.com/forum/viewtopic.php?t=570

    http://www.webmasterstop.com/86.html
    posted @ 2006-09-29 05:44 Dedian 閱讀(1027) | 評論 (0)編輯 收藏
     
    Copyright © Dedian Powered by: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: 久久久久亚洲AV成人网| 日韩激情无码免费毛片| 亚洲伊人久久精品影院| 国产亚洲视频在线观看| 四虎影院永久免费观看| 337P日本欧洲亚洲大胆艺术图| 免费观看黄网站在线播放| 久久国产亚洲精品| 日本XXX黄区免费看| 亚洲人成在久久综合网站| 97国产免费全部免费观看| 亚洲1区1区3区4区产品乱码芒果| 99re这里有免费视频精品| 久久久久亚洲av无码专区喷水| 久久免费观看国产精品88av| 久久精品国产精品亚洲艾草网 | 美女黄频a美女大全免费皮| 免费看国产一级特黄aa大片| 免费夜色污私人影院网站| 国产美女亚洲精品久久久综合| 在线毛片片免费观看| 亚洲国产精品一区二区久久| 日本免费人成在线网站| 亚洲午夜福利在线视频| 免费国产精品视频| 人妻免费一区二区三区最新| 亚洲精品成人网站在线播放 | 韩国日本好看电影免费看| 国产亚洲女在线线精品| 色噜噜亚洲精品中文字幕| 95老司机免费福利| 亚洲高清一区二区三区电影| 亚洲国产精品成人网址天堂| 免费A级毛片av无码| 亚洲欧美乱色情图片| 亚洲一区二区三区国产精品| 2015日韩永久免费视频播放| 亚洲av日韩aⅴ无码色老头| 好看的电影网站亚洲一区| 99精品全国免费观看视频| 国产JIZZ中国JIZZ免费看|