[技術分享 ] 09 六月, 2008 22:26

今天把電腦裝好灌好後, 要把所有的設備連結上電腦服務, 所有的週邊都好了, 郤有一個週邊動不起來, 就是我用來當SKYPE的 亞邁變臉機 talkcam 1.1 的網路攝影機, 找了半天居然所有的連結都指回 http://vgear.com 的服務網站去, 但郤都找不到網頁 page not found!!

經過10幾分鐘的搜尋, 找到了如下的一則新聞, 才知道, 原來亞邁倒閉了...真是有點感傷!!

存‧在剎那: 悼!!亞邁科技V-Gear

但是, 最感傷的是我找不到驅動, 我也沒多餘的錢再多購置一個(真的感到自己好可憐, 什麼都要省), 只有不斷的找下去, 唯一欣慰的事, 是在網路上, 似有數百計的網民跟我有同樣的困擾, 我不是孤單的......真有點無言...

好吧, 重點還是快公佈一下好了, 以解決廣大鄉民苦苦的尋找, 當然, 也可能有許多高手也找到了, 但我用谷歌找了好久似乎都沒有人有這類消息, 所以, 我還是只能靠自己的力量, 如果需要, 大家可以到以下連結去找自己的機型來安裝, 這倒是一個好消息,  雖然我在找尋驅動時, 有一個想法, 就是如果我找到了, 把他全部做成一個類似驅動的網站, 那光靠為數眾多的網民來找驅動, 我的流量就爆了吧, 後來隨著找到以下的網站後就放棄了, 他的速度又快又齊全,  我再建一個就沒意義了....中文化嗎..= ="....

G.D.B. International
http://gdbint.com.au/Support.aspx

感謝G.D.B, 我的變臉機又可以用了...哇哈哈!! 

[技術分享 ] 01 三月, 2008 03:11

就在幾天前, 在funP上逛逛, 當然也去看了我最喜歡的影片搞笑&Kuso, 不免也會想把好的影片拉回來收藏, 一如往常的打開了 GooTube FLV Retriever 來查詢下載位址, 耶~~居然404不能瀏覽, 怎麼會掛了呢?..所以, 自己做一個的念頭就油然而生, 就開始找資料及技術了(好吧!! 其實是學正則式, 如何偷網頁資料等技術), 那天成果不如想像, 因為!! 正則式對那時候的我有點難度, 就擱下了.....

