2010年6月13日 星期日

IGOOGLE 小工具開發之新手上路 之 igoogle SmartAccount聰明線上記帳小工具 by FQstory

IGOOGLE 小工具開發之新手上路 之 igoogle SmartAccount聰明線上記帳小工具 by FQstory

最近寫了一個記帳程式想要放到 IGOOGLE 上

所以就研究一下 GOOGLE的小工具開發方法

其實步驟很簡單,且GOOGLE還免費提供一套 editor : Google Gadgets Editor

首先

新增Google Gadgets Editor 小工具



然後大家應該都會了吧!!


不過這個小工具要用XML的語法寫入(可以放HTML)

然後再publish以前

要先確認一下需求格式

這邊以smartaccount為例子:

?xml version="1.0" encoding="UTF-8"?
Module
ModulePrefs title="SmartAccount 聰明記帳小工具 @ by FQstory" height="300" width="300"
             description="簡單的記帳小工具,他可以自動計入您所輸入過的項目,並且自動依次排序喔!!還可以設定預算等等功能喔"
             author="Mien-De Jhuo "
             author_email="poi5305@gmail.com"
    author_location="http://fq-story.blogspot.com/"
    thumbnail="http://poi5305.my3gb.com/account/ico.jpg"
    screenshot="http://poi5305.my3gb.com/account/ico.jpg"
             
/ModulePrefs
Content type="url" href="http://poi5305.my3gb.com/account/index.html" /
/Module

PS . < & > 拿掉了

ModulePrefs 屬性 裡面基本上最好都要填寫
再發布的時候google也會提醒你哪些是必要的

都弄好之後就可以選擇倒數第二的選項 "publish"

之後就照著google的指示進行即可


順便介紹一下 IGOOGLE SmartAccount聰明記帳小工具  新增





他其實說明白點就是簡單的記帳工具

==========功能一:快速選擇項目============



至於特色就是會自動記錄您之前所輸入過的項目

並且依造次數排序 (顯示前六名)

可以省略以往還要邊輯 項目的動作

因為是以次數排列
所以顯示出來的快速選擇項目一定是常用的項目

=========功能二:快速搜尋項目============



如果前六名沒有您想要輸入的項目

就可以輸入前一個字在欄位中

系統也會自動搜尋您曾經輸入過的項目

或是最熱門的項目

==========功能三:訂定預算============



之後還有提供一個小的功能

就是可以對項目訂定預算

如果支出超過預算,就會以紅色的提醒您該注意了

==========特色:明細==============

在列出明細時,可以選擇 年或月或日

年會顯示 一年的統計(平均花費)

月會顯示 一個月的統計(平均花費)

日則顯示 當天所有的收支狀況

==================================

本程式使用AJAX+PHP+JS 技術

2010年6月9日 星期三

Google API 研究大全之新手上路

Google API 研究大全之新手上路

-------------------------------
這也是我第一次使用Google API

參考文件 google api 大全

這算是我邊學邊寫筆記吧!!
-------------------------------

早在N年前GOOGLE剛紅起來的時候,也是FACEBOOK在台灣紅起來的時候

那時候用facebook api 寫了一個簡單的遊戲

不過基本上只有利用到帳號的資訊

之後又發現了google api的好處

他其實就等於提供了一個免費空間供大家使用

只是目前支援的語言並不多

主要是python 和 java

因為那時候只會php,並不是google主要支持的語言,所以到是沒有動力研究

(雖然那時候就有看過利用java 再支援到 php 的方法...)

......

後來老師買了一本 google api 大全 借我參考

再加上python語言比較熟了點,再加上對google的熱愛

於是決定繼續走上這條路@@!!

!! 重點是 熱愛 !! GOOGLE & 程式
-------------------------------
前言結束
-------------------------------

首先,要使用google api最重要的就是要有可以寫的 "用具"

這個 "用具的語言" 可以是 java 或是 python

這邊我選了python ,請到 http://www.python.org/download/releases/2.5/ 下載2.5的版本

至於東西請到 http://code.google.com/intl/zh-TW/appengine/downloads.html 下載sdk

兩者缺一不可 (這樣才能在你的電腦編輯,並且執行)

之後就安裝吧!! (兩個都要 先PYTHON 後 SDK吧!! 應該沒有很重要)

安裝OK後,先打開Google App Engine Launcher

