顯示具有 PHP 相關 標籤的文章。 顯示所有文章
顯示具有 PHP 相關 標籤的文章。 顯示所有文章

2011年8月1日 星期一

PHP curl 查詢機票座位(機位)

前言...

因為在暑假的某一天,
"突然"想去韓國自由行玩個一個禮拜,
不過因為決定的有點突然,
只剩不到一個月左右,
機票便宜的都訂光了,
只剩下貴兩三倍的機票,
於是我們就去找旅行社幫忙,
結果旅行社只能幫我們查詢,
某天去的班機和某天回來的班機,而且還要某家航空公司
而不能"全部"查詢,只能要我們慢慢手動一個一個點...
...這...並非人力所及
幾十個航班,加上20天內都有空,只要玩個5~6天,在加上每天都會有機位新釋出
意思是說每天都要點個(保守估計)20航班 x 15天的去回=300up次 (一次可以查去回)
每次查詢還要十幾秒鐘的時間...

相信很多人都有此困擾 = =

因此最後決定動用"程式"的力量︿︿

(最一開始我是想說應該有人已經有寫出來了,
不過簡單google一下,也沒有發現,最後只好自己動手了)

由程式來解決問題...

最後的機票是找到比最便宜貴約1.3倍的價錢(手動的話...大概這次出國就要放棄了)
(不過結果證實,下次要出國還是要趁早決定)


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

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

進入正題

是使用php+curl的方法,在這裡只有把curl的方法列出來

至於文字拆解就不詳述(而curl的目標,就是某旅行公司...)

(實際上測試了3家旅行業者,找一個最簡單的列出來)

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

//第一步,取得所有適合的班機

$ch = curl_init();

$url = "http://www.eztravel.com.tw/ezec/freefit/ec_fit_main_query.jsp?city_from=TPE&city_to=SEL&ticket_type=R&service_type=4&ticket_class_section=2&international_cd=&searchBegDate=20110811&priceRange=0,12000&wt_search=fit2";
//這個url是先去他的網站查詢適合班機的結果,也可以自己改數值
//例如 priceRange=0,12000 就是0元到12000元


curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
//模擬由你的瀏覽器進入,在這個旅行網站好像不需要(有點忘了),不過另某家需要
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_REFERER, "http://www.eztravel.com.tw/");
//這行最重要,是這旅遊網站認證的地方,沒有的話會無法取得資料
$result = curl_exec($ch);



//第二步,查詢機位

//這邊是設定給網站查詢的設定值(最好都不要少)
//至於取得方法,可以看最後表單的輸出結果
//也可以用google chrome右鍵檢查元素也可以得到
//而value,基本上是從你剛剛取得所有適合的航班的頁面可以取得


$tmp = 'prod_no:'.$prod_no.'
beg_date:'.$beg_date.'
end_date:'.$end_date.'
tkt_type:'.$tkt_type.'
ticket_type:'.$ticket_type.'
arg:1
arg:'.$prod_no.'
arg:20040815
arg:1
arg:TPE
arg:TPE
arg:2
hOpenChk:
bookYn:'.$bookYn.'
goPeople:'.$buyNum.'
Choice1:'.$buyNum.'
kind:'.$prod_no.','.$beg_date.','.$end_date.',1
Choice1:0
kind:'.$prod_no.','.$beg_date.','.$end_date.',3
Choice:'.$buyNum.'
Choice:0
h_checkInDateT:
checkInDateT:'.$checkInDate.'
f_checkin_date2:
checkOutDateT:'.$checkOutDate;
//echo $tmp;
$tmp = str_replace(":","=",$tmp);
$tmp = str_replace('
',"&",$tmp);

$post_login = $tmp;


$ch = curl_init();
$url = "http://www.eztravel.com.tw/ezec/freefit/ec_fit_flypath_searching.jsp";

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
//如果跳頁,跟的跳,這網站好像不會用到
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_login);//給予參數設定值
curl_setopt($ch, CURLOPT_REFERER, "http://www.eztravel.com.tw/ezec/freefit/ec_fit_date_query.jsp");
//這行這網站會驗證
$result = curl_exec($ch);
return $result;



//result 就是結果摟!!就是這樣

===============程式碼 END==============

最後的執行結果是存在mysql裡面,方便查詢

最後的結果(候補沒顯示)

2010年11月30日 星期二

FQorder 物品得標整理+匯款單系統

http://www.fqstory.jjvk.com/fqorder/

FQorder 匯款單系統

========前言========

之前看到很火紅的匯款單填寫系統

就已經有躍躍欲試的衝動

之後又發現,日貨賣家好像不太使用"目前最大的匯款單系統"

而只是用一些"小小匯款單系統",就探討了一些原因

等等原因....

就寫了一個針對"日貨賣家"所寫的"匯款單系統"

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

目前還只有在初步測試

版面也還在設計中...

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


當然,因為我也不是日貨賣家

也許此系統不一定符合日或賣家的需求

所以在這邊發表,想要徵求一些日貨賣家的意見或是測試


2010年9月13日 星期一

PHP Html 轉成陣列(array)

=========標題========
PHP Html 轉成陣列(array)





PHP html array
PHP html to array
php html 轉 array
========HTML========
<html id ="headmenu"><head><meta id="d" /><meta /><head/></html><div id ="headmenu">3<p>sd</p><p>sd</p>bb</div>

========結果=========
array(2) {
[0]=>
array(4) {
["tag"]=>
string(6) ""
["id"]=>
string(8) "headmenu"
["text"]=>
string(0) ""
["next"]=>
array(1) {
[0]=>
array(3) {
["tag"]=>
string(6) ""
["text"]=>
string(0) ""
["next"]=>
array(2) {
[0]=>
array(2) {
["tag"]=>
string(6) ""
["id"]=>
string(1) "d"
}
[1]=>
array(1) {
["tag"]=>
string(6) ""
}
}
}
}
}
[1]=>
array(4) {
["tag"]=>
string(5) "


"
["id"]=>
string(8) "headmenu"
["text"]=>
string(3) "3bb"
["next"]=>
array(2) {
[0]=>
array(3) {
["tag"]=>
string(3) ""
["text"]=>
string(2) "sd"
["next"]=>
array(0) {
}
}
[1]=>
array(3) {
["tag"]=>
string(3) ""
["text"]=>
string(2) "sd"
["next"]=>
array(0) {
}
}
}
}
}
========程式=========
function c2a($c){
  $t="";$re = array();$n=count($re);
  $nset=0;
  $ca=explode("<",$c);
  for($i=0;$i
   if($i>0){
    $ca[$i] = explode(">",$ca[$i]);
    
    $ck = $this->c2i($ca[$i][0]);
    if(!strstr($ca[$i][0],"/")){
     $nset++;
     if($this->taginfo($ck["tag"])){
      $nset--;
      if($nset==0){
       $n=count($re);
       $re[$n]=$this->c2i($ca[$i][0]);
       $n++;
      }else{
       $t .= "<".$ca[$i][0].">";
      }
     }else{
      if($nset==1){
       //echo "a("."<".$ca[$i][0].">".")";
       $n=count($re);
       $re[$n]=$this->c2i($ca[$i][0]);
       $re[$n]["text"] = $ca[$i][1];       
      }else{
       //echo "b("."<".$ca[$i][0].">".")";
       $t .= "<".$ca[$i][0].">".$ca[$i][1];       
      }
     }
    }else{
     $nset--;
     if($this->taginfo($ck["tag"])){
      $nset++;
      if($nset==0){
       $n=count($re);
       $re[$n]=$this->c2i($ca[$i][0]);
       $n++;
      }else{
       $t .= "<".$ca[$i][0].">";
      }
     }else{
      if($nset==0){
       //echo "c("."<".$ca[$i][0].">".")";     
       $re[$n]["next"] = $this->c2a($t);
       $t="";$n=count($re);     
      }else{
       //echo "d("."<".$ca[$i][0].">".")";
       if(!isset($re[$n]["text"]))$re[$n]["text"]= $ca[$i][1]; else $re[$n]["text"].= $ca[$i][1];
       $t .= "<".$ca[$i][0].">".$ca[$i][1];       
      }
     }
    } 
   }
  }
  return $re;  
 }

====================================
目前沒有常用到此FUNCTION
但知道一定有一些問題
請大家如果有發現問題,請告訴我,我會修正

2010年9月8日 星期三

PHP EREG 正規表達示 判斷EMAIL

PHP判斷EMAIL 正規表達示

function validateMail($mail) { 
  if($mail !== "") { 
    if(ereg("^[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[@]{1}[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[.]{1}[A-Za-z]{2,5}$", $mail)) { 
      return true; 
    } else { 
      return false; 
    } 
  } else { 
    return false; 
  } 
} 

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年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;

}

?>

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)

2009年8月29日 星期六

GOGOBOX 搜尋引擎

GOGOBOX 搜尋引擎

========================================
9/17
現在已經公布 "GOGOBOX搜尋引擎PHP程式碼" 摟!!

請到 福球亂彈 (方便討論喔!!)

GOGOBOX 搜尋引擎 PHP程式碼公開

或是

本BLOG (有意見或建議可留言喔!!)

GOGOBOX 搜尋引擎 PHP程式碼公開


觀看最新版本
========================================
9/1
剛剛把已經把搜到的GOGOBOX檔案部分上傳到免費空間了
(三十萬筆,因為空間不夠= =)
可以測試看看,不過此空間的廣告有點討厭 = ="
福球亂彈 => 福球程式設計(PHP) => PHP主題討論 => GOGOBOX搜尋引擎測試
順便廣告一下論壇 ==

歡迎大家來討論!!

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


最近和朋友想說要架一個論壇
主要是要放一些和興趣相關的內容
當然有程式設計的版面摟!!

福球亂彈 歡迎大家參觀,也歡迎一起經營喔(誠摯的邀請版主ING)!!
PHP版
(還在計畫中,請不要嫌棄)

再分配管理版面的時候,當然我就是負責"電腦"這方面的板塊~呵呵
但是想阿想的!
最重要的,還是要有主打的東西吧!!
這樣才有吸引人的地方。

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

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

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

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

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

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

SO...

目前今天花了一個下午,大概寫出了一些,已經可以廣搜GOGOBOX了
不過速度有點慢 == 十分鐘 約 幾千個檔案而已
(過了幾天,目前約四十萬筆吧!!)
一切還在測試中,...至於公開程式碼 大概會慢一點公開
ps 目前搜了兩萬五千筆左右 == 離全部還好遠好遠
(目前想辦法讓論壇人氣多一點,所以想讓此搜尋變成主打 顆顆 (作夢ing))
最後 歡迎大家來參觀福球亂彈

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

2009年8月22日 星期六

PHP 自動更新進入yahoo 搶拍賣 PART II 新版

之後又寫了一個版本的


搶拍賣(日貨)用的程式,就是會固定幾秒就搜索一次賣家的帳號,只要最上面的連結改變(表示PO新貨)

馬上就會進去新的頁面
==============================================
使用方法

第一格式輸入YAHOO賣家的網址(清單瀏覽,新貨出現在最上面)

然後可以按送出試試看

下面會出現一行 就是目前最新的物品

如果不是出現現在最新的物品

可以在第二格輸入數字

從 0 開始 01234...

就是要列出目前最新的物品連結

OK之後就點 START 就會開始每X秒自動掃一次

在後面的 下面這行的5就是每五秒掃一次 可以自己改變

echo '<meta http-equiv="refresh" content="5; url=test.php">';

PS 不過此版本還是不能脫逃 YAHOO 999的命運
每五秒一次 大概十五分鐘就壽命終結 ==

目前努力研究逃脫YAHOO 999 的命運

歡迎一起討論^^

最新發現!!!

最近測試發現
用APACHE 傳送過多造成999
IE FIREFOX 還是可以正常瀏覽
因此這裡可能就是可以破解的地方!!

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

<form name="form1" method="get" action="test.php">

<input type="text" name="url" id="textfield">

<input type="submit" name="button" id="button" value="送出">

<input name="num" type="text" id="num">

<input type="submit" name="star" id="star" value="star">

<input type="submit" name="stop" id="stop" value="stop">

</form>

<?php

session_start();

if(isset($_GET['url']) and @$_GET['url'] != ''){

$_SESSION['url']=$_GET['url'];

}

if(isset($_SESSION['url'])){

$url = $_SESSION['url'];

}else{

$url ="http://tw.user.bid.yahoo.com/tw/user/lainjp98?userID=lainjp98&catID=&catIDselect=&clf=&u=:lainjp98&s1=ptime&o1=d&at=false";

}

if(isset($_GET['num']) and @$_GET['num'] != ''){

$_SESSION['num']=$_GET['num'];

}

if(isset($_SESSION['num'])){

$next = $_SESSION['num'];

}else{

$next = 1;

}

$fp =fopen($url,"r");

$content = stream_get_contents($fp);

$content = str_replace('刊登時間','||',$content);

$content = strstr($content,'||');

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

$content = substr($content,60);

$i=0;

//$next = 5;

while($content = strstr($content,'<')){

//$content = strstr($content,'<');

$pos = strpos($content,'>')+1;

$pos = strpos($content,'>',$pos)+1;

$content_link = substr($content,0,$pos);

$content = substr($content,$pos);

if($i==$next){

if(@$_SESSION['check'] ==1){

if($_SESSION['temp'] != $content_link){

$content_link = strstr($content_link,'"');

$content_link = substr($content_link,1);

$pos = strpos($content_link,'"');

$content_link = substr($content_link,0,$pos);

echo '<meta http-equiv="refresh" content="1; url='.$content_link.'">';

}



}

if(@$_GET['star'] =='star'){

$_SESSION['temp']=$content_link;

$_SESSION['check'] =1;

}

echo $content_link."<br>";

}

$i++;

}

if(@$_GET['stop'] =='stop'){

$_SESSION['check'] =0;

}

if(@$_SESSION['check'] ==1){

echo '<meta http-equiv="refresh" content="5; url=test.php">';

}

fclose($fp);

?>

2009年7月17日 星期五

NEW!!樹狀分類程式碼生產器 (網頁介面)

樹狀分類產生器


更新 : 新增網頁介面樹狀分類生產器,不用安裝PHP即可使用!!
更新 : 增加了帳號功能(提供紀錄功能,存入MYSQL),大家可以將自己的樹狀分類原始碼記錄下來,不過由於沒有密碼,請不要修改到別人的
TEST 帳號 : fqstory
請輸入 fqstory 然後按 read 即可知道

樹狀分類生產器 網頁介面

來用用看吧!!

===============源由===============
由於BLOG文章日益增加
但是GOOGLE blogger本身提供的"分類"
只能做大致上的分類
他只能提供一層的聯結
但是BLOG中的文章主題分類有很多
所以已經不夠使用,連自己都找不太到之前寫的文章
所以就上網找看看有沒有別人寫好的 "樹狀分類"
這樣才能夠快速找到所需要的文章

