[技術分享
]
09 六月, 2008 22:26
今天把電腦裝好灌好後, 要把所有的設備連結上電腦服務, 所有的週邊都好了, 郤有一個週邊動不起來, 就是我用來當SKYPE的 亞邁變臉機 talkcam 1.1 的網路攝影機, 找了半天居然所有的連結都指回 http://vgear.com 的服務網站去, 但郤都找不到網頁 page not found!!
經過10幾分鐘的搜尋, 找到了如下的一則新聞, 才知道, 原來亞邁倒閉了...真是有點感傷!!
但是, 最感傷的是我找不到驅動, 我也沒多餘的錢再多購置一個(真的感到自己好可憐, 什麼都要省), 只有不斷的找下去, 唯一欣慰的事, 是在網路上, 似有數百計的網民跟我有同樣的困擾, 我不是孤單的......真有點無言...
好吧, 重點還是快公佈一下好了, 以解決廣大鄉民苦苦的尋找, 當然, 也可能有許多高手也找到了, 但我用谷歌找了好久似乎都沒有人有這類消息, 所以, 我還是只能靠自己的力量, 如果需要, 大家可以到以下連結去找自己的機型來安裝, 這倒是一個好消息, 雖然我在找尋驅動時, 有一個想法, 就是如果我找到了, 把他全部做成一個類似驅動的網站, 那光靠為數眾多的網民來找驅動, 我的流量就爆了吧, 後來隨著找到以下的網站後就放棄了, 他的速度又快又齊全, 我再建一個就沒意義了....中文化嗎..= ="....
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有註明
| Description | PHP 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 產生器
好了....祝大家使用愉快, 目前輕鬆提交我的網站內容給各大搜尋引擎中!!