這邊先設定一下 edit->preferences 先把路定設定一下
(如果有先安裝PYTHON新版本然後才安裝PYTHON2.5,更要記得設定)

基本上這樣就都搞定了,easy

接下來就可以直接使用google sdk 提供的範例來使用了

直接按 ctrl+shift+n  就是新增應用程式,路徑 Google\google_appengine\demos\guestbook

接下來點 run 就可以了,到瀏覽器 http://localhost:8080/
即可出現DEMO的頁面

基本上到這邊就大功告成了,可以使用了!!!

2010年5月17日 星期一

php 模擬IE、FIREFOX等瀏覽器發送

php 模擬IE、FIREFOX等瀏覽器發送

==========================================
原由

昨天,突然想說要去看看露天拍賣的原始碼

結果卻出現禁止進入的畫面

隨即馬上想到露天拍賣禁止PHP+APACHE的直接進入

應該是鎖住進入的瀏覽器類型吧!

於是就找阿找到了一些方法

只要把PHP模擬 IE 或是 FIREFOX 開啟網頁

就可以破解露天的禁止

其實也很簡單

只要加一行指令就可以了 ^^

ini_set('user_agent', 瀏覽器類型)

==========================================
只要在一開始加入
ini_set('user_agent', 瀏覽器類型資訊)
就可以了

EX

IE
ini_set('user_agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)');//模擬IE
echo file_get_contents('http://www.ruten.com.tw/');

FIREFOX
ini_set('user_agent', 'Mozilla/5.0 (Windows;+U; Windows+NT+5.2; zh-CN; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10');//模擬FIREFOX
echo file_get_contents('http://www.ruten.com.tw/');


這邊還搜尋了其他瀏覽器的資訊

Chrome
ini_set('user_agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko)' );

Opera
ini_set('user_agent', 'Opera/9.63 (Windows NT 5.1; U; Edition IBIS; zh-cn) Presto/2.1.1' );
或是你想要得知瀏覽器類型

也可以直接利用

$_SERVER["HTTP_USER_AGENT"]

得知

==========================================

2010年3月6日 星期六

PHP Function 文字與陣列轉換,資料庫好用喔(可多層)

這個程式主要就是可以把陣列 和文字 互相轉換
在資料庫要新增欄位算是比較麻煩的事情,而且如果欄位和值的數量不固定
資料庫就很難作用
因此寫了這個程式(初步構想),只要在資料庫欄位中,新增一個TEXT 欄位即可
大家可以試試看,本人是覺得還蠻方便的
=========================================
後來發現 其實就是JSON 的觀念
=========================================

<?php

$text = "e:{ee:{eee:55},e2:555},a:1,b:{ba:1},c:2,d:{dd:4,da:5}";

$text2 ='aa,bb,cc,dd';

$a = text2array($text);

$a = array2text($a);

var_dump($a);//string(53) "e:{ee:{eee:55},e2:555},a:1,b:{ba:1},c:2,d:{dd:4,da:5}"

function text2array($text){

$return = array();

while($text){

$tay = explode(":",$text,2);

$l=0;$i= (-1);

while($i<strlen($tay[1])){

$i++;

if($tay[1][$i]=="{"){

$l++;

}elseif($tay[1][$i]=="}"){

$l--;

}

//if()

if($l==0){

break;

}

}

if($i==0){

$tb = explode(",",$tay[1],2);

$return[$tay[0]] = $tb[0];

if(isset($tb[1]))

$text = $tb[1];

else

$text = false;

}else{

$return[$tay[0]] = text2array(substr($tay[1],1,($i-1)));

$text = substr($tay[1],($i+2));

}

}

return $return;

}

function array2text($array){

$return = '';

if(is_array($array)){

foreach($array as $field=>$content){

if(is_array($content)){

$return = $return.$field.":{".array2text($content)."}";

}else{

$return = $return.$field.":".$content;

}

$return .= ",";

}

$return = substr($return,0,-1);

}else{

$return = $array;

}

return $return;

}

?>

2010年1月19日 星期二

python 區域模糊找圖

python 區域模糊找圖

====================
原由:
====================
此功能就像是按鍵精靈中的"區域模糊找圖"一樣
可以指定一個區域,然後找到所需要的圖片,並傳回座標

會寫這程式其實是因為按鍵精靈實在是不太好掌控
稍微複雜一點的就寫不出來 = ="(語法不合胃口 顆顆)