於是找阿找的...

終於在 finalevil's blog 發現了 "樹狀分類產生器"

他是用JAVA寫的基本上已經能滿足需求,而且能做到多層分類連結
(也應該支援大部分blog)

只是問題來了,如果有好多好多篇文章,每層每篇作連結都要加入好多語法
這樣實在很麻煩
雖然他finalevil's blog 裡面還有提供,自動產生語法的工具
但是發現還是不實用
第一、如果要新增加新的分層分類,之前打的都會不見
第二、如果日後要新增,那就要全部重來
所以最後決定自己寫一個程式碼產生器,方便自己使用

不過最後運行當然還是用他的 顆顆顆
至於最後呈現結果請看右邊的樹狀分類連結(目錄) 顆顆顆


============檔案輸入格式===============
t 為第一層樹狀分類 (可改)

c 為第二層樹狀分類 (可改)
p 為第三層樹狀分類 (可改)
| 為確定樹狀分類哪一層的分隔 (可改)
, 為分隔 "顯示樹狀分類名稱" ,"連結" , "註解" (可改)
; 為斷行,使程式讀取下一個分層 (可改)


==========最後呈現的格式如下==========
//這是此BLOG的目錄,結果如右邊最上方目錄
t|PHP先看,http://fq-story.blogspot.com/2009/05/php.html;
t|PHP基礎教學;
c|APACHE PHP MYSQL in WindowsXP 安裝教學,http://fq-story.blogspot.com/2009/05/phpini.html;
c|0.基本HTML語法,http://fq-story.blogspot.com/2009/05/html.html;
c|1.基本指令;
c|2.重複迴圈,http://fq-story.blogspot.com/2009/05/2.html;
c|3.判斷事件;
c|4.字串處理;
c|5.常用其他;
t|PHP實用文章;
c|0.PHP基礎須知;
p|0-a.PHP(簡介),http://fq-story.blogspot.com/2009/05/0-aphp.html;
p|0-b.PHP 安裝 (LINUX),http://fq-story.blogspot.com/2009/05/0-bphp-linux.html;
p|0-c.php.ini 配置詳細解說,http://fq-story.blogspot.com/2009/05/phpini_23.html;
c|1.PHP語法索引;
p|PHP函數語法索引,http://fq-story.blogspot.com/2009/07/php.html;
p|PHP MYSQL 函數語法與說明,http://fq-story.blogspot.com/2009/07/php-mysql.html;
c|2.PHP PLUG外掛;
p|Smarty;
t|PHP程序程式碼;
c|PHP資料處理相關;
p|HTML語法測試機;
p|利用php將ncbi的data存入自己的mysql中,http://fq-story.blogspot.com/2009/05/phpncbidatamysql.html;
p|樹狀分類程式碼產生器,http://fq-story.blogspot.com/2009/07/blog-post.html;
c|PHP與網路連線相關;
p|PHP CURL 發送 GET 和 POST 語法,http://fq-story.blogspot.com/2009/05/php-curl-get-post.html;
p|PHP 傳送GET使用fsockopen 取代CURL 取得回應,http://fq-story.blogspot.com/2009/05/php-getfsockopen-curl.html;
p|PHP 傳送POST使用fsockopen 取代CURL 取得回應,http://fq-story.blogspot.com/2009/05/php-postfsockopen-curl.html ;
p|PHP 自動更新進入yahoo 拍賣,http://fq-story.blogspot.com/2009/05/php-yahoo.html;
t|PHP Game;
c|RGP舊遊戲資料,http://fq-story.blogspot.com/2009/05/php-rpg-game.html;
p|index.php,http://fq-story.blogspot.com/2009/06/indexphp.html;
P|checkmap.php,http://fq-story.blogspot.com/2009/06/checkmapphp.html;
p|check.php,http://fq-story.blogspot.com/2009/06/checkphp.html;
p|charator.php,http://fq-story.blogspot.com/2009/06/charatorphp.html;
p|gmain.php,http://fq-story.blogspot.com/2009/05/gmainphp.html;
p|battling.php,http://fq-story.blogspot.com/2009/05/battlingphp.html;
p|battle.php,http://fq-story.blogspot.com/2009/05/battlephp.html;
c|GGAME;
t|C語言與C++;
c|C語言學習實錄,http://fq-story.blogspot.com/search/label/C%E8%AA%9E%E8%A8%80%E5%AD%B8%E7%BF%92%E5%AF%A6%E9%8C%84;
p|C語言學習實錄 起源,http://fq-story.blogspot.com/2009/07/c.html;
p|C語言學習實錄之一,http://fq-story.blogspot.com/2009/07/c_08.html;
p|C語言學習實錄之二,http://fq-story.blogspot.com/2009/07/c_09.html;
t|楓之谷,http://fq-story.blogspot.com/2009/06/blog-post.html;
t|BMP和JPEG圖檔格式
c|BMP 點陣圖(Bitmap)檔案格式,http://fq-story.blogspot.com/2009/06/bmp-bitmap.html;
c|JPG/JPEG 檔案格式,http://fq-story.blogspot.com/2009/06/jpgjpeg.html;
t|好用程式;
c|MSN將圖片畫出來,以手繪訊息送出去,http://fq-story.blogspot.com/search/label/MSN;



//ps 所以只要保留以上的格式,以後要增加或修改,都可以簡單使用
==========最後呈現的格式如上==========


這是兩層的 樹狀分類生產器 (java原程式碼 還是用finalevil的)
不過此php現在還沒有放到網路上,所以可能要在自己家弄弄瞜
以後會寫成比較完整方便的網頁
只用到:
t 為第一層樹狀分類 (可改)

c 為第二層樹狀分類 (可改)
ps 這是剛開始寫出來的,但發現兩層還是不夠用,所以下面又寫的一個三層的
所以註解就在下面"三層樹狀分類程式碼生產器"的地方寫

================================
兩層樹狀分類程式碼生產器,php程式碼開始
================================
<?php

$title = 't';

$content = 'c';


$star ='|';

$dis = ',';

$end = ';';

$string ='<p>

t|abc,cba;<br />

c|bbb,ccc;<br />

c|ccc,ddd;<br />

t|eee,fff;<br />

c|ccc,ddd;</p>';

$string = str_replace(" ", "",trim($string));

$string = str_replace("<p>", "",trim($string));

$string = str_replace("<br />", "",trim($string));

$string = str_replace("<br/>", "",trim($string));

$string = str_replace("<br>", "",trim($string));

echo $string;

$check = 1;

$string = explode($end,$string);

echo '<style>