過了幾天, 再寫我的WGM報告時, 又想起了這件事, 心動不如馬上行動, 就打開了SSH對主機進行子網域新增( http://plugins.520net.to )及程式核心的建立, 當然嘍!! 也把我自己的PHP套件包及PHPRPC都建立起來了, 順便就把 520 套件之家成立起來(因為我還有欠我朋友一個地址3+2網頁查詢外掛還沒做), 先建立了一個 getvideo 的套件, 首先先從YouTube的解起, 開始著手吧!!

YouTube的比較簡單, 把他的 http://www.youtube.com/watch?v=12345678 那個影片編號抓出來, 再取得Javascript裡的 swfArgs['t'] 的參數, 傳給 http://www.youtube.com/get_video.php 解析就可以下載了, 沒想到這麼容易, 一下就完成了!! 本來想說會用到正則式, 沒想到沒用到, 直接利用他的javascript參數就可以呼叫來用了!! 完成了嗎!?....不..事情沒有那麼簡單, 因為這個功能別人已經有了!!

接下來, 我又想到, 如果是有人直接把YouTube的影音直接崁在他的BLOG裡, 使用者還要先點去YouTube原始位址, 再取得連結, 再貼進來解析, 似乎有點麻煩, 好把!! 我就再把程式改了一下, 這次有用到正則式了!!

首先先找出共同點, 不論是那一種BLOG, 直接從YouTube拉過來的一定有<param value=""></param>所以正則式如下:

preg_match_all('/<param name="movie" value="(.*?)\/v\/(.*?)&.*?".*?>/', $xml_string[$i], $match);
$match[1] 就是網址(主網址)
$match[2] 就是影片編碼

好了, 開始測試(當然還有迴圈讓他把 preg_match_all 排列出的二維陣列資料全取出來, 首先去找了一個BLOG在同一頁有多個崁入影音來試, 成功了, 後來又去試了酷搜樂....呀...失敗....原來是雙引號跟單引號的差異, 好...就把正則再改了一下(在這要好好感謝BawBaw大教了我正則入門)!!

preg_match_all('/<param name=[\s\"\']+movie[\"\'] value=[\s\"\']+(.*?)\/v\/(.*?)&.*?[\"\']+.*?>/', $xml_string[$i], $match);

後來, 測試中, 又發現了似乎有許多人並沒有忠實的把YouTube提供的崁入語法放在BLOG中, 所以只有再重寫一次正則, 變成去偵測 <embed src=""> 來抓取資料, 好吧!! 最後改成這樣!!

preg_match_all('/<embed src=[\s\"\']+(.*?)\/v\/(.*?)[\"\']+.*?>/', $xml_string[$i], $match);

再經過密集的測試, 除了YouTube影音位址可以直接取得之外, 如果輸入BLOG位址, 該頁面內有崁入YouTube影音, 不論有多少個就一併全部抓取出來, 這樣子就方便多了, 不過如果解析的越多, 時間會花得比較久就是了!!

好了, 努力了兩三個小時, 把他改一改放上線服務了, 一切非常陽春, 就等著大家來測試, 結果, 慘劇發生了!!

在測試途中, 遇到其它影音網站(其實還有很多, 只是剛好查這個而已), 他是 Metacafe , 因為不常看到, 所以想說如果解這個應該就有新的賣點吧, 當下就利用 GooGle 大師找了有關這個影音的原理, 請參照: metacafe 影片 下載 - Google 搜尋

結果找到了一個網站, 他居然支援了45種影音網站的查詢解析, 當場我就冷了一半, 什麼麻!! 已經有人做了那麼好的, 我的看起來就連一根草都不如, 開始哭了, 請再參照: KeepVid: Download videos from Google, Youtube, iFilm, Putfile, Metacafe, DailyMotion!

其實到這裡我還是有點不死心, 所以我還是繼續研究, 我繼續找原理, 又接著搜尋原理, 天打雷劈~~~~~, 又出現一個超級解析家, 冷了~~全部都冷了, 不做了...不想做了....已經有太多了...shit....請再此參照:
1. metacafe 影片 下載 原理 - Google 搜尋
2. 優質 Retriever, Retriever

這樣我怎麼做得下去, 原來, 我還在學騎腳踏車, 人家已經上太空了...唉!! 我還是回去趕我的 WGM 成本分析報告吧!!

我的影音解析套件: 520 套件之家 ::: 影音解析工具 (超級陽春版)

不想再更新了...就這樣放著吧....鳴鳴鳴鳴!!

 

本篇相關閱讀:

測試網站:
酷搜樂 - 男女搶車大作戰! (找到單引號及雙又號BUG)

bebe暖暖&法國PaPa - (AXE廣告影片)男人味 (一次找出所有崁入影片資料)

 

 

[技術分享 ] 01 元月, 2008 19:26

這個需求看來是很奇怪, 不過為了不遺忘, 還是把他記錄下來, 以免以後又忘光光嘍!!

為什麼會有這個需求呢, 這是起因於本人有一個客戶的主機OS是Linux FedoraCore5, 在WGM專案裡需要使用到UploadProgress這個擴充套件, 而這個套件必須運作在 PHP 5.2up, 所以才會有這個需求嘍!!!

請參考: 使用PHP 5.2以上的UploadProgress來實現上傳進度條功能 (一)

首先, 本人曾試過, 直接從FedoraCore7的Source裡取出PHP5.2.4 RPM套件來安裝, 但是果然發生了相依性的問題, 而相依的套件實在太多, 沒那個勇氣全都反安裝再重裝, 其中還包含了 .so的套件, 所以放棄!!!

接下來去到官方網站 http://php.net 下傳安裝包, 目前最新的版本是PHP 5.2.5(2007/11/18), 但是在preg()的指令上似乎還存在著問題, 所以就改選用PHP 5.2.4的版本來使用, 閱讀了INSTALL的說明後, 安裝程序如下:

安裝apsx (依需求安裝), 請參考 http://www.apsx.com/
在之前的 在Unix Server上運行ASP的可能性....... 裡有提到, 直接安裝 httpd-devel套件即可

# yum install httpd-devel

再使用以下指令即可取得apsx安裝位址

#which apxs (範例為 /usr/sbin/apxs)

接下來安裝linxml & libxml2 (可使用 # rpm -qa |grep libxml 檢查)

# yum install libxml
# yum install libxml-devel
# yum install libxml2
# yum install libxml2-devel

ps. 其餘套件請自行從FC5的RPC光碟裡取出安裝嘍, 這裡不再多說了!!!

接下來下傳 PHP 5.2.4的套件包並解壓縮, 執行安裝程序(如果中途有缺套件, 請再自行安裝)
# ./configure --with-mysql --with-apxs=/usr/sbin/apxs

如果您有啟用Apache2, 請改成 --with-apxs2

完成後再依序執行以下指令
# make
# make install

最後, 重新起動一次 apache, 讓新的設定生效!!!

#  service httpd restart

好了, 再執行php_info(); 就看到您的PHP版本已經成功的更新了!!!

系統環境:
OS: Linux FedoraCore5
PHP: 5.1.6 --> 5.2.4

 

 

[技術分享 ] 01 元月, 2008 18:13

今天為了WGM的專案裡的檔案功能問題傷透了腦筋, 為什麼呢!?
因為在一般做法, 上傳只是單純在表單Post以後, 程式接收開始處理, 完成後再進行相關的檔案搬移及管理, 再存入關聯資料來連結住檔案(或是放入DB也行), 但是目前遇到了一個極大的問題, 其中為了讓表單更現代化也是其中之一, 最主要的問題發生在, 當有使用者上傳了50MB或100MB的檔案時, 怎麼辦呢?? 就算把MaxUpload開放, 如果不在區域網本地端上傳, 一個80M的檔案會傳到天荒地老, 並等待伺服器回應, 這時...AJAX就很重要了..!!!

接下來, 當然就會想到用進度條來做好了, 目前在xAjax或jQuery上, 都是輕而易舉的, 但是, 問題來了, 本人使用的AJAX技術是源自於andot兄的PHPRPC, 主要是為了主程式輕盈短小, 又可以完全自己Code我要的function, 但是在檔案傳輸上, 因為JS無法取得使用者端電腦資訊, 所以似乎變得不可行, 在訪問了許多資料及PHPRPC愛好者(QQ群: 4927045), 發現只有一位王總曾使用PHPRPC + Flash完全了此項作業, 慘!! 我最不想碰的就是AS, 所以....只能另找他法了!!!

首先找到的是在PHP 4.x時使用的UploadProgressMeter (Google Search), 但是找到的資料說明非常不完全, 而且可供下傳的都是使用PHP 4.x Patch的方式, 我所有的主機都已經使用了PHP 5.2以上了, 後來也提到要安裝HTML_AJAX :

If you want to use the code you need to:
Install HTML_AJAX (pear install HTML_AJAX-alpha)
Download PAFUPMU and install it somewhere accessible.
Add the code to your page using demo.php as an example.

這樣又變得非常之不方便, 所以...我就開始找尋其它資料, 居然被本人發現到, 在PHP 5.2.x後, 已經被納入標準擴充模組了, 這個消息真的是很大快人心, 所以當下開始尋找資料...好了...讓我們開始實現這個作法吧!!!

Step 1:
首先, 要先安裝pear(PHP Extension and Application Repository), 也就是PHP延伸及擴充程式庫, 安裝的方式非常容易, 本人採用Lynx瀏覽器方式來安裝
先安裝Lynx
# yum install lynx

接下來安裝Pear
# lynx -source http://pear.php.net/go-pear | php

安裝時會有數個詢問項, 如果您熟悉安裝資訊及路徑, 您可以依需求自行變更, 如果不清楚, 請全部直接按Enter跳過即可!! 安裝完成後即可開始使用 pear擴充指令來安裝相關的PECL安裝包!!!
相關文件可查詢官方網站 : http://pecl.php.net/index.php

接下來直接安裝由Pear封裝的UploadProgress的擴充套件!!!
PECL : UploadProgress Package (http://pecl.php.net/package/uploadprogress)

指令 Example:
# pear install 檔案包本機位址檔案包網路路徑

ps. 如果您是由5.1.6升級成5.2.4時, 請注意, 因為RPM的DB資料還是舊有的PHP 5.1.6的記錄,  即使使用了 rpmdb -rebuild 重建也無效, 所以還是會造成PHP版本不符而無法升級擴充套件, 可能是因為RPM包沒有移除就直接用編譯方式安裝所致, 本人實在不太敢強制移除RPM包資料, 所以我改用以下指令來強制安裝!!!

# pear install -f 檔案包本機位址檔案包網路路徑

經過測試, 運作正常, 且phpinfo(); 及程式顯示都正常, 即然正常, 那就不要去動他了, 等待高手教學吧..= =" 

ps. 請注意Document有註明

DescriptionPHP 5.2 is needed


如果您的PHP版本未達5.2(含)或以上時, 請您進行升級至5.2.x, 本人等下有空再補寫一篇由PHP 5.1.6升級至5.2.4的文件記錄下來, 以免遺忘, 為什麼呢...因為FC5預設就是PHP 5.1.6, 我是用FC7所以沒有問題, FC5的使用者就很需要的, 其它的PHP 4.x --> PHP 5.2.x資料就一堆了, 所以不需要再提供了..^^

請參考: PHP 5.1.6 升級至 PHP 5.2.4 實作手記

安裝完成後, 打開您伺服器上的php_info(); 來看, 您就會看到您的PHP已經支援了UploadProgress進度條的支援了, 至於如何使用進度條的範例, 將會在下一篇上說明, 請大家多多利用!!!

架設環境:
OS: Linux Fedora Core 7 i386
PHP: PHP 5.2.4

 

[技術分享 ] 13 十月, 2007 18:52

前言:
最近這一陣子, 在自己的主機上搞了許多網站及BLOG, 再加上利用本站主機提交了
Google Button for funP Feed 後, 主機的流量沒有增加, 但是httpd的process增多, 而且大量佔用了記憶體, 讓我主機小小的512MB記憶體不時滿載, 再加上WGM專案也是在我的主機上開發, 使用了大量的PHPRPC調用, 更是雪上加霜, 經過查看了 /var/log/httpd/error_log 及 /var/httpd/access_log 後, 發現有大量的Search Bot在主機上搜尋頁面, 連之前主機掛掉前的一些網站也在自動搜尋, 連沒在用的www目錄也在尋找, 而且又發現了一大堆網蟲, 造成了系統負載, 所以動不動就記憶體滿載, 大量使用了SWAP的空間, 造成硬碟不斷運作, 但是目前的狀況似乎不太允許我再加記憶體了, 兩支256MB, 只有兩個DIMM槽, 要不就直接換1GB的(貴)..不然加一條512MB還是得拆掉一支256MB, 等於只有768MB, 所以只好從其它地方下手嘍..XD

重點:
在修改了各站的robots.txt後, 這種情形似乎一直沒有改進, 因為他還是會去"試著找"一些未知文件來充實自己, 所以只好再試著製作SiteMap(網站地圖)來供搜尋引擎輕易的找到路來索引您的網站, 因為我的站台有Discuz!!的論壇, Lifetype的Blog以及一般的開發專案等等, 故去找了各自的外掛回來安裝, 並將安裝結果發表出來讓網站管理者取得使用並安裝(其實也是怕自己日後再忘掉XD).....

# Discuz!! 論壇
這有現成的外掛可以使用, 不用讓您時常的重新產生Sitemap, 請看說明!

Discuz! Sitemap生成插件
作者: loveapple
原出處:
http://bbs.loveapple.cn/viewthread.php?tid=246&extra=page%3D1
目前版本: 0.9 (我提供的是0.8的較穩定版本)
支援版本: Discuz! 5.5 & 6.0RC
下載點:
可至原出處註冊並下載0.9版

直接下載測試OK Discuz_SiteMap 0.8版
GoGoBox載點
我的Blog載點

安裝方法:
     PHP運行檔案(sitemapIndex.php , sitemap.php)不須做任何修改, 在其它文章中有發現要求修改27行或76行的網址, 其實那行是在宣告壓縮檔案與參照最新的通訊協定標準, 而非改成自己的網址, 這點要特別注意, 整體來說, 直接把兩個檔案上傳至您Discuz!!論壇主目錄即可!! 至於裡面那支robots.txt是我直接拿Discuz! 6.0RC裡的檔案來改的Sample檔, 如果您也是使用相同版本並沒修改過內容, 可以直接使用我改好了, 如果不是, 請看修改方式!!

robots.txt 修改說明:
1. 從您論壇主目錄內將原先的robots.txt檔案下傳回來!!
2. 如果您需使用WAP(手機網頁), 請找到如下字串並刪除之即可!!
     Disallow: /WAP/
3. 增加Sitemap位址宣告於檔尾!! 如下字串!!
    
Sitemap:
     sitemapIndex.php
4. 將修改完的檔案再回傳至目錄使設定生效!!

ps. 如果您在原始出處註冊並下載外掛, 請記得務必將兩支PHP檔案重新編碼成Utf-8喔!!

提交方式:
1. GooGle 搜尋引擎
     至
GooGle網站管理工具點選對應的網站sitemap, 輸入Sitemap檔案位址 (ex. http://your_host_name/sitemapIndex.php ), 紅色為需要輸入的部份, 接下來Google Bot就會依照您提供的Sitemap進行索引了, 由於該頁面為自動生成, 除非論壇改版, 不然他都會自動提供最新的索引給GooGle嘍!!
2. Yahoo! Site Explorer
     至
Yahoo! Site Explorer, 使用您在全球Yahoo!的帳號來登入並增加您的網站資料來進行管理, 如圖一, 接下來進行認證, 認證方式同GooGle, 但是必須使用他提供的檔案來上傳至您登記的網站主目錄進行認證, 因為不同的是檔案內有認證文字(在這就不再多說了, 不知道的人再私下問我喔!!), 也有其它方式, 您可以參考該頁說明, 如圖二, 認證完後接下來點選Feed按紐, 如圖三, 按下來輸入剛剛上傳的sitemap檔名, 再點送出, 就大功告成了...簡單吧!!
3. MSN Site Explorer
    這個比較容易, 只要在論壇表頭資訊加上一個宣告sitemap位址的meta就好了, 到論壇後台的[基本設置]->[搜索引擎優化]的設定項[其它頭部信息], 將以下宣告貼上並送出即可完成!!
<linkrel="alternate" type="application/rss+xml"title="ROR" href="sitemapIndex.php" />  


圖一 - 增加您的網站資料來進行管理


圖二 - 進行網站認證


圖三 - 點選此處進上Sitemap設定


圖四 - 輸入sitemap檔名並送出資料, 完成!!

# LifeType Blog StieMap
作者:
Paul Westbrook
下載連結: http://prdownloads.sourceforge.net/lifetype/1.2_sitemap.zip?download
最近更新: 2007-04-17
支援版本: LifeType 1.2x
安裝方法: 
     將檔案解壓縮後得到一個 sitemap 的檔案目錄, 直接上傳至主目錄下的 plugins目錄下, 再進入管理後台[個人網址設定]->[基本設定]的"網站地圖設定, 設定好後會產生一個連結供您傳送給GooGle及Yahoo!使用, 一般為 sitemapX.gz , X代表您的Blog ID, 不過在傳給搜尋引擎之前, 您必須先設定主目錄下的 .htaccess及tmp/.htaccess這兩個設定檔, 才能讓Bot正確的進入您的WEB讀取Sitemap資料, 如果您非管理員, 請先洽詢管理員是否已有設定了喔, 設定方式如下:
ps. 您可以參考裡面的readme.txt或是直接上
網站看說明進行安裝!!(原文)

1. 修改主目錄下 .htaccess 並加入以下設定, 如有相同設定, 請變動不同處即可!!
<Files "*">
Order deny,allow
Deny from all
</Files>

<Files "sitemap.gz">
Allow from all
</files>

2. 修改 tmp/.htaccess 並加入以下設定, 如有相同設定, 請變動不同處即可!!
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# Point to the sitemap file that is local to the blog
RewriteRule ^sitemap([0-9]+)\.gz$ tmp/sitemap/$1/sitemap.gz [L,NC]

</IfModule>
ps.大約都只增加紅字那一塊, 其它設定本身已有!!

提交方式:
     基本上同Discuz!的提交方式, 只是輸入的檔名變成在 Lifetype後台, 系統提供給您的檔案 sitemapX.gz , X是您的BlogID, 每個人都不一樣, 請照填!!

注意!!!  Lifttype在您提交後, 並不會立即產生出對應的sitemap檔, 而是要在您新POST了一篇文章時才會產生, 所以請您務必在安裝完後, 直接POST新文章就OK了, 如果不理他也沒問題, 反正您爾後有再POST新文時就會生效了....(這也是為什麼我要打這一大篇的原因之一, 重點是為了讓他生效XD)..

# 一般網站安裝 Sitemap

打得手好酸, 終於可以結束了, 因為一般網站安裝, 在GooGle有完整的中文說明及產生器提供, 所以我可以休息了....Ya~~~~~

請參考 GooGle網站管理員工具 - 如何使用 Sitemap 產生器

好了....祝大家使用愉快, 目前輕鬆提交我的網站內容給各大搜尋引擎中!!