所以就想到弄別的程式語言寫,不過我最熟悉的只有PHP

也不能來做這檔事

所以就研究起來之前想學的語言PYTHON
(順便學一學)

經過一個晚上的研究,以及找方法
(= =中文資料真的頗少)

終於...發現了幾個可以抓取螢幕的小程式
(顆顆 所以才PO上來)

也經過了一個早上才終於寫出來
不過速度還是有點不太理想(已經有稍微修正,可是還是不盡理想)
====================
程式碼
====================
import psyco
psyco.full()
from PIL import Image, ImageGrab
import math
#FindPic(左上X,左上Y,右下X,右下Y,圖檔路徑,相似度)
def FindPic(ux,uy,dx,dy,path,like):
imS = ImageGrab.grab((ux,uy,dx,dy))
imD = Image.open(path)
for x in range(imS.size[0]-imD.size[0]):
for y in range(imS.size[1]-imD.size[1]):
if(imD.size[0] >= imD.size[1]): #這邊是快速版,只比對斜線
r = imD.size[1]
else:
r = imD.size[0]
t = 0
ct = 0
for xy in range(r):
(DR,DG,DB) = imD.getpixel((xy,xy))
(SR,SG,SB) = imS.getpixel((xy+x,xy+y))
if(DR==SR and DG==SG and DB==SB):
t=t+1
if(t >= r*like):
ct=1
#return x+ux,y+uy #這邊是快速版,只比對斜線
c = 0
e = 0
if(ct==1):#這邊是完整比對
for imDX in range(imD.size[0]):
for imDY in range(imD.size[1]):
(DR,DG,DB) = imD.getpixel((imDX,imDY))
(SR,SG,SB) = imS.getpixel((imDX+x,imDY+y))
if(DR==SR and DG==SG and DB==SB):
c = c+1
if(c >= imD.size[0]*imD.size[1]*like):
return x+ux,y+uy
else:
e = e+1
if(e >imD.size[0]*imD.size[1]*(1-like)):
break;break;
return -1,-1

print FindPic(85,45,150,100,"c:\\re.bmp",1)
#print FindPic(0,0,1024,768,"c:\\re.bmp",1) #re.bmp 要24位元的

====================
附註
====================
此程式需要加裝
psyco (可以省略,速度約差三分之一到二分之一)
PIL
記得縮排
====================
此程式速度還在想加速的方法 = ="
如果要使用 盡量把區域設小一點,不要設全螢幕
不然,可能要很久很久(九秒...)
print FindPic(0,0,1024,768,"c:\\re.bmp",1)

不過如果有限制的話
速度就還可以接受摟!!
print FindPic(85,45,150,100,"c:\\re.bmp",1)


================END==================

2009年12月23日 星期三

OGame私服問題

==========================================
OGame私服問題,前情提要
==========================================

前幾天發現FACEBOOK有OGAME

就很開心的想要回鍋一下

不過卻遇到很多伺服器的問題

於是就找阿找的竟然發現OGAME有私服 = ="(恕我孤陋寡聞 顆顆~)

而且竟然還有可以下載的

就很開心的下載了(想要的人GOOGLE一下就有了)

然後就下載了第一個版本,並且安裝~ = ="

不過問題超多的,就放棄了

於是就用了第二個版本,發現還蠻正常的

就照著步驟安裝下去...

一切都很正常

但是到了要註冊新帳號的時候卻出現了
================================================

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id_planet' at row 1
INSERT INTO ugml_errors SET `username`='newUSER', ' at line 5


OH NO~

於是就很努力GOOGLE找找,找不太到 = ="

只好靠自己了 顆顆~

於是仔細觀察了一下程式碼

就發現了一些問題

可能是和MYSQL版本有關吧!!(實際上我也不知道)

不過問題最後還是有解決了

解決方法:(版本不同我就不知道了)
在 reg.php
(141行) `id_planet`='',
這邊改成
`id_planet`='0',

不過之後卻出現了另一個問題

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'b_hangar_id' doesn't have a default value
INSERT INTO ugml_errors SET ' at line 5

解決方法:

將 MYSQL內

TABLE
`ugml_planets`

內的欄位
b_hangar_id

改成
NULL屬性

就可以正常註冊新帳號了

至於後續問題就有碰到再說吧

顆顆~~只是自己架開心的,(當然不會笨笨的當單機玩 顆顆~ )