ul.mktree li { list-style: none; }ul.mktree, ul.mktree ul , ul.mktree li { margin-left:10px; padding:0px; }ul.mktree li .bullet { padding-left: 15px; }ul.mktree li.liOpen .bullet { cursor: pointer; background: url(http://finalevillee.googlepages.com/minus.gif) center left no-repeat; }ul.mktree li.liClosed .bullet { cursor: pointer; background: url(http://finalevillee.googlepages.com/plus.gif) center left no-repeat; }ul.mktree li.liBullet .bullet { cursor: default; background: url(http://finalevillee.googlepages.com/bullet.gif) center left no-repeat; }ul.mktree li.liOpen ul { display: block; }ul.mktree li.liClosed ul { display: none; }ul.mktree li { font-size: 12pt; }ul.mktree li ul li { font-size: 10pt; }ul.mktree li ul li ul li { font-size: 8pt; }ul.mktree li ul li ul li ul li { font-size: 6pt; }</style>

<script src="http://finalevillee.googlepages.com/tree.js"></script>';

echo '<ul class="mktree">';

for($i=0;$i<count($string)-1;$i++){

$string[$i] = explode($star,$string[$i]);

$string[$i][0] = trim($string[$i][0]);

$string[$i][1] = explode($dis,$string[$i][1]);

if($string[$i][0] == $title and $check == 1){

$check =2;

echo '<li>';

echo '<a href="'.$string[$i][1][1].'">'.$string[$i][1][0].'</a>';

echo '<ul>';

}elseif($string[$i][0] == $content){

echo '<li><a href="'.$string[$i][1][1].'">'.$string[$i][1][0].'</a></li>';

}elseif($string[$i][0] == $title and $check != 1){

echo '</ul></li><li>';

echo '<a href="'.$string[$i][1][1].'">'.$string[$i][1][0].'</a>';

echo '<ul>';

}

}

echo '</ul></li></ul><script>convertTrees();</script>';

?>
//此程式沒測試過,請使用下面的(TEST OK)

================================
兩層樹狀分類程式碼生產器,php程式碼結束
================================


接下來是三層的樹狀分類程式碼生產器
"檔案輸入格式中" 都會用到



================================
三層樹狀分類程式碼生產器,php程式碼開始
================================


<?php

/*=====三層樹狀分類程式碼生產器,php程式碼=======*/

$string ='

t|PHP先看,http://fq-story.blogspot.com/2009/05/php.html;

t|PHP基礎教學;

c|APACHE PHP MYSQL in WindowsXP 安裝教學,http://fq-story.blogspot.com/2009/05/phpini.html;

c|0.基本HTML語法,http://fq-story.blogspot.com/2009/05/html.html;

c|1.基本指令;

c|2.重複迴圈,http://fq-story.blogspot.com/2009/05/2.html;

t|PHP實用文章;

c|0.PHP基礎須知;

p|0-a.PHP(簡介),http://fq-story.blogspot.com/2009/05/0-aphp.html;

p|0-b.PHP 安裝 (LINUX),http://fq-story.blogspot.com/2009/05/0-bphp-linux.html;

p|0-c.php.ini 配置詳細解說,http://fq-story.blogspot.com/2009/05/phpini_23.html;


';//將樹狀分類放上面

$string = str_replace(" ", "",trim($string)); //清除空白

$string = str_replace("<p>", "",trim($string)); //清除段落

$string = str_replace("<br />", "",trim($string)); //清除換行

$string = str_replace("<br/>", "",trim($string)); //清除換行

$string = str_replace("<br>", "",trim($string)); //清除換行

/*如果有需要請自行增加*/

$title = 't'; //第一層樹狀分類

$content = 'c'; //第二層樹狀分類

$ps = 'p'; //第三層樹狀分類

$star ='|'; //確定樹狀分類哪一層的分隔

$dis = ','; //為分隔 "顯示樹狀分類名稱" ,"連結" , "註解"

$end = ';'; //為斷行,使程式讀取下一個分層

echo $string;

$t= 1;

$c= 1;

$p= 1;

$string = explode($end,$string);

echo '<style>

ul.mktree li { list-style: none; }ul.mktree, ul.mktree ul , ul.mktree li { margin-left:10px; padding:0px; }ul.mktree li .bullet { padding-left: 15px; }ul.mktree li.liOpen .bullet { cursor: pointer; background: url(http://finalevillee.googlepages.com/minus.gif) center left no-repeat; }ul.mktree li.liClosed .bullet { cursor: pointer; background: url(http://finalevillee.googlepages.com/plus.gif) center left no-repeat; }ul.mktree li.liBullet .bullet { cursor: default; background: url(http://finalevillee.googlepages.com/bullet.gif) center left no-repeat; }ul.mktree li.liOpen ul { display: block; }ul.mktree li.liClosed ul { display: none; }ul.mktree li { font-size: 12pt; }ul.mktree li ul li { font-size: 10pt; }ul.mktree li ul li ul li { font-size: 8pt; }ul.mktree li ul li ul li ul li { font-size: 6pt; }</style>

<script src="http://finalevillee.googlepages.com/tree.js"></script>';

echo '<ul class="mktree">';

for($i=0;$i<count($string)-1;$i++){

$string[$i] = explode($star,$string[$i]);

$string[$i][0] = trim($string[$i][0]);

$string[$i][1] = explode($dis,$string[$i][1]);

if($string[$i][0] == $title and $t == 1){

$t =2;

echo '<li>';

echo '<a href="'.@$string[$i][1][1].'" title="'.@$string[$i][1][2].'">'.@$string[$i][1][0].'</a>';

}elseif($string[$i][0] == $content and $c ==1){

$c =2;

echo '<ul><li><a href="'.@$string[$i][1][1].'" title="'.@$string[$i][1][2].'">'.@$string[$i][1][0].'</a>';

}elseif($string[$i][0] == $content and $c ==2){

if($p ==1){

echo '</li><li><a href="'.@$string[$i][1][1].'" title="'.@$string[$i][1][2].'">'.@$string[$i][1][0].'</a>';

}elseif($p ==2){

$p =1;

echo '</ul></li><li><a href="'.@$string[$i][1][1].'" title="'.@$string[$i][1][2].'">'.@$string[$i][1][0].'</a>';

}

}elseif($string[$i][0] == $ps and $p ==1){

$p =2;

echo '<ul><li><a href="'.@$string[$i][1][1].'" title="'.@$string[$i][1][2].'">'.@$string[$i][1][0].'</a></li>';

}elseif($string[$i][0] == $ps and $p ==2){

echo '<li><a href="'.@$string[$i][1][1].'" title="'.@$string[$i][1][2].'">'.@$string[$i][1][0].'</a></li>';

}elseif($string[$i][0] == $title and $t == 2){

if($c ==2 and $p ==1){

$c =1;

echo '</li></ul><li>';

echo '<a href="'.@$string[$i][1][1].'" title="'.@$string[$i][1][2].'">'.$string[$i][1][0].'</a>';

}elseif($c ==2 and $p ==2){

$c =1;

$p =1;

echo '</ul></li></ul><li>';

echo '<a href="'.@$string[$i][1][1].'" title="'.@$string[$i][1][2].'">'.$string[$i][1][0].'</a>';

}elseif($c==1){

echo '</li><li>';

echo '<a href="'.@$string[$i][1][1].'" title="'.@$string[$i][1][2].'">'.$string[$i][1][0].'</a>';

}

}

}

echo '</ul></li></ul><script>convertTrees();</script>';

?>
==============================
三層樹狀分類程式碼生產器,php程式碼結束
==============================
如果覺得好用的話,歡迎分享!!


++不過好像只適用IE = =

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

2009年7月13日 星期一

搶先看!! 藥物設計 PHP讀取*.mol2藥物檔案,並且以3D結構圖形輸出

搶先看!! 藥物設計 PHP讀取*.mol2藥物檔案,並且以3D結構圖形輸出

這就是最近在研究的目標

最終目標就是用PHP寫出藥物設計DOCKING的程式出來

不過這個目標遠大

所以還是一步一步先來

首先第一個當然就是要讀取 LIGAND 和 PROTEIN 的檔案

並且能把3d圖形顯示出來

所以就先分析了一下普遍藥物LIGAND的檔案 *.mol2 檔

然後做出一些分析......

================待補齊==============

至於輸出結果為以下


寄件者 FQstory


寄件者 FQstory


Z軸為 以Z軸為不動 轉動XY平面

X軸為 以X軸為不動 轉動YZ平面

其他的就設定大小和出現位置

不過 當然 這是不能直接轉動的

因為他是PHP麻

他是以圖片輸出 然後顯示出來

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

<?php

function readligand($name){

$checkprint = 0;

$i = 1;

$fp = fopen($name,"r");

$atom ='';

while(!feof($fp)){

$read = fgets($fp);

if(trim($read) == '@<TRIPOS>ATOM'){

$checkprint = 1;

}elseif(trim($read) == '@<TRIPOS>BOND'){

$checkprint = 2;

$i =1;

}elseif($checkprint > 0){

$atoms ='';

$atom = explode(" ",$read);

for($j=0;$j<count($atom);$j++){ //去除多個空白只留一個

if($atom[$j] != ''){

$atoms = $atoms.' '.$atom[$j];

}

}



$atomr[$checkprint][$i] = explode(" ",$atoms);

if($checkprint == 1){

$atomr[$checkprint][$i][3] = $atomr[$checkprint][$i][3];

$atomr[$checkprint][$i][4] = $atomr[$checkprint][$i][4];

$atomr[$checkprint][$i][5] = $atomr[$checkprint][$i][4];

//$atomr[$checkprint][$i][5] = $atomr[$checkprint][$i][5]*50+400;

}

//echo chop($read)."<br>";

$i++;

}

}

fclose($fp);

return $atomr;

}



function change($x,$y,$z,$xp,$em,$move,$theta,$phi,$turny){

//$r = sqrt($x*$x+$y*$y+$z*$z);

$theta = $theta/180*3.14;

$phi = $phi/180*3.14;

//轉Z軸

$new['x'] = $x*cos($theta)-$y*sin($theta);

$new['y'] = $x*sin($theta)+$y*cos($theta);

$new['z'] = $z;

//轉X軸

$new['x'] = $new['x'];

$new['y'] = $new['y']*cos($phi)+$new['z']*sin($phi);

$new['z'] = $new['y']*sin($phi)+$new['z']*cos($phi);

//轉Y軸

$new['x'] = $new['x']*cos($turny)+$new['z']*sin($turny);

$new['y'] = $new['y'];

$new['z'] = $new['x']*sin($turny)-$new['z']*cos($turny);

$new['x'] = $new['x']*$em+$xp/$move;

$new['y'] = $new['y']*$em+$xp/$move;

//$new['z'] = $new['z']*$xp/$em+$xp/$move;

//$new['x'] = $x*$xp/$em+$xp/$move;

//$new['y'] = $y*$xp/$em+$xp/$move;

return $new;

}



if(@$_POST['show'] == "SHOW"){

$filename = $_POST['filename'];

$theta = $_POST['theta'];

$phi =$_POST['phi'];

$turny =$_POST['turny'];

$em = $_POST['em'];//LIGAND大小,越小越大

$move = $_POST['move'];//離邊界位置 , 預設2

$xp = $_POST['xp'];//圖檔邊長(正方)



// 1.建立新影像

$im = imagecreate($xp,$xp);

// 2. 定義白色顏色的 RGB (背景顏色)

$white = imagecolorallocate($im, 255, 255, 255);

// 3. 定義黑色的 RGB (線的顏色)

$black = imagecolorallocate($im, 0, 0, 0);

$atomr = readligand($filename);//atomsread

for($i =1;$i<=count($atomr[1]);$i++){

$x = $atomr[1][$i][3];

$y = $atomr[1][$i][4];

$z = $atomr[1][$i][5];

$f = $atomr[2][$i][2];//讀取BOND

$l = $atomr[2][$i][3];//讀取BOND

$x1 = $atomr[1][$f][3];

$y1 = $atomr[1][$f][4];

$z1 = $atomr[1][$f][5];

$x2 = $atomr[1][$l][3];

$y2 = $atomr[1][$l][4];

$z2 = $atomr[1][$l][5];

$new = change($x,$y,$z,$xp,$em,$move,$theta,$phi,$turny);//dot

$newf = change($x1,$y1,$z1,$xp,$em,$move,$theta,$phi,$turny);//bond

$newl = change($x2,$y2,$z2,$xp,$em,$move,$theta,$phi,$turny);

imageline($im, $newf['x'], $newf['y'], $newl['x'], $newl['y'], $black);// 4. 開始畫線

imagesetpixel ($im,$new['x'],$new['y'],$black);//畫點

}



// 5. 做成 png 圖檔並輸出

imagejpeg($im, "draw.jpg");

// 6. 完成後將圖檔毀滅

imagedestroy($im);

echo '<img src="draw.jpg" width="'.$xp.'" height="'.$xp.'" />';

}

?>



<form id="form1" name="form1" method="post" action="readligand.php">

<p>檔案名稱:

<input name="filename" type="text" id="filename" value="<?php echo @$_POST['filename'];?>" />

<input type="submit" name="show" id="show" value="SHOW" />

</p>

<p>Z軸:

<input name="theta" type="text" id="theta" value="<?php echo @$_POST['theta'];?>" />

</p>

<p>X軸:

<input name="phi" type="text" id="phi" value="<?php echo @$_POST['phi'];?>" />

</p>

<p>Y軸:

<input name="turny" type="text" id="turny" value="<?php echo @$_POST['turny'];?>" />

</p>

<p>LIGAND SIZE:

<input name="em" type="text" id="em" value="<?php echo @$_POST['em'];?>" />

</p>

<p>邊界:

<input name="move" type="text" id="move" value="<?php echo @$_POST['move'];?>" />

預設2,為圖中心</p>

<p>檔案邊界(像素):

<input name="xp" type="text" id="xp" value="400" />

</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

</form>

已輸出至 <a href="../draw.jpg">draw.jpg</a>


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

實際測試結果好像有點怪怪的
但又不知道哪邊怪怪的

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

2009年7月11日 星期六

t|PHP先看
t|PHP基礎教學
c|APACHE PHP MYSQL in WindowsXP 安裝教學
c|0.基本HTML語法
c|1.基本指令
c|2.重複迴圈
c|3.判斷事件
c|4.字串處理
c|5.常用其他
t|PHP實用文章
c|0.PHP基礎須知
p|0-a.PHP(簡介)
p|0-b.PHP 安裝 (LINUX)
p|0-c.php.ini 配置詳細解說
c|1.PHP語法索引
p|PHP函數語法索引,http://fq-story.blogspot.com/2009/07/php.html
p|PHP MYSQL 函數語法與說明,http://fq-story.blogspot.com/2009/07/php-mysql.html
c|2.PHP PLUG外掛
p|Smarty

t|PHP程序程式碼
c|PHP資料處理相關
p|HTML語法測試機
p|利用php將ncbi的data存入自己的mysql中
p|樹狀分類程式碼產生器,http://fq-story.blogspot.com/2009/07/blog-post.html
c|PHP與網路連線相關
p|PHP CURL 發送 GET 和 POST 語法
p|PHP 傳送GET使用fsockopen 取代CURL 取得回應
p|PHP 傳送POST使用fsockopen 取代CURL 取得回應
p|PHP 自動更新進入yahoo 拍賣
t|PHP Game
c|RGP舊遊戲資料
c|GGAME
t|C語言與C++
c|C語言學習實錄
p|C語言學習實錄 起源,http://fq-story.blogspot.com/2009/07/c.html
p|C語言學習實錄之一,http://fq-story.blogspot.com/2009/07/c_08.html
p|C語言學習實錄之二,http://fq-story.blogspot.com/2009/07/c_09.html
t|楓之谷,http://fq-story.blogspot.com/2009/06/blog-post.html

2009年7月10日 星期五

樹狀分類產程式碼生器

樹狀分類產生器

已經有網頁介面了
請網新的頁面看
===============源由===============
由於BLOG文章日益增加
但是GOOGLE blogger本身提供的"分類"
只能做大致上的分類
他只能提供一層的聯結
但是BLOG中的文章主題分類有很多
所以已經不夠使用,連自己都找不太到之前寫的文章
所以就上網找看看有沒有別人寫好的 "樹狀分類"
這樣才能夠快速找到所需要的文章
於是找阿找的...
終於在 finalevil's blog 發現了 "樹狀分類產生器"
他是用JAVA寫的基本上已經能滿足需求,而且能做到多層分類連結
(也應該支援大部分blog)
只是問題來了,如果有好多好多篇文章,每層每篇作連結都要加入好多語法
這樣實在很麻煩
雖然他finalevil's blog 裡面還有提供,自動產生語法的工具
但是發現還是不實用
第一、如果要新增加新的分層分類,之前打的都會不見
第二、如果日後要新增,那就要全部重來
所以最後決定自己寫一個程式碼產生器,方便自己使用
不過最後運行當然還是用他的 顆顆顆
至於最後呈現結果請看右邊的樹狀分類連結(目錄) 顆顆顆

============檔案輸入格式===============
t 為第一層樹狀分類 (可改)
c 為第二層樹狀分類 (可改)
p 為第三層樹狀分類 (可改)
| 為確定樹狀分類哪一層的分隔 (可改)
, 為分隔 "顯示樹狀分類名稱" ,"連結" , "註解" (可改)
; 為斷行,使程式讀取下一個分層 (可改)

==========最後呈現的格式如下==========
//這是此BLOG的目錄,結果如右邊最上方目錄

t|PHP先看,http://fq-story.blogspot.com/2009/05/php.html;
t|PHP基礎教學;
c|APACHE PHP MYSQL in WindowsXP 安裝教學,http://fq-story.blogspot.com/2009/05/phpini.html;
c|0.基本HTML語法,http://fq-story.blogspot.com/2009/05/html.html;
c|1.基本指令;
c|2.重複迴圈,http://fq-story.blogspot.com/2009/05/2.html;
c|3.判斷事件;
c|4.字串處理;
c|5.常用其他;
t|PHP實用文章;
c|0.PHP基礎須知;
p|0-a.PHP(簡介),http://fq-story.blogspot.com/2009/05/0-aphp.html;
p|0-b.PHP 安裝 (LINUX),http://fq-story.blogspot.com/2009/05/0-bphp-linux.html;
p|0-c.php.ini 配置詳細解說,http://fq-story.blogspot.com/2009/05/phpini_23.html;
c|1.PHP語法索引;
p|PHP函數語法索引,http://fq-story.blogspot.com/2009/07/php.html;
p|PHP MYSQL 函數語法與說明,http://fq-story.blogspot.com/2009/07/php-mysql.html;
c|2.PHP PLUG外掛;
p|Smarty;
t|PHP程序程式碼;
c|PHP資料處理相關;
p|HTML語法測試機;
p|利用php將ncbi的data存入自己的mysql中,http://fq-story.blogspot.com/2009/05/phpncbidatamysql.html;
p|樹狀分類程式碼產生器,http://fq-story.blogspot.com/2009/07/blog-post.html;
c|PHP與網路連線相關;
p|PHP CURL 發送 GET 和 POST 語法,http://fq-story.blogspot.com/2009/05/php-curl-get-post.html;
p|PHP 傳送GET使用fsockopen 取代CURL 取得回應,http://fq-story.blogspot.com/2009/05/php-getfsockopen-curl.html;
p|PHP 傳送POST使用fsockopen 取代CURL 取得回應,http://fq-story.blogspot.com/2009/05/php-postfsockopen-curl.html ;
p|PHP 自動更新進入yahoo 拍賣,http://fq-story.blogspot.com/2009/05/php-yahoo.html;
t|PHP Game;
c|RGP舊遊戲資料,http://fq-story.blogspot.com/2009/05/php-rpg-game.html;
p|index.php,http://fq-story.blogspot.com/2009/06/indexphp.html;
P|checkmap.php,http://fq-story.blogspot.com/2009/06/checkmapphp.html;
p|check.php,http://fq-story.blogspot.com/2009/06/checkphp.html;
p|charator.php,http://fq-story.blogspot.com/2009/06/charatorphp.html;
p|gmain.php,http://fq-story.blogspot.com/2009/05/gmainphp.html;
p|battling.php,http://fq-story.blogspot.com/2009/05/battlingphp.html;
p|battle.php,http://fq-story.blogspot.com/2009/05/battlephp.html;
c|GGAME;
t|C語言與C++;
c|C語言學習實錄,http://fq-story.blogspot.com/search/label/C%E8%AA%9E%E8%A8%80%E5%AD%B8%E7%BF%92%E5%AF%A6%E9%8C%84;
p|C語言學習實錄 起源,http://fq-story.blogspot.com/2009/07/c.html;
p|C語言學習實錄之一,http://fq-story.blogspot.com/2009/07/c_08.html;
p|C語言學習實錄之二,http://fq-story.blogspot.com/2009/07/c_09.html;
t|楓之谷,http://fq-story.blogspot.com/2009/06/blog-post.html;
t|BMP和JPEG圖檔格式
c|BMP 點陣圖(Bitmap)檔案格式,http://fq-story.blogspot.com/2009/06/bmp-bitmap.html;
c|JPG/JPEG 檔案格式,http://fq-story.blogspot.com/2009/06/jpgjpeg.html;
t|好用程式;
c|MSN將圖片畫出來,以手繪訊息送出去,http://fq-story.blogspot.com/search/label/MSN;

//ps 所以只要保留以上的格式,以後要增加或修改,都可以簡單使用
==========最後呈現的格式如上==========

這是兩層的 樹狀分類生產器 (java原程式碼 還是用finalevil的)
不過此php現在還沒有放到網路上,所以可能要在自己家弄弄瞜
以後會寫成比較完整方便的網頁
只用到:
t 為第一層樹狀分類 (可改)
c 為第二層樹狀分類 (可改)
ps 這是剛開始寫出來的,但發現兩層還是不夠用,所以下面又寫的一個三層的
所以註解就在下面"三層樹狀分類程式碼生產器"的地方寫
================================
兩層樹狀分類程式碼生產器,php程式碼開始
================================
<?php

$title = 't';

$content = 'c';


$star ='|';

$dis = ',';

$end = ';';

$string ='<p>

t|abc,cba;<br />

c|bbb,ccc;<br />

c|ccc,ddd;<br />

t|eee,fff;<br />

c|ccc,ddd;</p>';

$string = str_replace(" ", "",trim($string));

$string = str_replace("<p>", "",trim($string));

$string = str_replace("<br />", "",trim($string));

$string = str_replace("<br/>", "",trim($string));

$string = str_replace("<br>", "",trim($string));

echo $string;

$check = 1;

$string = explode($end,$string);

echo '<style>

ul.mktree li { list-style: none; }ul.mktree, ul.mktree ul , ul.mktree li { margin-left:10px; padding:0px; }ul.mktree li .bullet { padding-left: 15px; }ul.mktree li.liOpen .bullet { cursor: pointer; background: url(http://finalevillee.googlepages.com/minus.gif) center left no-repeat; }ul.mktree li.liClosed .bullet { cursor: pointer; background: url(http://finalevillee.googlepages.com/plus.gif) center left no-repeat; }ul.mktree li.liBullet .bullet { cursor: default; background: url(http://finalevillee.googlepages.com/bullet.gif) center left no-repeat; }ul.mktree li.liOpen ul { display: block; }ul.mktree li.liClosed ul { display: none; }ul.mktree li { font-size: 12pt; }ul.mktree li ul li { font-size: 10pt; }ul.mktree li ul li ul li { font-size: 8pt; }ul.mktree li ul li ul li ul li { font-size: 6pt; }</style>

<script src="http://finalevillee.googlepages.com/tree.js"></script>';

echo '<ul class="mktree">';

for($i=0;$i<count($string)-1;$i++){

$string[$i] = explode($star,$string[$i]);

$string[$i][0] = trim($string[$i][0]);

$string[$i][1] = explode($dis,$string[$i][1]);

if($string[$i][0] == $title and $check == 1){

$check =2;

echo '<li>';

echo '<a href="'.$string[$i][1][1].'">'.$string[$i][1][0].'</a>';

echo '<ul>';

}elseif($string[$i][0] == $content){

echo '<li><a href="'.$string[$i][1][1].'">'.$string[$i][1][0].'</a></li>';

}elseif($string[$i][0] == $title and $check != 1){

echo '</ul></li><li>';

echo '<a href="'.$string[$i][1][1].'">'.$string[$i][1][0].'</a>';

echo '<ul>';

}

}

echo '</ul></li></ul><script>convertTrees();</script>';

?>
//此程式沒測試過,請使用下面的(TEST OK)
================================
兩層樹狀分類程式碼生產器,php程式碼結束
================================

接下來是三層的樹狀分類程式碼生產器
"檔案輸入格式中" 都會用到

================================
三層樹狀分類程式碼生產器,php程式碼開始
================================

<?php

/*=====三層樹狀分類程式碼生產器,php程式碼=======*/

$string ='

t|PHP先看,http://fq-story.blogspot.com/2009/05/php.html;

t|PHP基礎教學;

c|APACHE PHP MYSQL in WindowsXP 安裝教學,http://fq-story.blogspot.com/2009/05/phpini.html;

c|0.基本HTML語法,http://fq-story.blogspot.com/2009/05/html.html;

c|1.基本指令;

c|2.重複迴圈,http://fq-story.blogspot.com/2009/05/2.html;

t|PHP實用文章;

c|0.PHP基礎須知;

p|0-a.PHP(簡介),http://fq-story.blogspot.com/2009/05/0-aphp.html;

p|0-b.PHP 安裝 (LINUX),http://fq-story.blogspot.com/2009/05/0-bphp-linux.html;

p|0-c.php.ini 配置詳細解說,http://fq-story.blogspot.com/2009/05/phpini_23.html;
';//將樹狀分類放上面

$string = str_replace(" ", "",trim($string)); //清除空白

$string = str_replace("<p>", "",trim($string)); //清除段落

$string = str_replace("<br />", "",trim($string)); //清除換行

$string = str_replace("<br/>", "",trim($string)); //清除換行

$string = str_replace("<br>", "",trim($string)); //清除換行

/*如果有需要請自行增加*/

$title = 't'; //第一層樹狀分類

$content = 'c'; //第二層樹狀分類

$ps = 'p'; //第三層樹狀分類

$star ='|'; //確定樹狀分類哪一層的分隔

$dis = ','; //為分隔 "顯示樹狀分類名稱" ,"連結" , "註解"

$end = ';'; //為斷行,使程式讀取下一個分層

echo $string;

$t= 1;

$c= 1;

$p= 1;

$string = explode($end,$string);

echo '<style>

ul.mktree li { list-style: none; }ul.mktree, ul.mktree ul , ul.mktree li { margin-left:10px; padding:0px; }ul.mktree li .bullet { padding-left: 15px; }ul.mktree li.liOpen .bullet { cursor: pointer; background: url(http://finalevillee.googlepages.com/minus.gif) center left no-repeat; }ul.mktree li.liClosed .bullet { cursor: pointer; background: url(http://finalevillee.googlepages.com/plus.gif) center left no-repeat; }ul.mktree li.liBullet .bullet { cursor: default; background: url(http://finalevillee.googlepages.com/bullet.gif) center left no-repeat; }ul.mktree li.liOpen ul { display: block; }ul.mktree li.liClosed ul { display: none; }ul.mktree li { font-size: 12pt; }ul.mktree li ul li { font-size: 10pt; }ul.mktree li ul li ul li { font-size: 8pt; }ul.mktree li ul li ul li ul li { font-size: 6pt; }</style>

<script src="http://finalevillee.googlepages.com/tree.js"></script>';

echo '<ul class="mktree">';

for($i=0;$i<count($string)-1;$i++){

$string[$i] = explode($star,$string[$i]);

$string[$i][0] = trim($string[$i][0]);

$string[$i][1] = explode($dis,$string[$i][1]);

if($string[$i][0] == $title and $t == 1){

$t =2;

echo '<li>';

echo '<a href="'.@$string[$i][1][1].'" title="'.@$string[$i][1][2].'">'.@$string[$i][1][0].'</a>';

}elseif($string[$i][0] == $content and $c ==1){

$c =2;

echo '<ul><li><a href="'.@$string[$i][1][1].'" title="'.@$string[$i][1][2].'">'.@$string[$i][1][0].'</a>';

}elseif($string[$i][0] == $content and $c ==2){

if($p ==1){

echo '</li><li><a href="'.@$string[$i][1][1].'" title="'.@$string[$i][1][2].'">'.@$string[$i][1][0].'</a>';

}elseif($p ==2){

$p =1;

echo '</ul></li><li><a href="'.@$string[$i][1][1].'" title="'.@$string[$i][1][2].'">'.@$string[$i][1][0].'</a>';

}

}elseif($string[$i][0] == $ps and $p ==1){

$p =2;

echo '<ul><li><a href="'.@$string[$i][1][1].'" title="'.@$string[$i][1][2].'">'.@$string[$i][1][0].'</a></li>';

}elseif($string[$i][0] == $ps and $p ==2){

echo '<li><a href="'.@$string[$i][1][1].'" title="'.@$string[$i][1][2].'">'.@$string[$i][1][0].'</a></li>';

}elseif($string[$i][0] == $title and $t == 2){

if($c ==2 and $p ==1){

$c =1;

echo '</li></ul><li>';

echo '<a href="'.@$string[$i][1][1].'" title="'.@$string[$i][1][2].'">'.$string[$i][1][0].'</a>';

}elseif($c ==2 and $p ==2){

$c =1;

$p =1;

echo '</ul></li></ul><li>';

echo '<a href="'.@$string[$i][1][1].'" title="'.@$string[$i][1][2].'">'.$string[$i][1][0].'</a>';

}elseif($c==1){

echo '</li><li>';

echo '<a href="'.@$string[$i][1][1].'" title="'.@$string[$i][1][2].'">'.$string[$i][1][0].'</a>';

}

}

}

echo '</ul></li></ul><script>convertTrees();</script>';

?>

==============================
三層樹狀分類程式碼生產器,php程式碼結束
==============================

2009年7月7日 星期二

PHP MYSQL 函數語法與說明

PHP MYSQL 函數語法與說明

PHP MySQL 數據庫函數庫
作者:DDVIP

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

本函數庫供存取 MySQL 數據庫。有關 MySQL 的細節,及下載 MySQL 數據庫,請到這個網址 http://www.mysql.com 。而網絡上也有許多提供處理 MySQL 的用戶界面程序,建議到 http://www.phpwizard.net/phpMyAdmin 下載 phpMyAdmin,可以使用瀏覽器操作及管理 MySQL。



mysql_affected_rows: 得到 MySQL 最後操作影響的列數目。
mysql_close: 關閉 MySQL 服務器連接。
mysql_connect: 打開 MySQL 服務器連接。
mysql_create_db: 建立一個 MySQL 新數據庫。
mysql_data_seek: 移動內部返回指針。
mysql_db_query: 送查詢字符串 (query) 到 MySQL 數據庫。
mysql_drop_db: 移除數據庫。
mysql_errno: 返回錯誤信息代碼。
mysql_error: 返回錯誤信息。
mysql_fetch_array: 返回數組資料。
mysql_fetch_field: 取得字段信息。
mysql_fetch_lengths: 返回單列各欄資料最大長度。
mysql_fetch_object: 返回類資料。
mysql_fetch_row: 返回單列的各字段。
mysql_field_name: 返回指定字段的名稱。
mysql_field_seek: 配置指針到返回值的某字段。
mysql_field_table: 獲得目前字段的資料表 (table) 名稱。
mysql_field_type: 獲得目前字段的類型。
mysql_field_flags: 獲得目前字段的標誌。
mysql_field_len: 獲得目前字段的長度。
mysql_free_result: 釋放返回佔用內存。
mysql_insert_id: 返回最後一次使用 INSERT 指令的 ID。
mysql_list_fields: 列出指定資料表的字段 (field)。
mysql_list_dbs: 列出 MySQL 服務器可用的數據庫 (database)。
mysql_list_tables: 列出指定數據庫的資料表 (table)。
mysql_num_fields: 取得返回字段的數目。
mysql_num_rows: 取得返回列的數目。
mysql_pconnect: 打開 MySQL 服務器持續連接。
mysql_query: 送出一個 query 字符串。
mysql_result: 取得查詢 (query) 的結果。
mysql_select_db: 選擇一個數據庫。
mysql_tablename: 取得資料表名稱。

詳細說明

mysql_affected_rows
得到 MySQL 最後操作影響的列數目。
語法: int mysql_affected_rows(int [link_identifier]);
返回值: 整數
函數種類: 數據庫功能
內容說明: 本函數可得到 MySQL 最後查詢操作 INSERT、UPDATE 或 DELETE 所影響的列 (row) 數目。若最後的查詢 (query) 是使用 DELETE 而且沒有使用 WHERE 命令,則會刪除全部資料,本函數將返回 0。若最後使用的是 SELECT,則用本函數不會得到預期的數目,因為要改變 MySQL 數據庫本函數才有效,欲得到 SELECT 返回的數目需使用 mysql_num_rows() 函數。

mysql_close
關閉 MySQL 服務器連接。
語法: int mysql_close(int [link_identifier]);
返回值: 整數
函數種類: 數據庫功能
內容說明: 本函數關閉與 MySQL 數據庫服務器的連接。若無指定參數 link_identifier 則會關閉最後的一筆連接。用 mysql_pconnect() 連接則無法使用本函數關閉。實際上本函數不是一定需要的,當 PHP 整頁程序結束後,將會自動關閉與數據庫的非永久性 (non-persistent) 連接。成功返回 true、失敗返回 false 值。
參考: mysql_connect() mysql_pconnect()

mysql_connect
打開 MySQL 服務器連接。
語法: int mysql_connect(string [hostname] [:port], string [username], string [password]);
返回值: 整數
函數種類: 數據庫功能
內容說明: 本函數建立與 MySQL 服務器的連接。其中所有的參數都可省略。當使用本函數卻不加任何參數時,參數 hostname 的默認值為 localhost、參數 username 的默認值為 PHP 執行行程的擁有者、參數 password 則為空字符串 (即沒有密碼)。而參數 hostname 後面可以加冒號與埠號,代表使用那個埠與 MySQL 連接。當然在使用數據庫時,早點使用 mysql_close() 將連接關掉可以節省資源。
使用範例
這是一位未具名網友提供的範例 (18-Feb-1999)
站長";
}
$row = mysql_fetch_row($res);
echo "未來您使用的號碼為: ".$row[0];
?>
參考: mysql_close() mysql_pconnect()

mysql_create_db
建立一個 MySQL 新數據庫。
語法: int mysql_create_db(string database name, int [link_identifier]);
返回值: 整數
函數種類: 數據庫功能
內容說明: 本函數用來建立新的數據庫 (database)。在建立前,必須先與服務器連接。
參考: mysql_drop_db()

mysql_data_seek
移動內部返回指針。
語法: int mysql_data_seek(int result_identifier, int row_number);
返回值: 整數
函數種類: 數據庫功能
內容說明: 本函數可移動內部返回的列指針到指定的 row_number 去。之後若使用 mysql_fetch_row() 可以返回新列的值。成功返回 true、失敗則返回 false。

mysql_db_query
送查詢字符串 (query) 到 MySQL 數據庫。
語法: int mysql_db_query(string database, string query, int [link_identifier]);
返回值: 整數
函數種類: 數據庫功能
內容說明: 本函數用來送出查詢字符串 (query) 到後端的 MySQL 數據庫中。而可省略的參數 link_identifier 若不存在,程序會自動尋找其它 mysql_connect() 連接後的連接代碼。發生錯誤時會返回 false,其它沒錯誤時則返回它的返回代碼。
參考: mysql_connect()

mysql_drop_db
移除數據庫。
語法: int mysql_drop_db(string database_name, int [link_identifier]);
返回值: 整數
函數種類: 數據庫功能
內容說明: 本函數移除已存在的數據庫。成功返回 true、失敗則返回 false。
參考: mysql_create_db()

mysql_errno
返回錯誤信息代碼。
語法: int mysql_errno(int [link_identifier]);
返回值: 整數
函數種類: 數據庫功能
內容說明: 本函數可以得到 MySQL 數據庫服務器的錯誤代碼。通常用在 PHP 網頁程序開發階段,作為 PHP 與 MySQL 的除錯用。
使用範例
";
mysql_select_db("nonexistentdb");
echo mysql_errno().": ".mysql_error()."
";
$conn = mysql_query("SELECT * FROM nonexistenttable");
echo mysql_errno().": ".mysql_error()."
";
?>
參考: mysql_error()

mysql_error
返回錯誤信息。
語法: string mysql_error(int [link_identifier]);
返回值: 字符串
函數種類: 數據庫功能
內容說明: 本函數可以得到 MySQL 數據庫服務器的錯誤信息。通常用在 PHP 網頁程序開發階段,與 mysql_errno() 一起作為PHP 與 MySQL 的除錯用。
參考: mysql_errno()

mysql_fetch_array
返回數組資料。
語法: array mysql_fetch_array(int result, int [result_typ]);
返回值: 數組
函數種類: 數據庫功能
內容說明: 本函數用來將查詢結果 result 拆到數組變量中。若 result 沒有資料,則返回 false 值。而本函數可以說是 mysql_fetch_row() 的加強函數,除可以將返回列及數字索引放入數組之外,還可以將文字索引放入數組中。若是好幾個返回字段都是相同的文字名稱,則最後一個置入的字段有效,解決方法是使用數字索引或者為這些同名的字段 (column) 取別名 (alias)。治募注意的是使用本函數的處理速度其實不會比 mysql_fetch_row() 函數慢,要用哪個函數還是看使用的需求決定。參數 result_typ 是一個常量值,有以下幾種常量 MYSQL_ASSOC、MYSQL_NUM 與 MYSQL_BOTH。
使用範例


mysql_fetch_field
取得字段信息。
語法: object mysql_fetch_field(int result, int [field_offset]);
返回值: 類
函數種類: 數據庫功能
內容說明: 本函數返回的類資料為 result 的字段 (Column) 信息。返回類的屬性如下:
name - 字段名稱
table - 字段所在表格的資料表名稱
max_length - 字段的最大長度
not_null - 若為 1 表示本字段不能是空的 (null)
primary_key - 若為 1 表示本字段是主要鍵 (primary key)
unique_key - 若為 1 表示本字段為不可重覆鍵 (unique key)
multiple_key - 若為 1 表示本字段為可重覆鍵 (non-unique key)
numeric - 若為 1 表示本字段為數字類型 (numeric)
blob - 若為 1 表示本字段為位類型 (BLOB)
type - 字段類型
unsigned - 若為 1 表示本字段為無記號 (unsigned)
zerofill - 若為 1 表示本字段為被零填滿 (zero-filled)
參考: mysql_field_seek()

mysql_fetch_lengths
返回單列各欄資料最大長度。
語法: array mysql_fetch_lengths(int result);
返回值: 數組
函數種類: 數據庫功能
內容說明: 本函數將 mysql_fetch_row() 處理過的最後一列資料的各字段資料最大長度放在數組變量之中。若執行失敗則返回 false 值。返回數組的第一筆資料索引值是 0。
參考: mysql_fetch_row()

mysql_fetch_object
返回類資料。
語法: object mysql_fetch_object(int result, int [result_typ]);
返回值: 類
函數種類: 數據庫功能
內容說明: 本函數用來將查詢結果 result 拆到類變量中。使用方法和 mysql_fetch_array() 幾乎相同,不同的地方在於本函數返回資料是類而不是數組。若 result 沒有資料,則返回 false 值。另外治募注意的地方是,取回的類資料的索引只能是文字而不能用數字,這是因為類的特性。類資料的特性中所有的屬性 (property) 名稱都不能是數字,因此只好乖乖使用文字字符串當索引了。參數 result_typ是一個常量值,有以下幾種常量 MYSQL_ASSOC、MYSQL_NUM 與 MYSQL_BOTH。關於速度方面,本函數的處理速度幾乎和 mysql_fetch_row() 及 mysql_fetch_array() 二函數差不多,要用哪個函數還是看使用的需求決定。
使用範例
下面的例子示範如使用返回的類。
user_id;
echo $row->fullname;
}
mysql_free_result($result);
?>
參考: mysql_fetch_array() mysql_fetch_row()

mysql_fetch_row
返回單列的各字段。
語法: array mysql_fetch_row(int result);
返回值: 數組
函數種類: 數據庫功能
內容說明: 本函數用來將查詢結果 result 之單列拆到數組變量中。數組的索引是數字索引,第一個的索引值是 0。若 result 沒有資料,則返回 false 值。
參考: mysql_fetch_array() mysql_fetch_object() mysql_data_seek() mysql_fetch_lengths() mysql_result()

mysql_field_name
返回指定字段的名稱。
語法: string mysql_field_name(int result, int field_index);
返回值: 字符串
函數種類: 數據庫功能
內容說明: 本函數用來取得指定字段的名稱。
使用範例
mysql_field_name($result,2);

mysql_field_seek
配置指針到返回治募某字段。
語法: int mysql_field_seek(int result, int field_offset);
返回值: 整數
函數種類: 數據庫功能
內容說明: 本函數配置目前的指針到返回治募特定字段中。
參考: mysql_fetch_field()

mysql_field_table
獲得目前字段的資料表 (table) 名稱。
語法: string mysql_field_table(int result, int field_offset);
返回值: 字符串
函數種類: 數據庫功能
內容說明: 本函數可以得到目前所在字段的資料表名。

mysql_field_type
獲得目前字段的類型。
語法: string mysql_field_type(int result, int field_offset);
返回值: 字符串
函數種類: 數據庫功能
內容說明: 本函數可以得到目前所在字段的類型格式。返回的字符串為字段的類型,包括了 int、real、string、blob....等等,詳見 MySQL 的相關文件中有關於類型的部份。
使用範例
";
echo "本資料表的字段如下
";
while ($i < $fields) { $type = mysql_field_type ($result, $i); $name = mysql_field_name ($result, $i); $len = mysql_field_len ($result, $i); $flags = mysql_field_flags ($result, $i); echo $type." ".$name." ".$len." ".$flags."
";
$i++;
}
mysql_close();
?>

mysql_field_flags
獲得目前字段的標誌。
語法: string mysql_field_flags(int result, int field_offset);
返回值: 字符串
函數種類: 數據庫功能
內容說明: 本函數可以得到目前所在字段的標誌。若一個字段有數種屬性標誌,則返回的標誌為這些屬性連起來的字符串,每個屬性都用空格隔開,可以使用 explode() 切開這些字符串。返回的標誌可能是:not_null、primary_key、unique_key、multiple_key、blob、unsigned、zerofill、binary、enum、auto_increment、timestamp。

mysql_field_len
獲得目前字段的長度。
語法: int mysql_field_len(int result, int field_offset);
返回值: 整數
函數種類: 數據庫功能
內容說明: 本函數可以得到目前所在字段的長度。

mysql_free_result
釋放返回佔用內存。
語法: boolean mysql_free_result(int result);
返回值: 布爾值
函數種類: 數據庫功能
內容說明: 本函數可以釋放目前 MySQL 數據庫 query 返回所佔用的內存。一般只有在非常擔心在內存的使用上可能會不足的情形下才會用本函數。PHP 程序會在結束時自動釋放。

mysql_insert_id
返回最後一次使用 INSERT 指令的 ID。
語法: int mysql_insert_id(int [link_identifier]);
返回值: 整數
函數種類: 數據庫功能
內容說明: 本函數可以得到最後一次使用 INSERT 到 MySQL 數據庫的執行 ID。sleibowitz@btcwcu.org (13-May-1999) 指出在 PHP 3.0.7 版用 REPLACE 也和使用 INSERT 一樣,可以使用本函數獲得 ID。

mysql_list_fields
列出指定資料表的字段 (field)。
語法: int mysql_list_fields(string database_name, string table_name, int [link_identifier]);
返回值: 整數
函數種類: 數據庫功能
內容說明: 本函數可以得到指定的資料表的所有字段。返回的字段信息可以供 mysql_field_flags()、mysql_field_len()、mysql_field_name() 及 mysql_field_type() 等函數使用。若有錯誤則返回 -1。

mysql_list_dbs
列出 MySQL 服務器可用的數據庫 (database)。
語法: int mysql_list_dbs(int [link_identifier]);
返回值: 整數
函數種類: 數據庫功能
內容說明: 本函數可以得到 MySQL 服務器的可用數據庫。

mysql_list_tables
列出指定數據庫的資料表 (table)。
語法: int mysql_list_tables(string database, int [link_identifier]);
返回值: 整數
函數種類: 數據庫功能
內容說明: 本函數可以得到指定數據庫中的所有資料表名稱。

mysql_num_fields
取得返回字段的數目。
語法: int mysql_num_fields(int result);
返回值: 整數
函數種類: 數據庫功能
內容說明: 本函數可以得到返回字段的數目。
參考: mysql_db_query() mysql_query() mysql_fetch_field() mysql_num_rows()

mysql_num_rows
取得返回列的數目。
語法: int mysql_num_rows(int result);
返回值: 整數
函數種類: 數據庫功能
內容說明: 本函數可以得到返回列的數目。
參考: mysql_db_query() mysql_query() mysql_fetch_row()

mysql_pconnect
打開 MySQL 服務器持續連接。
語法: int mysql_pconnect(string [hostname] [:port], string [username], string [password]);
返回值: 整數
函數種類: 數據庫功能
內容說明: 本函數和 mysql_connect() 雷同。不同的地方在於使用本函數打開數據庫時,程序會先尋找是否曾經執行過本函數,若執行過則返回先前執行的 ID。另一個不同的地方是本函數無法使用 mysql_close() 關閉數據庫。

mysql_query
送出一個 query 字符串。
語法: int mysql_query(string query, int [link_identifier]);
返回值: 整數
函數種類: 數據庫功能
內容說明: 本函數送出 query 字符串供 MySQL 做相關的處理或者執行。若沒有指定 link_identifier 參數,則程序會自動尋找最近打開的 ID。當 query 查詢字符串是 UPDATE、INSERT 及 DELETE 時,返回的可能是 true 或者 false;查詢的字符串是 SELECT 則返回新的 ID 值。joey@samaritan.com (09-Feb-1999) 指出,當返回 false 時,並不是執行成功但無返回值,而是查詢的字符串有錯誤。
參考: mysql_db_query() mysql_select_db() mysql_connect()

mysql_result
取得查詢 (query) 的結果。
語法: int mysql_result(int result, int row, mixed field);
返回值: 整數
函數種類: 數據庫功能
內容說明: 本函數取得一格 query 的結果。參數 field 可以是字段名稱、順序或者是 FieldName.TableName 的格式。在返回資料量少時,可以使用本函數來處理。當數據庫大時,本函數的效率就有待考量了,這時可以使用較有效率的 mysql_fetch_row()、mysql_fetch_array() 及 mysql_fetch_object() 等函數。

mysql_select_db
選擇一個數據庫。
語法: int mysql_select_db(string database_name, int [link_identifier]);
返回值: 整數
函數種類: 數據庫功能
內容說明: 本函數選擇 MySQL 服務器中的數據庫以供之後的資料查詢作業 (query) 處理。成功返回 true,失敗則返回 false。
參考: mysql_connect() mysql_pconnect() mysql_query()

mysql_tablename
取得資料表名稱。
語法: string mysql_tablename(int result, int i);
返回值: 字符串
函數種類: 數據庫功能
內容說明: 本函數可取得資料表名稱字符串,一般配合 mysql_list_tables() 函數使用,取得該函返回的數字的名稱字符串。
使用範例
";
$i++;
}
?>

如果覺得不錯的話,歡迎分享

2009年7月6日 星期一

PHP 函數索引

此篇是也是從網路上轉貼來的,可以當成工具

附錄 A PHP 函數索引


Abs: 取得絕對值。
Acos: 取得反餘弦值。
ada_afetch: 取得數據庫的返回列。
ada_autocommit: 開關自動改動功能。
ada_close: 關閉 Adabas D 鏈接。
ada_commit: 改動 Adabas D 數據庫。
ada_connect: 鏈接至 Adabas D 數據庫。
ada_exec: 執行 SQL 指令。
ada_fetchrow: 取得返回一列。
ada_fieldname: 取得字段名稱。
ada_fieldtype: 取得字段資料類型。
ada_freeresult: 釋出返回資料的內存。
ada_numfields: 取得字段數目。
ada_numrows: 取得返回列數目。
ada_result: 取得返回資料。
ada_resultall: 返回 HTML 表格資料。
ada_rollback: 撤消當前交易。
AddSlashes: 字符串加入斜線。
apache_lookup_uri: 獲得所有的 URI 相關信息。
apache_note: 獲得及配置apache服務器的請求紀錄。
array: 建立一個新的數組。
array_walk: 讓使用者自訂函數能處理數組中的每一個元素。
arsort: 將數組的值由大到小排序。
Asin: 取得反正弦值。
asort: 將數組的值由小到大排序。
aspell_check: 檢查一個單字。
aspell_check-raw: 檢查一個單字,即使拼錯也不改變或修正。
aspell_new: 載入一個新的字典。
aspell_suggest: 檢查一個單字,並提供拼寫建議。
Atan: 取得反正切值。
Atan2: 計算二數的反正切值。
base64_decode: 將 BASE64 編碼字符串解碼。
base64_encode: 將字符串以 BASE64 編碼。
basename: 返回不含路徑的文件字符串。
base_convert: 轉換數字的進位方式。
bcadd: 將二個高精確度數字相加。
bccomp: 比較二個高精確度數字。
bcdiv: 將二個高精確度數字相除。
bcmod: 取得高精確度數字的餘數。
bcmul: 將二個高精確度數字相乘。
bcpow: 求一高精確度數字次方值。
bcscale: 配置程序中所有 BC 函數庫的默認小數點位數。
bcsqrt: 求一高精確度數字的平方根。
bcsub: 將二個高精確度數字相減。
bin2hex: 二進位轉成十六進位。
BinDec: 二進位轉成十進位。
Ceil: 計算大於指定數的最小整數。
chdir: 改變目錄。
checkdate: 驗證日期的正確性。
checkdnsrr: 檢查指定網址的 DNS 記錄。
chgrp: 改變文件所屬的群組。
chmod: 改變文件的屬性。
Chop: 去除連續空白。
chown: 改變文件的擁有者。
Chr: 返回序數值的字符。
chunk_split: 將字符串分成小段。
clearstatcache: 清除文件狀態快取。
closedir: 關閉目錄 handle。
closelog: 關閉系統紀錄。
connection_aborted: 若鏈接中斷則返回 true。
connection_status: 取得連接狀態。
connection_timeout: 若超過 PHP 程序執行時間則返回 true。
convert_cyr_string: 轉換古斯拉夫字符串成其它字符串。
copy: 複製文件。
Cos: 餘弦計算。
count: 計算變量或數組中的元素個數。
crypt: 將字符串用 DES 編碼加密。
current: 返回數組中目前的元素。
date: 將服務器的時間格式化。
dbase_add_record: 加入資料到 dBase 資料表。
dbase_close: 關閉 dBase 資料表。
dbase_create: 建立 dBase 資料表。
dbase_delete_record: 刪除 dBase 資料表的資料。
dbase_get_record: 取得 dBase 資料表的資料。
dbase_numfields: 取得 dBase 資料表的字段數。
dbase_numrecords: 取得 dBase 資料表的列數。
dbase_open: 打開 dBase 資料表。
dbase_pack: 清理 dBase 資料表。
dba_close: 關閉數據庫。
dba_delete: 刪除指定資料。
dba_exists: 檢查鍵是否存在。
dba_fetch: 取回指定資料。
dba_firstkey: 取回首筆鍵值。
dba_insert: 加入資料。
dba_nextkey: 取回下筆鍵值。
dba_open: 打開數據庫鏈接。
dba_optimize: 最佳化數據庫。
dba_popen: 打開並保持數據庫鏈接。
dba_replace: 改動或加入資料。
dba_sync: 數據庫同步化。
dblist: 取得 DBM 的信息。
dbmclose: 關閉 DBM 數據庫。
dbmdelete: 刪除指定資料。
dbmexists: 檢查鍵是否存在。
dbmfetch: 取回指定資料。
dbmfirstkey: 取回首筆鍵名。
dbminsert: 加入資料。
dbmnextkey: 取回下筆鍵值。
dbmopen: 打開 DBM 數據庫鏈接。
dbmreplace: 改動或加入資料。
debugger_off: 關閉內建的 PHP 除錯器。
debugger_on: 使用內建的 PHP 除錯器。
DecBin: 十進位轉二進位。
DecHex: 十進位轉十六進位。
DecOct: 十進位轉八進位。
delete: 無用的項目。
die: 輸出信息並中斷 PHP 程序。
dir: 目錄類別類。
dirname: 取得路徑中的目錄名。
diskfreespace: 取得目錄所在的剩餘可用空間。
dl: 載入 PHP 擴充模塊。
doubleval: 變量轉成倍浮點數類型。
each: 返回數組中下一個元素的索引及值。
easter_date: 計算復活節日期。
easter_days: 計算復活節與三月廿一日之間日期數。
echo: 輸出字符串。
empty: 判斷變量是否已配置。
end: 將數組的內部指針指到最後的元素。
ereg: 字符串比對解析。
eregi: 字符串比對解析,與大小寫無關。
eregi_replace: 字符串比對解析並取代,與大小寫無關。
ereg_replace: 字符串比對解析並取代。
error_log: 送出一個錯誤信息。
error_reporting: 配置錯誤信息回報的等級。
escapeshellcmd: 除去字符串中的特殊符號。
eval: 將值代入字符串之中。
exec: 執行外部程序。
exit: 結束 PHP 程序。
Exp: 自然對數 e 的次方值。
explode: 切開字符串。
extract: 匯入數組到符號表。
fclose: 關閉已打開的文件。
FDF_close: 關閉 FDF 文件。
FDF_create: 建立新的 FDF 文件。
FDF_get_file: 取得 /F 鍵的值。
FDF_get_status: 取得 /STATUS 鍵的值。
FDF_get_value: 取得字段的值。
FDF_next_field_name: 下一字段的名稱。
FDF_open: 打開 FDF 文件。
FDF_save: 將 FDF 文件存文件。
FDF_set_ap: 配置顯示字段。
FDF_set_file: 配置 /F 鍵。
FDF_set_status: 配置 /STATUS 鍵。
FDF_set_value: 配置字段的值。
feof: 測試文件指針是否指到文件尾。
fgetc: 取得文件指針所指的字符。
fgetcsv: 取得文件指針所指行,並解析 CSV 字段。
fgets: 取得文件指針所指的行。
fgetss: 取得文件指針所指的行,並去掉 HTML 語言標記。
file: 將文件全部讀入數組變量中。
fileatime: 取得文件最後的存取時間。
filectime: 取得文件最後的改變時間。
filegroup: 取得文件所屬的群組。
fileinode: 取得文件的 inode 值。
filemtime: 取得文件最後的修改時間。
fileowner: 取得文件的擁有者。
fileperms: 取得文件的權限配置。
filepro: 讀取 FilePro Map 文件。
filepro_fieldcount: 取得字段數目。
filepro_fieldname: 取得字段名稱。
filepro_fieldtype: 取得字段類型。
filepro_fieldwidth: 取得字段寬度。
filepro_retrieve: 取得指定儲存格資料。
filepro_rowcount: 取得列數目。
filesize: 獲得文件的大小。
filetype: 獲得文件的類型。
file_exists: 檢查文件是否存在。
flock: 鎖住文件。
Floor: 計算小於指定數的最大整數。
flush: 清出輸出緩衝區。
fopen: 打開文件或者 URL。
fpassthru: 輸出所有剩餘資料。
fputs: 寫到文件指針。
fread: 位組的方式讀取文件。
FrenchToJD: 將法國共和曆法轉換成為凱撒日計數。
fseek: 移動文件指針。
fsockopen: 打開網絡的 Socket 鏈接。
ftell: 取得文件讀寫指針位置。
ftp_cdup: 回上層目錄。
ftp_chdir: 改變路徑。
ftp_connect: 打開 FTP 鏈接。
ftp_delete: 將文件刪除。
ftp_fget: 下載文件,並存在已開的文件中。
ftp_fput: 上傳已打開文件。
ftp_get: 下載文件。
ftp_login: 登入 FTP 服務器。
ftp_mdtm: 獲得指定文件的最後修改時間。
ftp_mkdir: 建新目錄。
ftp_nlist: 列出指定目錄中所有文件。
ftp_pasv: 切換主被動傳輸模式。
ftp_put: 上傳文件。
ftp_pwd: 取得目前所在路徑。
ftp_quit: 關閉 FTP 連接。
ftp_rawlist: 詳細列出指定目錄中所有文件。
ftp_rename: 將文件改名。
ftp_rmdir: 刪除目錄。
ftp_size: 獲得指定文件的大小。
ftp_systype: 顯示服務器系統。
function_exists: 檢查函數是否已定義。
fwrite: 二進位位方式寫入文件。
getallheaders: 獲得所有 HTTP 變量值。
getdate: 獲得時間及日期信息。
getenv: 取得系統的環境變量
gethostbyaddr: 返回機器名稱。
gethostbyname: 返回 IP 網址。
gethostbynamel: 返回機器名稱的所有 IP。
GetImageSize: 取得圖片的長寬。
getlastmod: 返回該網頁的最後修改時間。
getmxrr: 取得指定網址 DNS 記錄之 MX 字段。
getmyinode: 返回該網頁的 inode 值。
getmypid: 返回 PHP 的行程代號。
getmyuid: 返回 PHP 的使用者代碼。
getrandmax: 隨機數的最大值。
getrusage: 返回系統資源使用率。
gettimeofday: 取得目前時間。
gettype: 取得變量的類型。
get_cfg_var: 取得 PHP 的配置選項值。
get_current_user: 取得 PHP 行程的擁有者名稱。
get_magic_quotes_gpc: 取得 PHP 環境變量 magic_quotes_gpc 的值。
get_magic_quotes_runtime: 取得 PHP 環境變量 magic_quotes_runtime 的值。
get_meta_tags: 抽出文件所有 meta 標記的資料。
gmdate: 取得目前與 GMT 差後的時間。
gmmktime: 取得 UNIX 時間戳記的格林威治時間。
GregorianToJD: 將格裡高裡曆法轉換成為凱撒日計數。
gzclose: 關閉壓縮文件。
gzeof: 判斷是否在壓縮文件尾。
gzfile: 讀壓縮文件到數組中。
gzgetc: 讀壓縮文件中的字符。
gzgets: 讀壓縮文件中的字符串。
gzgetss: 讀壓縮文件中的字符串,並去掉 HTML 指令。
gzopen: 打開壓縮文件。
gzpassthru: 解壓縮指針後全部資料。
gzputs: 資料寫入壓縮文件。
gzread: 壓縮文件讀出指定長度字符串。
gzrewind: 重設壓縮文件指針。
gzseek: 設壓縮文件指針至指定處。
gztell: 取得壓縮文件指針處。
gzwrite: 資料寫入壓縮文件。
header: 送出 HTTP 協議的標頭到瀏覽器
HexDec: 十六進位轉十進位。
htmlentities: 將所有的字符都轉成 HTML 字符串。
htmlspecialchars: 將特殊字符轉成 HTML 格式。
hw_Children: 取得子類代碼。
hw_ChildrenObj: 取得子類的類記錄。
hw_Close: 關閉 Hyperwave 連接。
hw_Connect: 連上 Hyperwave 服務器。
hw_Cp: 複製類。
hw_Deleteobject: 刪除類。
hw_DocByAnchor: 取得指定錨的文件類代碼。
hw_DocByAnchorObj: 取得指定錨的文件類。
hw_DocumentAttributes: 取得指定文件類屬性。
hw_DocumentBodyTag: 取得指定文件類的文件主體標記。
hw_DocumentContent: 取得指定文件類的內容。
hw_DocumentSetContent: 重設指定文件類的內容。
hw_DocumentSize: 取得文件大小。
hw_EditText: 改動文字檔寧。
hw_Error: 取得錯誤代碼。
hw_ErrorMsg: 取得錯誤信息。
hw_Free_Document: 釋放文件使用的內存。
hw_GetAnchors: 取得文件的鏈接錨。
hw_GetAnchorsObj: 取得文件的鏈接錨記錄。
hw_GetAndLock: 取得並鎖住類。
hw_GetChildColl: 取得子類們的 ID。
hw_GetChildCollObj: 取得子類們的資料。
hw_GetChildDocColl: 取得全部子文件聚集。
hw_GetChildDocCollObj: 取得全部子文件聚集記錄。
hw_GetObject: 取得類。
hw_GetObjectByQuery: 搜尋類。
hw_GetObjectByQueryColl: 搜尋聚集類。
hw_GetObjectByQueryCollObj: 搜尋聚集類。
hw_GetObjectByQueryObj: 搜尋類。
hw_GetParents: 取得父類的 ID。
hw_GetParentsObj: 取得父類的資料。
hw_GetRemote: 取得遠端文件。
hw_GetRemoteChildren: 取得遠端的子文件。
hw_GetSrcByDestObj: 取得指定目的的文件內容。
hw_GetText: 取得純文字檔寧。
hw_GetUsername: 目前使用者名字。
hw_Identify: 使用者身份確認。
hw_InCollections: 檢查類聚集。
hw_Info: 連接信息。
hw_InsColl: 插入聚集。
hw_InsDoc: 插入文件。
hw_InsertDocument: 上傳文件。
hw_InsertObject: 插入類記錄。
hw_Modifyobject: 修改類記錄。
hw_Mv: 移動類。
hw_New_Document: 建立新文件。
hw_Objrec2Array: 類記錄轉為數組。
hw_OutputDocument: 輸出文件。
hw_pConnect: 連上 Hyperwave 服務器。
hw_PipeDocument: 取得文件。
hw_Root: 取得根類代碼。
hw_Unlock: 取消鎖定。
hw_Who: 列出目前使用者。
ibase_bind: 鏈接 PHP 變量到 InterBase 參數。
ibase_close: 關閉 InterBase 服務器連接。
ibase_connect: 打開 InterBase 服務器連接。
ibase_execute: 執行 SQL 的指令部分。
ibase_fetch_row: 返回單列的各字段。
ibase_free_query: 釋放查詢指令佔用內存。
ibase_free_result: 釋放返回佔用內存。
ibase_pconnect: 保持 InterBase 服務器連接。
ibase_prepare: 分析 SQL 語法。
ibase_query: 送出一個 query 字符串。
ibase_timefmt: 配置時間格式。
ifxus_close_slob: 刪除 slob 類。
ifxus_create_slob: 建立 slob 類。
ifxus_open_slob: 打開 slob 類。
ifxus_read_slob: 讀取指定數目的 slob 類。
ifxus_seek_slob: 配置目前文件或找尋位置。
ifxus_tell_slob: 返回目前文件或找尋位置。
ifxus_write_slob: 將字符串寫入 slob 類中。
ifx_affected_rows: 得到 Informix 最後操作影響的列數目。
ifx_blobinfile_mode: 配置長位類模式。
ifx_byteasvarchar: 配置位組模式默認值。
ifx_close: 關閉 Informix 服務器連接。
ifx_connect: 打開 Informix 服務器連接。
ifx_copy_blob: 複製長位類。
ifx_create_blob: 建立長位類。
ifx_create_char: 建立字符類。
ifx_do: 執行已準備 query 字符串。
ifx_error: 取得 Informix 最後的錯誤。
ifx_errormsg: 取得 Informix 最後錯誤信息。
ifx_fetch_row: 返回單列的各字段。
ifx_fieldproperties: 列出 Informix 的 SQL 字段屬性。
ifx_fieldtypes: 列出 Informix 的 SQL 字段。
ifx_free_blob: 刪除長位類。
ifx_free_char: 刪除字符類。
ifx_free_result: 釋放返回佔用內存。
ifx_free_slob: 刪除 slob 類。
ifx_getsqlca: 取得 query 後的 sqlca 信息。
ifx_get_blob: 取得長位類。
ifx_get_char: 取得字符類。
ifx_htmltbl_result: 將 query 返回資料轉成 HTML 表格。
ifx_nullformat: 配置空字符模式默認值。
ifx_num_fields: 取得返回字段的數目。
ifx_num_rows: 取得返回列的數目。
ifx_pconnect: 打開 Informix 服務器持續連接。
ifx_prepare: 準備 query 字符串。
ifx_query: 送出一個 query 字符串。
ifx_textasvarchar: 配置文字模式默認值。
ifx_update_blob: 更改長位類。
ifx_update_char: 更改字符類。
ignore_user_abort: 連接中斷後程序是否執行。
ImageArc: 畫弧線。
ImageChar: 寫出橫向字符。
ImageCharUp: 寫出直式字符。
ImageColorAllocate: 匹配顏色。
ImageColorAt: 取得圖中指定點顏色的索引值。
ImageColorClosest: 計算色表中與指定顏色最接近者。
ImageColorExact: 計算色表上指定顏色索引值。
ImageColorResolve: 計算色表上指定或最接近顏色的索引值。
ImageColorSet: 配置色表上指定索引的顏色。
ImageColorsForIndex: 取得色表上指定索引的顏色。
ImageColorsTotal: 計算圖的顏色數。
ImageColorTransparent: 指定透明背景色。
ImageCopyResized: 複製新圖並調整大小。
ImageCreate: 建立新圖。
ImageCreateFromGIF: 取出 GIF 圖型。
ImageCreateFromPNG: 取出 PNG 圖型。
ImageDashedLine: 繪虛線。
ImageDestroy: 結束圖形。
ImageFill: 圖形著色。
ImageFilledPolygon: 多邊形區域著色。
ImageFilledRectangle: 矩形區域著色。
ImageFillToBorder: 指定顏色區域內著色。
ImageFontHeight: 取得字型的高度。
ImageFontWidth: 取得字型的寬度。
ImageGIF: 建立 GIF 圖型。
ImageInterlace: 使用交錯式顯示與否。
ImageLine: 繪實線。
ImageLoadFont: 載入點陣字型。
ImagePNG: 建立 PNG 圖型。
ImagePolygon: 繪多邊形。
ImagePSBBox: 計算 PostScript 文字所佔區域。
ImagePSEncodeFont: PostScript 字型轉成向量字。
ImagePSFreeFont: 卸下 PostScript 字型。
ImagePSLoadFont: 載入 PostScript 字型。
ImagePSText: 寫 PostScript 文字到圖中。
ImageRectangle: 繪矩形。
ImageSetPixel: 繪點。
ImageString: 繪橫式字符串。
ImageStringUp: 繪直式字符串。
ImageSX: 取得圖片的寬度。
ImageSY: 取得圖片的高度。
ImageTTFBBox: 計算 TTF 文字所佔區域。
ImageTTFText: 寫 TTF 文字到圖中。
imap_8bit: 將八位轉成 qp 編碼。
imap_alerts: 所有的警告信息。
imap_append: 附加字符串到指定的郵箱中。
imap_base64: 解 BASE64 編碼。
imap_binary: 將八位轉成 base64 編碼。
imap_body: 讀信的內文。
imap_check: 返回郵箱信息。
imap_clearflag_full: 清除信件標誌。
imap_close: 關閉 IMAP 鏈接。
imap_createmailbox: 建立新的信箱。
imap_delete: 標記欲刪除郵件。
imap_deletemailbox: 刪除既有信箱。
imap_errors: 所有的錯誤信息。
imap_expunge: 刪除已標記的郵件。
imap_fetchbody: 從信件內文取出指定部分。
imap_fetchheader: 取得原始標頭。
imap_fetchstructure: 獲取某信件的結構信息。
imap_getmailboxes: 取得全部信件詳細信息。
imap_getsubscribed: 列出所有訂閱郵箱。
imap_header: 獲取某信件的標頭信息。
imap_headers: 獲取全部信件的標頭信息。
imap_last_error: 最後的錯誤信息。
imap_listmailbox: 獲取郵箱列示。
imap_listsubscribed: 獲取訂閱郵箱列示。
imap_mailboxmsginfo: 取得目前郵箱的信息。
imap_mail_copy: 複製指定信件到它處郵箱。
imap_mail_move: 移動指定信件到它處郵箱。
imap_msgno: 列出 UID 的連續信件。
imap_num_msg: 取得信件數。
imap_num_recent: 取得新進信件數。
imap_open: 打開 IMAP 鏈接。
imap_ping: 檢查 IMAP 是否連接。
imap_qprint: 將 qp 編碼轉成八位。
imap_renamemailbox: 更改郵箱名字。
imap_reopen: 重開 IMAP 鏈接。
imap_rfc822_parse_adrlist: 解析電子郵件位址。
imap_rfc822_write_address: 電子郵件位址標準化。
imap_scanmailbox: 尋找信件有無特定字符串。
imap_search: 搜尋指定標準的信件。
imap_setflag_full: 配置信件標誌。
imap_sort: 將信件標頭排序。
imap_status: 目前的狀態信息。
imap_subscribe: 訂閱郵箱。
imap_uid: 取得信件 UID。
imap_undelete: 取消刪除郵件標記。
imap_unsubscribe: 取消訂閱郵箱。
implode: 將數組變成字符串。
intval: 變量轉成整數類型。
iptcparse: 使用 IPTC 模塊解析位資料。
isset: 判斷變量是否已配置。
is_array: 判斷變量類型是否為數組類型。
is_dir: 測試文件是否為目錄。
is_double: 判斷變量類型是否為倍浮點數類型。
is_executable: 測試文件是否為可執行文件。
is_file: 測試文件是否為正常文件。
is_float: 判斷變量類型是否為浮點數類型。
is_int: 判斷變量類型是否為整數類型。
is_integer: 判斷變量類型是否為長整數類型。
is_link: 測試文件是否為鏈接文件。
is_long: 判斷變量類型是否為長整數類型。
is_object: 判斷變量類型是否為類類型。
is_readable: 測試文件是否可讀取。
is_real: 判斷變量類型是否為實數類型。
is_string: 判斷變量類型是否為字符串類型。
is_writeable: 測試文件是否可寫入。
JDDayOfWeek: 返回日期在周幾。
JDMonthName: 返回月份名。
JDToFrench: 將凱撒日計數轉換成為法國共和曆法。
JDToGregorian: 將凱撒日計數 (Julian Day Count) 轉換成為格裡高裡曆法 (Gregorian date)。
JDToJewish: 將凱撒日計數轉換成為猶太曆法。
JDToJulian: 將凱撒日計數轉換成為凱撒曆法。
JewishToJD: 將猶太曆法轉換成為凱撒日計數。
join: 將數組變成字符串。
JulianToJD: 將凱撒曆法轉換成為凱撒日計數。
key: 取得數組中的索引資料。
ksort: 將數組的元素依索引排序。
ldap_add: 增加 LDAP 名錄的條目。
ldap_bind: 繫住 LDAP 目錄。
ldap_close: 結束 LDAP 鏈接。
ldap_connect: 連上 LDAP 服務器。
ldap_count_entries: 搜尋結果的數目。
ldap_delete: 刪除指定資源。
ldap_dn2ufn: 將 dn 轉成易讀的名字。
ldap_explode_dn: 切開 dn 的字段。
ldap_first_attribute: 取得第一筆資源的屬性。
ldap_first_entry: 取得第一筆結果代號。
ldap_free_result: 釋放返回資料內存。
ldap_get_attributes: 取得返回資料的屬性。
ldap_get_dn: 取得 DN 值。
ldap_get_entries: 取得全部返回資料。
ldap_get_values: 取得全部返回值。
ldap_list: 列出簡表。
ldap_modify: 改變 LDAP 名錄的屬性。
ldap_mod_add: 增加 LDAP 名錄的屬性。
ldap_mod_del: 刪除 LDAP 名錄的屬性。
ldap_mod_replace: 新的 LDAP 名錄取代舊屬性。
ldap_next_attribute: 取得返回資料的下筆屬性。
ldap_next_entry: 取得下一筆結果代號。
ldap_read: 取得目前的資料屬性。
ldap_search: 列出樹狀簡表。
ldap_unbind: 結束 LDAP 鏈接。
leak: 洩出內存。
link: 建立硬式鏈接。
linkinfo: 取得鏈接信息。
list: 列出數組中元素的值。
Log: 自然對數值。
Log10: 10 基底的對數值。
lstat: 取得鏈接文件相關信息。
ltrim: 去除連續空白。
mail: 寄出電子郵件。
max: 取得最大值。
mcrypt_cbc: 使用 CBC 將資料加/解密。
mcrypt_cfb: 使用 CFB 將資料加/解密。
mcrypt_create_iv: 從隨機源將向量初始化。
mcrypt_ecb: 使用 ECB 將資料加/解密。
mcrypt_get_block_size: 取得編碼方式的區塊大小。
mcrypt_get_cipher_name: 取得編碼方式的名稱。
mcrypt_get_key_size: 取得編碼鑰匙大小。
mcrypt_ofb: 使用 OFB 將資料加/解密。
md5: 計算字符串的 MD5 哈稀。
mhash: 計算哈稀值。
mhash_count: 取得哈稀 ID 的最大值。
mhash_get_block_size: 取得哈稀方式的區塊大小。
mhash_get_hash_name: 取得哈稀演算法名稱。
microtime: 取得目前時間的 UNIX 時間戳記的百萬分之一秒值。
min: 取得最小值。
mkdir: 建立目錄。
mktime: 取得 UNIX 時間戳記。
msql: 送出 query 字符串。
msql_affected_rows: 得到 mSQL 最後操作影響的列數目。
msql_close: 關閉 mSQL 數據庫連接。
msql_connect: 打開 mSQL 數據庫連接。
msql_createdb: 建立一個新的 mSQL 數據庫。
msql_create_db: 建立一個新的 mSQL 數據庫。
msql_data_seek: 移動內部返回指針。
msql_dbname: 取得目前所在數據庫名稱。
msql_dropdb: 刪除指定的 mSQL 數據庫。
msql_drop_db: 刪除指定的 mSQL 數據庫。
msql_error: 取得最後錯誤信息。
msql_fetch_array: 返回數組資料。
msql_fetch_field: 取得字段信息。
msql_fetch_object: 返回類資料。
msql_fetch_row: 返回單列的各字段。
msql_fieldflags: 獲得字段的標誌。
msql_fieldlen: 獲得字段的長度。
msql_fieldname: 返回指定字段的名稱。
msql_fieldtable: 獲得字段的資料表 (table) 名稱。
msql_fieldtype: 獲得字段的類型。
msql_field_seek: 配置指針到返回值的某字段。
msql_freeresult: 釋放返回佔用內存。
msql_free_result: 釋放返回佔用內存。
msql_listdbs: 列出可用數據庫 (database)。
msql_listfields: 列出指定資料表的字段 (field)。
msql_listtables: 列出指定數據庫的資料表 (table)。
msql_list_dbs: 列出可用數據庫 (database)。
msql_list_fields: 列出指定資料表的字段 (field)。
msql_list_tables: 列出指定數據庫的資料表 (table)。
msql_numfields: 取得返回字段的數目。
msql_numrows: 取得返回列的數目。
msql_num_fields: 取得返回字段的數目。
msql_num_rows: 取得返回列的數目。
msql_pconnect: 打開 mSQL 服務器持續連接。
msql_query: 送出一個 query 字符串。
msql_regcase: 將字符串逐字返回大小寫字符。
msql_result: 取得查詢 (query) 的結果。
msql_selectdb: 選擇一個數據庫。
msql_select_db: 選擇一個數據庫。
msql_tablename: 返回指定資料表的名稱。
mssql_affected_rows: 取得最後 query 影響的列數。
mssql_close: 關閉與數據庫的連接。
mssql_connect: 連上數據庫。
mssql_data_seek: 移動列指針。
mssql_fetch_array: 返回數組資料。
mssql_fetch_field: 取得字段信息。
mssql_fetch_object: 返回類資料。
mssql_fetch_row: 返回單列的各字段。
mssql_field_seek: 配置指針到返回值的某字段。
mssql_free_result: 釋放返回佔用內存。
mssql_num_fields: 取得返回字段的數目。
mssql_num_rows: 取得返回列的數目。
mssql_pconnect: 打開 MS SQL 服務器持續連接。
mssql_query: 送出一個 query 字符串。
mssql_result: 取得查詢 (query) 的結果。
mssql_select_db: 選擇一個數據庫。
mt_getrandmax: 隨機數的最大值。
mt_rand: 取得隨機數值。
mt_srand: 配置隨機數種子。
mysql_affected_rows: 得到 MySQL 最後操作影響的列數目。
mysql_close: 關閉 MySQL 服務器連接。
mysql_connect: 打開 MySQL 服務器連接。
mysql_create_db: 建立一個 MySQL 新數據庫。
mysql_data_seek: 移動內部返回指針。
mysql_db_query: 送查詢字符串 (query) 到 MySQL 數據庫。
mysql_drop_db: 移除數據庫。
mysql_errno: 返回錯誤信息代碼。
mysql_error: 返回錯誤信息。
mysql_fetch_array: 返回數組資料。
mysql_fetch_field: 取得字段信息。
mysql_fetch_lengths: 返回單列各欄資料最大長度。
mysql_fetch_object: 返回類資料。
mysql_fetch_row: 返回單列的各字段。
mysql_field_flags: 獲得目前字段的標誌。
mysql_field_len: 獲得目前字段的長度。
mysql_field_name: 返回指定字段的名稱。
mysql_field_seek: 配置指針到返回值的某字段。
mysql_field_table: 獲得目前字段的資料表 (table) 名稱。
mysql_field_type: 獲得目前字段的類型。
mysql_free_result: 釋放返回佔用內存。
mysql_insert_id: 返回最後一次使用 INSERT 指令的 ID。
mysql_list_dbs: 列出 MySQL 服務器可用的數據庫 (database)。
mysql_list_fields: 列出指定資料表的字段 (field)。
mysql_list_tables: 列出指定數據庫的資料表 (table)。
mysql_num_fields: 取得返回字段的數目。
mysql_num_rows: 取得返回列的數目。
mysql_pconnect: 打開 MySQL 服務器持續連接。
mysql_query: 送出一個 query 字符串。
mysql_result: 取得查詢 (query) 的結果。
mysql_select_db: 選擇一個數據庫。
mysql_tablename: 取得資料表名稱。
next: 將數組的內部指針向後移動。
nl2br: 將換行字符轉成

number_format: 格式化數字字符串。
OCIBindByName: 讓動態 SQL 可使用 PHP 變量。
OCIColumnIsNULL: 測試返回行是否為空的。
OCIColumnSize: 取得字段類型的大小。
OCICommit: 將 Oracle 的交易處理付諸實行。
OCIDefineByName: 讓 SELECT 指令可使用 PHP 變量。
OCIExecute: 執行 Oracle 的指令部分。
OCIFetch: 取得返回資料的一列 (row)。
OCIFetchInto: 取回 Oracle 資料放入數組。
OCILogOff: 關閉與 Oracle 的鏈接。
OCILogon: 打開與 Oracle 的鏈接。
OCINewDescriptor: 初始新的 LOB/FILE 描述。
OCINumRows: 取得受影響字段的數目。
OCIParse: 分析 SQL 語法。
OCIResult: 從目前列 (row) 的資料取得一欄 (column)。
OCIRollback: 撤消當前交易。
OctDec: 八進位轉十進位。
odbc_autocommit: 開關自動改動功能。
odbc_binmode: 配置二進位資料處理方式。
odbc_close: 關閉 ODBC 鏈接。
odbc_close_all: 關閉所有 ODBC 鏈接。
odbc_commit: 改動 ODBC 數據庫。
odbc_connect: 鏈接至 ODBC 數據庫。
odbc_cursor: 取得游標名。
odbc_do: 執行 SQL 指令。
odbc_exec: 執行 SQL 指令。
odbc_execute: 執行預置 SQL 指令。
odbc_fetch_into: 取得返回的指定列。
odbc_fetch_row: 取得返回一列。
odbc_field_len: 取得字段資料長度。
odbc_field_name: 取得字段名稱。
odbc_field_type: 取得字段資料類型。
odbc_free_result: 釋出返回資料的內存。
odbc_longreadlen: 配置返回欄的最大值。
odbc_num_fields: 取得字段數目。
odbc_num_rows: 取得返回列數目。
odbc_pconnect: 長期鏈接至 ODBC 數據庫。
odbc_prepare: 預置 SQL 指令。
odbc_result: 取得返回資料。
odbc_result_all: 返回 HTML 表格資料。
odbc_rollback: 撤消當前交易。
odbc_setoption: 調整 ODBC 配置。
opendir: 打開目錄 handle。
openlog: 打開系統紀錄。
Ora_Bind: 鏈接 PHP 變量到 Oracle 參數。
Ora_Close: 關閉一個 Oracle 的 cursor。
Ora_ColumnName: 得到 Oracle 返回列 (Column) 的名稱。
Ora_ColumnSize: 取得字段類型的大小。
Ora_ColumnType: 得到 Oracle 返回列 (Column) 的類型。
Ora_Commit: 將 Oracle 的交易處理付諸實行。
Ora_CommitOff: 關閉自動執行 Oracle 交易改動的功能。
Ora_CommitOn: 打開自動執行 Oracle 交易改動的功能。
Ora_Do: 快速的 SQL 查詢。
Ora_Error: 獲得 Oracle 錯誤信息。
Ora_ErrorCode: 獲得 Oracle 錯誤代碼。
Ora_Exec: 執行 Oracle 的指令部分。
Ora_Fetch: 取得返回資料的一列 (row)。
Ora_FetchInto: 取回 Oracle 資料放入數組。
Ora_GetColumn: 從返回列 (row) 的資料取得一欄 (column)。
Ora_Logoff: 結束與 Oracle 的鏈接。
Ora_Logon: 打開與 Oracle 的鏈接。
Ora_Numcols: 取得字段的數目。
Ora_Open: 打開 Oracle 的 cursor。
Ora_Parse: 分析 SQL 語法。
Ora_PLogon: 打開與 Oracle 的長期鏈接。
Ora_Rollback: 撤消當前交易。
Ord: 返回字符的序數值。
pack: 壓縮資料到位字符串之中。
parse_str: 解析 query 字符串成變量。
parse_url: 解析 URL 字符串。
passthru: 執行外部程序並不加處理輸出資料。
pclose: 關閉文件。
PDF_add_annotation: 加入註釋。
PDF_add_outline: 目前頁面加入書籤。
PDF_arc: 繪弧。
PDF_begin_page: 啟始 PDF 文件頁面。
PDF_circle: 繪圓。
PDF_clip: 組合所有向量。
PDF_close: 關閉 PDF 文件。
PDF_closepath: 形成封閉的向量形狀。
PDF_closepath_fill_stroke: 形成封閉的向量形狀沿向量繪線並填滿。
PDF_closepath_stroke: 形成封閉的向量形狀並沿向量繪線。
PDF_close_image: 關閉圖文件。
PDF_continue_text: 輸出文字。
PDF_curveto: 繪貝氏曲線。
PDF_endpath: 關閉目前向量。
PDF_end_page: 關閉 PDF 文件頁面。
PDF_execute_image: 放置 PDF 文件中圖片到指定位置。
PDF_fill: 填滿目前的向量。
PDF_fill_stroke: 填滿目前的向量並沿向量繪線。
PDF_get_info: 返回文件信息。
PDF_lineto: 繪直線。
PDF_moveto: 配置處理的坐標點。
PDF_open: 建立新的 PDF 文件。
PDF_open_gif: 打開 GIF 圖文件。
PDF_open_jpeg: 打開 JPEG 圖文件。
PDF_open_memory_image: 打開內存圖文件。
PDF_place_image: 放置圖片到 PDF 文件指定位置。
PDF_put_image: 放置圖片到 PDF 文件。
PDF_rect: 繪長方形。
PDF_restore: 還原環境變量。
PDF_rotate: 旋轉類。
PDF_save: 儲存環境變量。
PDF_scale: 縮放類。
PDF_setdash: 配置虛線樣式。
PDF_setflat: 配置平滑值。
PDF_setgray: 指定繪圖的顏色為灰階並填入。
PDF_setgray_fill: 指定填入的顏色為灰階。
PDF_setgray_stroke: 指定繪圖的顏色為灰階。
PDF_setlinecap: 配置 linecap 參數。
PDF_setlinejoin: 配置連接參數。
PDF_setlinewidth: 配置線寬。
PDF_setmiterlimit: 配置斜邊界限。
PDF_setrgbcolor: 指定繪圖的顏色為彩色並填入。
PDF_setrgbcolor_fill: 指定填入的顏色為彩色。
PDF_setrgbcolor_stroke: 指定繪圖的顏色為彩色。
PDF_set_char_spacing: 配置字符間距。
PDF_set_duration: 配置二頁的切換時間。
PDF_set_font: 配置使用的字型及大小。
PDF_set_horiz_scaling: 配置文字水平間距。
PDF_set_info_author: 配置文件作者。
PDF_set_info_creator: 配置建文件者字符串。
PDF_set_info_keywords: 配置文件的關鍵字。
PDF_set_info_subject: 配置文件主題。
PDF_set_info_title: 配置文件標題。
PDF_set_leading: 配置行距。
PDF_set_text_matrix: 配置文字矩陣。
PDF_set_text_pos: 配置文字位置。
PDF_set_text_rendering: 配置文字表現方式。
PDF_set_text_rise: 配置文字高度。
PDF_set_transition: 配置頁的轉換。
PDF_set_word_spacing: 配置字間距。
PDF_show: 輸出字符串到 PDF 文件。
PDF_show_xy: 輸出字符串到指定坐標。
PDF_stringwidth: 計算字符串的寬度。
PDF_stroke: 沿向量繪線。
PDF_translate: 移動原點。
pfsockopen: 打開網絡的 Socket 持續鏈接。
pg_Close: 關閉 PostgreSQL 服務器連接。
pg_cmdTuples: 取得被 SQL 指令影響的資料筆數。
pg_Connect: 打開 PostgreSQL 服務器連接。
pg_DBname: 取得目前的數據庫名稱。
pg_ErrorMessage: 返回錯誤信息。
pg_Exec: 執行 query 指令。
pg_Fetch_Array: 返回數組資料。
pg_Fetch_Object: 返回類資料。
pg_Fetch_Row: 返回單列的各字段。
pg_FieldIsNull: 檢查字段是否有資料。
pg_FieldName: 返回指定字段的名稱。
pg_FieldNum: 取得指定字段的行數。
pg_FieldPrtLen: 計算可列示的長度。
pg_FieldSize: 計算指定字段的長度。
pg_FieldType: 獲得目前字段的類型。
pg_FreeResult: 釋放返回佔用內存。
pg_GetLastOid: 取得最後的類代碼。
pg_Host: 取得連接機器名稱。
pg_loclose: 關閉大型類。
pg_locreate: 建立大型類。
pg_loopen: 打開大型類。
pg_loread: 讀取大型類。
pg_loreadall: 讀取大型類並輸出。
pg_lounlink: 刪除大型類。
pg_lowrite: 讀取大型類。
pg_NumFields: 取得返回字段的數目。
pg_NumRows: 取得返回列的數目。
pg_Options: 取得連接機器選項。
pg_pConnect: 打開 PostgreSQL 服務器持續連接。
pg_Port: 取得連接機器埠號。
pg_Result: 取得查詢 (query) 的結果。
pg_tty: 取得連接機器終端機。
phpinfo: 返回 PHP 所有相關信息。
phpversion: 返回 PHP 版本信息。
pi: 圓周率。
popen: 打開文件。
pos: 返回數組目前的元素。
pow: 次方。
preg_match: 字符串比對解析。
preg_match_all: 字符串整體比對解析。
preg_replace: 字符串比對解析並取代。
preg_split: 將字符串依指定的規則切開。
prev: 將數組的內部指針往前移動。
print: 輸出字符串。
printf: 輸出格式化字符串。
putenv: 配置系統環境變量。
quoted_printable_decode: 將 qp 編碼字符串轉成 8 位字符串。
QuoteMeta: 加入引用符號。
rand: 取得隨機數值。
range: 建立一個整數範圍的數組。
rawurldecode: 從 URL 專用格式字符串還原成普通字符串。
rawurlencode: 將字符串編碼成 URL 專用格式。
readdir: 讀取目錄 handle。
readfile: 輸出文件。
readgzfile: 讀出壓縮文件。
readlink: 返回符號鏈接 (symbolic link) 目標文件。
recode_file: 記錄文件或文件請求到記錄中。
recode_string: 記錄字符串到記錄中。
register_shutdown_function: 定義 PHP 程序執行完成後執行的函數。
rename: 更改文件名。
reset: 將數組的指針指到數組第一個元素。
rewind: 重置開文件的讀寫位置指針。
rewinddir: 重設目錄 handle。
rmdir: 刪除目錄。
round: 四捨五入。
rsort: 將數組的值由大到小排序。
sem_acquire: 捕獲信號。
sem_get: 取得信號代碼。
sem_release: 釋出信號。
serialize: 儲存資料到系統中。
session_decode: Session 資料解碼。
session_destroy: 結束 session。
session_encode: Session 資料編碼。
session_id: 存取目前 session 代號。
session_is_registered: 檢查變量是否註冊。
session_module_name: 存取目前 session 模塊。
session_name: 存取目前 session 名稱。
session_register: 註冊新的變量。
session_save_path: 存取目前 session 路徑。
session_start: 初始 session。
session_unregister: 刪除已註冊變量。
setcookie: 送出 Cookie 信息到瀏覽器。
setlocale: 配置地域化信息。
settype: 配置變量類型。
set_file_buffer: 配置文件緩衝區大小。
set_magic_quotes_runtime: 配置 magic_quotes_runtime 值。
set_socket_blocking: 切換擱置與無擱置模式。
set_time_limit: 配置該頁最久執行時間。
shm_attach: 打開建立共享內存空間。
shm_detach: 中止共享內存空間鏈接。
shm_get_var: 取得內存空間中指定的變量。
shm_put_var: 加入或更新內存空間中的變量。
shm_remove: 清除內存空間。
shm_remove_var: 刪除內存空間中指定的變量。
shuffle: 將數組的順序弄混。
similar_text: 計算字符串相似度。
Sin: 正弦計算。
sizeof: 獲知數組的大小。
sleep: 暫停執行。
snmpget: 取得指定類識別碼。
snmpwalk: 取得所有類。
snmpwalkoid: 取得網絡本體樹狀信息。
snmp_get_quick_print: 取得 UCD 函數庫中的 quick_print 值。
snmp_set_quick_print: 配置 UCD 函數庫中的 quick_print 值。
solid_close: 關閉 solid 鏈接。
solid_connect: 鏈接至 solid 數據庫。
solid_exec: 執行 SQL 指令。
solid_fetchrow: 取得返回一列。
solid_fieldname: 取得字段名稱。
solid_fieldnum: 取得字段數目。
solid_freeresult: 釋出返回資料的內存。
solid_numfields: 取得字段數目。
solid_numrows: 取得返回列數目。
solid_result: 取得返回資料。
sort: 將數組排序。
soundex: 計算字符串的讀音值
split: 將字符串依指定的規則切開。
sprintf: 將字符串格式化。
sql_regcase: 將字符串逐字返回大小寫字符。
Sqrt: 開平方根。
srand: 配置隨機數種子。
stat: 取得文件相關信息。
strchr: 尋找第一個出現的字符。
strcmp: 字符串比較。
strcspn: 不同字符串的長度。
strftime: 將服務器的時間本地格式化。
StripSlashes: 去掉反斜線字符。
strip_tags: 去掉 HTML 及 PHP 的標記。
strlen: 取得字符串長度。
strpos: 尋找字符串中某字符最先出現處。
strrchr: 取得某字符最後出現處起的字符串。
strrev: 顛倒字符串。
strrpos: 尋找字符串中某字符最後出現處。
strspn: 找出某字符串落在另一字符串遮罩的數目。
strstr: 返回字符串中某字符串開始處至結束的字符串。
strtok: 切開字符串。
strtolower: 字符串全轉為小寫。
strtoupper: 字符串全轉為大寫。
strtr: 轉換某些字符。
strval: 將變量轉成字符串類型。
str_replace: 字符串取代。
substr: 取部份字符串。
sybase_affected_rows: 取得最後 query 影響的列數。
sybase_close: 關閉與數據庫的連接。
sybase_connect: 連上數據庫。
sybase_data_seek: 移動列指針。
sybase_fetch_array: 返回數組資料。
sybase_fetch_field: 取得字段信息。
sybase_fetch_object: 返回類資料。
sybase_fetch_row: 返回單列的各字段。
sybase_field_seek: 配置指針到返回值的某字段。
sybase_free_result: 釋放返回佔用內存。
sybase_num_fields: 取得返回字段的數目。
sybase_num_rows: 取得返回列的數目。
sybase_pconnect: 打開服務器持續連接。
sybase_query: 送出一個 query 字符串。
sybase_result: 取得查詢 (query) 的結果。
sybase_select_db: 選擇一個數據庫。
symlink: 建立符號鏈接 (symbolic link)。
syslog: 紀錄至系統紀錄。
system: 執行外部程序並顯示輸出資料。
Tan: 正切計算。
tempnam: 建立只一的臨時文件。
time: 取得目前時間的 UNIX 時間戳記。
touch: 配置最後修改時間。
trim: 截去字符串首尾的空格。
uasort: 將數組依使用者自定的函數排序。
ucfirst: 將字符串第一個字符改大寫。
ucwords: 將字符串每個字第一個字母改大寫。
uksort: 將數組的索引依使用者自定的函數排序。
umask: 改變目前的文件屬性遮罩 umask。
uniqid: 產生只一的值。
unlink: 刪除文件。
unpack: 解壓縮位字符串資料。
unserialize: 取出系統資料。
unset: 刪除變量。
urldecode: 還原 URL 編碼字符串。
urlencode: 將字符串以 URL 編碼。
usleep: 暫停執行。
usort: 將數組的值依使用者自定的函數排序。
utf8_decode: 將 UTF-8 碼轉成 ISO-8859-1 碼。
utf8_encode: 將 ISO-8859-1 碼轉成 UTF-8 碼。
virtual: 完成apache服務器的子請求 (sub-request)。
vm_addalias: 加入新別名。
vm_adduser: 加入新使用者。
vm_delalias: 刪除別名。
vm_deluser: 刪除使用者。
vm_passwd: 改變使用者密碼。
wddx_add_vars: 將 WDDX 封包連續化。
wddx_deserialize: 將 WDDX 封包解連續化。
wddx_packet_end: 結束的 WDDX 封包。
wddx_packet_start: 開始新的 WDDX 封包。
wddx_serialize_value: 將單一值連續化。
wddx_serialize_vars: 將多值連續化。
xml_error_string: 取得 XML 錯誤字符串。
xml_get_current_byte_index: 取得目前解析為第幾個位組。
xml_get_current_column_number: 獲知目前解析的第幾字段。
xml_get_current_line_number: 取得目前解析的行號。
xml_get_error_code: 取得 XML 錯誤碼。
xml_parse: 解析 XML 文件。
xml_parser_create: 初始 XML 解析器。
xml_parser_free: 釋放解析佔用的內存。
xml_parser_get_option: 取得解析使用的選項。
xml_parser_set_option: 配置解析使用的選項。
xml_set_character_data_handler: 建立字符資料標頭。
xml_set_default_handler: 建立默認標頭。
xml_set_element_handler: 配置元素的標頭。
xml_set_external_entity_ref_handler: 配置外部實體參引的標頭。
xml_set_notation_decl_handler: 配置記法宣告的標頭。
xml_set_object: 使 XML 解析器用類。
xml_set_processing_instruction_handler: 建立處理指令標頭。
xml_set_unparsed_entity_decl_handler: 配置未解析實體宣告的標頭。
yp_errno: 取得先前 YP 操作的錯誤碼。
yp_err_string: 取得先前 YP 操作的錯誤字符串。
yp_first: 返回 map 上第一筆符合的資料。
yp_get_default_domain: 取得機器的 Domain。
yp_master: 取得 NIS 的 Master。
yp_match: 取得指定資料。
yp_next: 指定 map 的下筆資料。
yp_order: 返回 map 的序數。

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