2009年12月10日 星期四

簡單後端控制之檔案上傳

簡單後台控制之檔案上傳
(WINDOWS)
================================
原由:
主要是從老師那邊拿到了一個空間
也就是拿到一台電腦的掌控權
不過卻很難控制(學校裡面防護多多)
都只能以遠端控制的方法
要傳檔案只有慢慢慢
所以就乾脆寫了一個簡單的PHP上傳的程式
顆顆顆~~
================================
功能
可以瀏覽整台電腦
可以在指定位置上傳檔案(就是當下瀏覽的位置)
可以覆蓋已經存在的檔案
應該可以中文(要以BIG5,看電腦是甚麼編碼吧)
================================
警告
此程式很危險,最好不要亂放
要記得加上防護,EX帳號密碼認證等等

================================
PHP程式碼
================================

<?php

$localhost = 'http://localhost/';//這邊要改成實際網址初目錄

//$path = 'http://xxx.xxx.xxx.xxx/';

$path = $wwwpath = 'c:\\wamp\\www\\';//對電腦來說放網站的實際位置

//$path = 'c:\\apache\\htdocs\\';

//路徑變好看用

if(isset($_GET['path'])){

$path = $_GET['path'];

$temp = $path = explode('\\',$path);

foreach($temp as $a => $b){

if($b == '..'){

unset($path[($a+1)]);

unset($path[($a)]);

$path[($a-1)] = '';

}

}

$path = implode('\\',$path);

}

//上傳用

if(isset($_POST['submit'])){

if($_FILES['file']['error'] > 0){

switch($_FILES['file']['error']){

case 1 : die("檔案大小超出 php.ini:upload_max_filesize 限制");

case 2 : die("檔案大小超出 MAX_FILE_SIZE 限制");

case 3 : die("檔案僅被部分上傳");

case 4 : die("檔案未被上傳");

}

}else{

if(is_uploaded_file($_FILES['file']['tmp_name'])){

$DestDIR = $path;

if(!is_dir($DestDIR) || !is_writeable($DestDIR))

die("目錄不存在或無法寫入");

//$File_Extension = explode(".", $_FILES['file']['name']);

//$File_Extension = $File_Extension[count($File_Extension)-1];

//$ServerFilename =date("YmdHis") . "." . $File_Extension;

$ServerFilename = $_FILES['file']['name'];

copy($_FILES['file']['tmp_name'] , $DestDIR . "/" . $ServerFilename );

echo $ServerFilename."<br>";

echo $DestDIR."<br>";

echo 'SUCCESS'."<br>" ;

}

}

}

//瀏覽用

$opdir = dir($path);

while($entry = $opdir->read()){

if(is_dir($path.$entry) && $entry != '.'){

echo '<a href = "dealfile.php?path='.$path.$entry.'\\" >'.$entry.'</a> <br />';

}elseif(!is_dir($path.$entry)){

if(strstr($path.$entry,$wwwpath)){

$url = str_replace($wwwpath,$localhost,$path.$entry);

echo '<a href = "'.$url.'" >'.$entry.'</a> <br />';

}else{

echo $entry.'<br />';

}

}

}

$opdir->close();

?>

</p>

<form action="dealfile.php?<?php echo 'path='.$path.$entry ; ?>" method="post" enctype="multipart/form-data" name="form1"

id="form1">

<input type="file" name="file" />

<input name="MAX_FILE_SIZE" type="hidden" id="MAX_FILE_SIZE" value="2000000" />

<input type="submit" name="submit" value="upload" />

</form>

2009年10月10日 星期六

php facebook API 自寫FACEBOOK遊戲

http://apps.facebook.com/fqygame/

最近BLOG很久沒更新

主要是把時間花在研究FACEBOOK 和 PHP 之間的關係

最一開始是偶然在網路上看到了,可以利用JAVA將PHP寫入GOOGLE內

之後就在研究這個東西

不過幾天後又很偶然的發現了!!

原來FACEBOOK可以直接支援PHP

於是研究兩天之後就決定用PHP來寫FACEBOOK遊戲了

目前已經架構OK!!

名稱暫定 :

FQbattle


http://apps.facebook.com/fqygame/


大家可以來玩玩看!!
目前介面還不是很好看啦 = ="

其實說實在的FACEBOOK開發手冊上面

寫的很詳盡

而且他還有一個語法測試機

也都不錯用

而且期時會用到的語法就那些吧!!

有興趣的話 大家也可以試看看喔!!

2009年9月16日 星期三

GOGOBOX 搜尋引擎(PHP程式碼公開)

=======GOGOBOX 搜尋引擎(註記)===========

從寫好到現在已經過了一段時間了
大概搜到有五十多萬筆就停止了
原因主要是 :
  • 資料庫目前還是在自己的小筆電上面,要公開搜尋要移到"大主機"上
  • 本人沒有付費空間或是"大主機",只有免費空間
  • 免費空間放三十萬筆就爆了(修一修頂多放五十萬筆),但GOGOBOX有上百萬筆
  • 已經有人寫出來了,而且也夠好了
大概在前個禮拜停止之後,至今已經快要淡忘了= ="
所以決定在忘記之前,快點先寫出來 (BLOG+福球亂彈)

=======GOGOBOX 搜尋引擎(原理)===========

其實只是使用最簡單也最笨的搜尋方法 "蜘蛛爬行法" (不太清楚是不是這樣叫)

爬行的只有會員ID,然後每個ID裡面都有許多檔案

這些檔案就用內建的GOGOBOX搜尋器,去搜尋

本人是一次搜尋最多五百筆(當然,你要一次用更多都沒關係),如果超過五百筆就跳頁

(使用瀏覽器看最多五十筆,他是記錄在COOKIE,改成五百)

(程式碼裡面全部都可以很清楚的看到方法,歡迎大家討論)


=======GOGOBOX 搜尋引擎(PHP程式碼)===========
//(因為是邊測試邊寫,所以寫的超亂的,未整理過,請包含)
//(邊碼為UTF8)
//(PS此篇還需要先用CURL登入,並將SESSION記錄起來才可使用GOGOBOX內建搜尋)

//這邊是開始使用"蜘蛛爬行法"
//30000000 前面開頭的"3"也等於網址的開頭 http://box3.gogobox.com.tw
//要修改的話要全部修改(約有兩三個)
//由於PHP有時間限制,所以要先改過,本人約改成兩個小時
//然後一次五千筆(可以開好多個網頁一次進行)
for($a=20001;$a<=25000;$a++){

$no = $a + 30000000; //GOGOBOX 會員ID 也是BOX ID

gogo_load($no);//呼叫主程式

}


//GOGOBOX 搜尋引擎 主程式
function gogo_load($no){

$post['box_no']=$no;//GOGOBOX 會員ID 也是BOX ID

$post['nPageNo']='1';//搜尋第幾頁

$row_page=500;//一次筆數(使用GOGOBOX內建搜尋)

$cookie_file_path = "d:\cookie.txt";//紀錄SESSION的地方,GOGOBOX內建搜尋必須登入

$ch = curl_init();

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);

curl_setopt($ch, CURLOPT_COOKIEFILE,$cookie_file_path);

//get info


//這行為登入的網址,要先登入一次GOGOBOX然後把記錄的SESSION記錄到上面的//d:\cookie.txt
//不過因為只用一次,之後都可以使用,所以登入的程式碼刪了 =="
//其實主要是因為是邊研究邊寫,所以之後覺得沒用,就...
//$login ='http://client.gogobox.com.tw:8000/caccessX';

$url = 'http://box3.gogobox.com.tw:8037/app/list_file.cgi?box_no='.$post['box_no'];

curl_setopt($ch, CURLOPT_URL,$url);

$num = curl_exec($ch);

$num = strip_tags($num,'');

$num = strstr($num,'全部資料夾');

$num = strstr($num,'(');

$num = (int)substr($num,1,6);

//以上是判斷是否有資料,如果有才執行以下"使用GOGOBOX內建搜尋 搜尋檔案"
//不過之後覺得這邊可以改一下,速度可以更快
if($num !=0){

$page = ceil($num/$row_page);

//===============================================

$url = 'http://box3.gogobox.com.tw:8037/app/list_file.cgi';



//$post['nPageNo']='1';

$once_num = 0;

for($i=1;$i<=$page;$i++){



load_gogobox($post['box_no'],$i,$num,$row_page,$page); //呼叫 使用GOGOBOX內建搜尋



}



}else{

echo $no.'&nbsp;';//if

}

curl_close ($ch);

}



//這邊就是發送資訊給GOGOBOX叫他搜尋某BOX的所有檔案
//一次搜尋五百筆(預設)

//然後取得資料
function load_gogobox($post_no,$i,$num,$row_page,$page){

$chx = curl_init();

$cookie_file_path = "d:\cookie.txt"; //登入SESSION都記錄在這邊

curl_setopt($chx, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($chx, CURLOPT_COOKIEJAR, $cookie_file_path);

curl_setopt($chx, CURLOPT_COOKIEFILE,$cookie_file_path);



$url = 'http://box3.gogobox.com.tw:8037/app/list_file.cgi';

$post['box_no'] = $post_no; //GOGOBOX會員ID,BOX ID

$post['nPageNo'] = $i; //第幾頁

if($i==$page){

$once_num = $num%$row_page;

}else{

$once_num=$row_page;

}

curl_setopt($chx, CURLOPT_POST,1);

curl_setopt($chx, CURLOPT_URL,$url);

curl_setopt($chx, CURLOPT_POSTFIELDS, $post);


//GOGOBOX 是利用COOKIE來記錄要顯示幾筆
//很久以前看的時候沒有發現
//是前個月(應該吧)看他的JAVASCRIPT 才發現的 =="

curl_setopt($chx, CURLOPT_COOKIE, "CbFileBoxListCnt=".$row_page." ; path=/"); //顯示X筆

$result = curl_exec($chx);

gogobox($result,$once_num);//開始把GOGOBOX內建搜尋的結果(五百筆) 紀錄出來

curl_close ($chx);



}





function gogobox($content,$once_num){ //取回 分析 GOGOBOX內建搜尋
//主要就是一些字串處理


$content = strstr($content,'<!-- list table -->');

$content = substr($content,0,strpos($content,'<!-- list table END -->'));

//echo $content;

for($i=0;$i<$once_num;$i++){

$content = substr($content,strpos($content,'colspan=\'6\'')+10);



$content_link = strip_tags($content,'<td><a>');

$content_data = strip_tags($content,'<td>');





$title = strstr($content_data,'class=\'box_f_name\' valign=\'middle\'>');

$title = strstr($title,'>');

$title = trim(substr($title,1,strpos($title,'</td>')-1));



$name = strstr($content_data,'class=\'box_f_info_01tdu\'>');

$name = strstr($name,'>');

$name = trim(substr($name,1,strpos($name,'</td>')-1));

$size = strstr($content_data,'class=\'box_f_info_02\'>');

$size = strstr($size,'>');

$size = trim(substr($size,1,strpos($size,'</td>')-1));

$date = strstr($content_data,'class=\'box_f_info_04\'>');

$date = strstr($date,'>');

$date = trim(substr($date,1,strpos($date,'</td>')-1));



$link = strstr($content_link,'onClick="Copy_Link');

$link = strstr($link,'\'');

$link = substr($link,1);

$link = trim(substr($link,0,strpos($link,'\'')-1));

$return['file_title']=mysql_escape_string($title);

$return['file_name']=mysql_escape_string($name);

$return['file_size']=mysql_escape_string($size);

$return['file_link']=mysql_escape_string($link);

$return['db_date']=mktime();

//data_creat_some("gogobox",$return); //最後將字串都整理好後,建立到資料庫去
//這邊就不把此FUNCTION寫出來了,可以用var_dump($return)看資料
//之後即可自行應用


}

}


===============引用先前====================
引用先前發的 "GOGOBOX 搜尋引擎"
以下是之前研究GOGOBOX的原由

GOGOBOX 搜尋引擎
想必有許多人都也有想過吧!!
當初FINDBOX出來的時候,可是為之驚人啊!!
每天流量都爆破!!顆顆
但是不知怎麼的後來就消失了
======題外話======
(知道的人還請跟我說說吧!THX!~)
只知道之後GOGOBOX有改版
檔案的下載位置好像都有改變的樣子(不太記得了)
所以FINDBOX就失效了??? (I REALLY DONT KNOW)
(或是被警察伯伯抓了???這樣有犯法嗎??)
這一值都是我現在的疑問 顆顆

不過現在好像又有很多人有架類似的站吧!!
顆顆~~這邊也是其中之一
======題外話======

所以就決定再來試做一個 GOGOBOX搜尋引擎
於是就花了許多時間在研究他的檔案位置
最後是有得出一些結論 :
第一個 GOGOBOX 每個會員都有編號
第二個 GOGOBOX 每個檔案也都有編號
第三個 GOGOBOX 每個檔案下載位置都有加上會員編號
第四個 不知道怎麼不列會員編號就下載到檔案
最後 GOGOBOX 必須要有會員編號 和檔案編號才能下載 (不知道對不對)

但是還有一個線索,就是他每個會員BOX裡面都可以搜尋到他所PO的所有檔案

結合以上幾點就用PHP寫出了一個搜尋器

因為不可能直接使用GOGOBOX的搜尋引擎,所以大概就是要像GOOGLE一樣
把檔案都先搜索過然後存到資料庫,使用者再直接搜尋這個資料庫
這樣速度才OK

SO...

目前今天花了一個下午,大概寫出了一些,已經可以廣搜GOGOBOX了
不過速度有點慢 == 十分鐘 約 幾千個檔案而已
(過了幾天,目前約四十萬筆吧!!)
一切還在測試中,...至於公開程式碼 大概會慢一點公開
ps 目前搜了兩萬五千筆左右 == 離全部還好遠好遠
===============宣告====================
此篇內容僅供測試,如果有利用做不法行為,與本人無關

2009年9月12日 星期六

PHP SMARTY樣板處理程式

PHP SMARTY樣板處理程式

轉自福球亂彈(其實也是我自己打的 = =")

這是一個很好用的外掛程式

安裝極為簡單

只要解壓縮後

把下面的資料夾複製到你的網站資料夾下面即可

接下來只要引用即可



==================================

SMARTY簡介

==================================

1.smarty是甚麼?

是一個樣板處理程式,他主要是方便管理HTML和PHP之間的聯繫關係,也有將HTML和PHP分開的功能,"以便使用者管理網站"。而且在實際使用上,程式碼會簡潔許多。

2.為什麼非要用smarty?

當然不一定要使用,不過你一用,就會愛上的。

smarty主要功能就是把PHP和HTML程式分開放,這樣就能使專門設計HTML美觀方面的人,和專門寫PHP程式的人可以方便分工合作,使事情處理上更有效率。

而且使用smarty,也可以大量減少網頁數量。

一個PHP => 一個樣板 = 同性質所有功能的兩個檔案就可以處理完

一個PHP => 少量樣板 = 一個中小型網站可處理完畢。

多個PHP => 少量樣板 = 大型網站(論壇、多樣的互動網站)

3.甚麼時候用到smarty?

測試性PHP程式基本上不會用到,但只要有"介面"出現,用就對了!!



==================================

簡單教學

==================================

一開始在先看一下

smarty資料夾下面有兩個php程式

main.PHP

smarty_php.php

這兩個是最一開始處理SMARTY的程序

main.php 算是最原始的

smarty_main.php 是本人稍稍改過的(建議使用,已排除JAVASCRIPT問題)

基本上就不需要動這個檔案了

我們開始使用SMARTY

在PHP程式上面先 require('smarty/smarty_main.php');

此時就已經算是建立一個樣版了(smarty_main.php)



PHP部分

<?php

require('smarty/smarty_main.php'); //路徑沒問題吧!! 已經建立摟

//接下來可以直接使用,由於引入檔開啟CLASS的建立是用 $tpl 所以之後都要用$tpl

//將字串傳到樣板,用assign

$tpl -> assign("trans_title","我是要給HTML顯示的抬頭");

$tpl -> assign("trans_body","我是要給HTML顯示內容");

//可以用很多次,意思是可以設定很多個變量(自己隨便設)



//接下來就可以展現樣版了,很EASY吧

$tpl -> display('tmp/test.html'); //路徑應該知道吧!!

?>





HTML樣板部分

<html>

<title>{{$trans_title}}</title>

<body>

{{$trans_body}}

</body>

</html>



這樣就可以了,php就會開啟此樣板,並把變量傳過來,然後顯示



最後的輸出結果(看到的)



網頁的標題就會是 "我是要給HTML顯示的抬頭"

內容只有 "我是要給HTML顯示內容"



最後的輸出結果(html)



<html>

<title>我是要給HTML顯示的抬頭</title>

<body>

我是要給HTML顯示內容

</body>

</html>



就是這樣,簡單吧!!

這樣就可以隨便把變數放在自己想要的地方

如果不用樣版的話,就必須在php裡面寫html,會變得很麻煩的喔!!



先這樣吧!! 以後再打稍為進階一點的 =="


smarty.rar (93.54 KB)