⑴ php入門基礎教程
PHP入門基礎教程大全
PHP於1994年由Rasmus Lerdorf創建,剛剛開始是Rasmus Lerdorf為了要維護個人網頁而製作的一個簡單的用Perl語言編寫的程序。這些工具程序用來顯示 Rasmus Lerdorf 的個人履歷,以及統計網頁流量。後來又用C語言重新編寫,包括可以訪問資料庫。他將這些程序和一些表單直譯器整合起來,稱為 PHP/FI。PHP/FI 可以和資料庫連接,產生簡單的動態網頁程序。為幫助大家入門學習php,我為大家分享PHP入門知識教程如下:
1、嵌入方法:
類似ASP的<%,PHP可以是<?php或者是<?,結束符號是?>,當然您也可以自己指定。
2、引用文件:
引用文件的方法有兩種:require 及 include。
require 的使用方法如 require("MyRequireFile.php"); 。這個函數通常放在 PHP 程序的最前面,PHP 程序在執行前,就會先讀入 require 所指定引入的文件,使它變成 PHP 程序網頁的一部份。常用的函數,亦可以這個方法將它引入網頁中。
include 使用方法如 include("MyIncludeFile.php"); 。這個函數一般是放在流程式控制制的處理部分中。PHP 程序網頁在讀到 include 的文件時,才將它讀進來。這種方式,可以把程序執行時的流程簡單化。
3、注釋方法:
<?php
echo "這是第一種例子。 " ; // 本例是 C++ 語法的注釋 (PHP的注釋跟C差不多!)
/* 本例採用多行的
注釋方式 */
echo "這是第二種例子。 " ;
echo "這是第三種例子。 " ; # 本例使用 UNIX Shell 語法注釋
?>
4、變數類型:
$mystring = "我是字元串" ;
$NewLine = "換行了 " ;
$int1 = 38 ;
$float1 = 1.732 ;
$float2 = 1.4E+2 ;
$MyArray1 = array( "子" , "丑" , "寅" , "卯" );
這里引出兩個問題,首先PHP變數以$開頭,第二PHP語句以;結尾,可能ASP程序員會不適應。這兩個遺漏也是程序上大多錯誤所在。
5、運算符號:
數**非法字眼已被屏蔽**算:
符號 意義
+ 加法運算
- 減法運算
* 乘法運算
/ 除法運算
% 取余數
++ 累加
-- 遞減
字元串運算:
運算符號只有一個,就是英文的句號。它可以將字元串連接起來,變成合並的新字元串。類似ASP中的&
<?
$a = "PHP 4" ;
$b = "功能強大" ;
echo $a.$b;
?>
這里也引出兩個問題,首先PHP中輸出語句是echo,第二類似ASP中的<%=變數%>,PHP中也可以<?=變數?>。
邏輯運算:
符號 意義
< 小於
> 大於
<= 小於或等於
>= 大於或等於
== 等於
!= 不等於
&& 而且 (And)
and 而且 (And)
或者 (Or)
or 或者 (Or)
xor 異或 (Xor)
! 不 (Not)
學習目的:掌握php的流程式控制制
1、if..else 循環有三種結構
第一種是只有用到 if 條件,當作單純的判斷。解釋成 "若發生了某事則怎樣處理"。語法如下:
if (expr) { statement }
其中的 expr 為判斷的條件,通常都是用邏輯運算符號當判斷的條件。而 statement 為符合條件的執行部分程序,若程序只有一行,可以省略大括弧 {}。
範例:本例省略大括弧。
<?php
if ($state==1)echo "哈哈" ;
?>
這里特別注意的是,判斷是否相等是==而不是=,ASP程序員可能常犯這個錯誤,= 是賦值。
範例:本例的執行部分有三行,不可省略大括弧。
<?php
if ($state==1) {
echo "哈哈 ;
echo "<br>" ;
}
?>
第兩種是除了 if 之外,加上了 else 的條件,可解釋成 "若發生了某事則怎樣處理,否則該如何解決"。語法如下
if (expr) { statement1 } else { statement2 } 範例:上面的例子來修改成更完整的處理。其中的 else 由於只有一行執行的指令,因此不用加上大括弧。
<?php
if ($state==1) {
echo "哈哈" ;
echo "<br>";
}
else{
echo "呵呵";
echo "<br>";
}
?>
第三種就是遞歸的 if..else 循環,通常用在多種決策判斷時。它將數個 if..else 拿來合並運用處理。
直接看下面的例子
<?php
if ( $a > $b ) {
echo "a 比 b 大" ;
} elseif ( $a == $b ) {
echo "a 等於 b" ;
} else {
echo "a 比 b 小" ;
}
?>
上例只用二層的 if..else 循環,用來比較 a 和 b 兩個變數。實際要使用這種遞歸 if..else 循環時,請小心使用,因為太多層的循環容易使設計的邏輯出問題,或者少打了大括弧等,都會造成程序出現莫名其妙的問題。
2、 for 循環就單純只有一種,沒有變化,它的語法如下
for (expr1; expr2; expr3) { statement }
其中的 expr1 為條件的`初始值。expr2 為判斷的條件,通常都是用邏輯運算符號 (logical operators) 當判斷的條件。expr3 為執行 statement 後要執行的部份,用來改變條件,供下次的循環判斷,如加一..等等。而 statement 為符合條件的執行部分程序,若程序只有一行,可以省略大括弧 {}。
下例是用 for 循環寫的的例子。
<?php
for ( $i = 1 ; $i <= 10 ; $i ++) {
echo "這是第".$i."次循環<br>" ;
}
?>
3、 switch 循環,通常處理復合式的條件判斷,每個子條件,都是 case 指令部分。在實作上若使用許多類似的 if 指令,可以將它綜合成 switch 循環。
語法如下
switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; }
其中的 expr 條件,通常為變數名稱。而 case 後的 exprN,通常表示變數值。冒號後則為符合該條件要執行的部分。注意要用 break 跳離循環。
<?php
switch ( date ( "D" )) {
case "Mon" :
echo "今天星期一" ;
break;
case "Tue" :
echo "今天星期二" ;
break;
case "Wed" :
echo "今天星期三" ;
break;
case "Thu" :
echo "今天星期四" ;
break;
case "Fri" :
echo "今天星期五" ;
break;
default:
echo "今天放假" ;
break;
}
?>
這里需要注意的是break;別遺漏了,default,省略是可以的。
很明顯的,上述的例子用 if 循環就很麻煩了。當然在設計時,要將出現機率最大的條件放在最前面,最少出現的條件放在最後面,可以增加程序的執行效率。上例由於每天出現的機率相同,所以不用注意條件的順序。
學會構建資料庫
在PHP中,MY SQL的命令行編輯可能會令初學者感到很麻煩,不要緊,你下載一個PHPMYADMIN安裝一下,以後建立編輯資料庫可以靠它了。
下面說一下它的使用。
進入了phpmyadmin後,我們首先需要建立一個資料庫,
Language (*) 這里選擇中文簡體,然後在左邊的 創建一個新的資料庫 這里填寫資料庫名字,點擊創建即可。
然後在左邊下拉菜單中選擇那個已經創建的資料庫。在下面的
在資料庫 shop 中創建一個新表 :
名字 :
欄位數 :
中填寫表名字和大致你認為的欄位數(不夠或者多了都不要緊,以後可以再添加或者預設),按執行。
然後就可以開始建立表了。
第一欄是欄位的名字;第二欄選擇欄位類型:
我們常用的是以下幾個:
1)VARCHAR,文本類型
2)INT,整數類型
3)FLOAT,浮點數類型
4)DATE,日期型
5)大家或許會問,自動添加的ID在哪裡?這個只要選擇INT類型,在後面的額外中選擇 auto_increment 就可以了。
建立了表以後,可以在左邊看到你建立的表,點擊以後,你可以:
1)按右邊的結構:查看修改表結構
2)按右邊的瀏覽:查看錶中的數據
3)按右邊的SQL:運行SQL語句
4)按右邊的插入:插入一行記錄
5)按右邊的清空:刪除表中所有記錄
6)按右邊的刪除:刪除表
還有一個很重要的功能就是導入和導出,當我們本機做好了程序和資料庫的時候,需要在伺服器上也有一個本地鏡像,如果是ASP的ACCESS簡單了,直接上傳MDB文件即可,如果是SQL SERVER也可以連接遠端伺服器進行導入。那麼MY SQL中你可以導出所有的SQL語句,到了遠端伺服器的PHPMYADMIN上,創建資料庫後按SQL,粘帖你剛才復制下來的所有本級生成的SQL語句即可。
學會連接資料庫
PHP簡直就是一個函數庫,豐富的函數使PHP的某些地方相當簡單。建議大家down一本PHP的函數手冊,總用的到。
我這里就簡單說一下連接MYSQL資料庫。
1、mysql_connect
打開 MySQL 伺服器連接。
語法: int mysql_connect(string [hostname] [:port], string [username], string [password]); 返回值: 整數
本函數建立與 MySQL 伺服器的連接。其中所有的參數都可省略。當使用本函數卻不加任何參數時,參數 hostname 的默認值為 localhost、參數 username 的默認值為 PHP 執行行程的擁有者、參數 password 則為空字元串 (即沒有密碼)。而參數 hostname 後面可以加冒號與埠號,代表使用哪個埠與 MySQL 連接。當然在使用資料庫時,早點使用 mysql_close() 將連接關掉可以節省資源。
2、 mysql_select_db
選擇一個資料庫。
語法: int mysql_select_db(string database_name, int [link_identifier]); 返回值: 整數
本函數選擇 MySQL 伺服器中的資料庫以供之後的資料查詢作業 (query) 處理。成功返回 true,失敗則返回 false。
最簡單的例子就是:
$conn=mysql_connect ("127.0.0.1", "", "");
mysql_select_db("shop");
連接機MY SQL資料庫,打開SHOP資料庫。在實際應用中應當加強點錯誤判斷。
學會讀取數據
先看兩個函數:
1、mysql_query
送出一個 query 字元串。 語法: int mysql_query(string query, int [link_identifier]); 返回值: 整數
本函數送出 query 字元串供 MySQL 做相關的處理或者執行。若沒有指定 link_identifier 參數,則程序會自動尋找最近打開的 ID。當 query 查詢字元串是 UPDATE、INSERT 及 DELETE 時,返回的可能是 true 或者 false;查詢的字元串是 SELECT 則返回新的 ID 值,當返回 false 時,並不是執行成功但無返回值,而是查詢的字元串有錯誤。
2、mysql_fetch_object 返回類資料。 語法: object mysql_fetch_object(int result, int [result_typ]); 返回值: 類
本函數用來將查詢結果 result 拆到類變數中。若 result 沒有資料,則返回 false 值。
看一個簡單的例子:
<?
$exec="select * from user";
$result=mysql_query($exec);
while($rs=mysql_fetch_object($result))
{
echo "username:".$rs->username."<br>";
}
?>
當然,表user中有一個username的欄位,這就類似asp中的
<%
exec="select * from user"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
do while not rs.eof
response.write "username:"&rs("username")&"<br>"
rs.movenext
loop
%>
當然先要連接資料庫,一般我們 require_once('conn.php');而conn.php裡面就是上一次說的連接資料庫的代碼。
小小的兩條命令可以完成讀取數據的工作了
學會添加刪除修改數據
mysql_query($exec);
單這個語句就可以執行所有的操作了,不同的就是$exec這個sql語句
添加:$exec="insert into tablename (item1,item2) values ('".$_POST['item1']."',".$_POST['item1'].")";
刪除:$exec="delete from tablename where...";
修改:$exec="update tablename set item1='".$_POST['item1']."' where ...";
說到這里就要說一下表單和php變數傳遞,如果表單中的一個 <input name="item1" type="text" id="item1">
表單以POST提交的,那麼處理表單文件就可以用$_POST['item1']得到變數值,同樣以GET提交的就是$_GET['item1']
是不是很簡單?但是通常$exec會有問題,因為可能您的SQL語句會很長,您會遺漏.連接符,或者'來包圍字元型欄位。
我們可以注釋mysql_query($exec);語句用echo $exec;代替來輸出$exec以檢查正確性。如果您還不能察覺$exec有什麼錯誤的話,可以復制這個sql語句到phpmyadmin中執行,看看它的出錯信息。還有需要注意的是,我們不要使用一些敏感的字元串作為欄位名字,否則很可能會出現問題,比如說date什麼的。變數的命名,欄位的命名遵循一點規律有的時候對自己是一種好處,初學者並不可忽視其重要性。
學會SESSION的使用
SESSION的作用很多,最多用的就是站點內頁面間變數傳遞。
在頁面開始我們要session_start();開啟SESSION;
然後就可以使用SESSION變數了,比如說要賦值就是:$_SESSION['item']="item1";要得到值就是$item1=$_SESSION['item'];,很簡單吧。這里我們可能會使用到一些函數,比如說判斷是不是某SESSION變數為空,可以這么寫:empty($_SESSION['inum'])返回true or false。
下面綜合一下前面所說的我們來看一個登陸程序,判斷用戶名密碼是否正確。
登陸表單是這樣:login.php
<table width="100%" height="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<form action="checklogin.php" method="post"><td align="center" valign="middle"><table width="400" border="0" cellpadding="5" cellspacing="1" class="tablebg">
<tr class="tdbg">
<td colspan="2"><p align="center">Administrators Login</p></td>
</tr>
<tr class="tdbg">
<td><p align="center">Username</p></td>
<td><p align="center">
<input name="username" type="text" id="username">
</p></td>
</tr>
<tr class="tdbg">
<td><p align="center">Password</p></td>
<td><p align="center">
<input name="password" type="password" id="password">
</p></td>
</tr>
<tr class="tdbg">
<td colspan="2"><p align="center">
<input type="submit" name="Submit" value="Submit">
<input type="reset" name="Submit2" value="Clear">
</p></td>
</tr>
</table></td></form>
</tr>
</table>
處理文件是這樣
<?php
require_once('conn.php');
session_start();
$username=$_POST['username'];
$password=$_POST['password'];
$exec="select * from admin where username='".$username."'";
if($result=mysql_query($exec))
{
if($rs=mysql_fetch_object($result))
{
if($rs->password==$password)
{
$_SESSION['adminname']=$username;
header("location:index.php");
}
else
{
echo "<script>alert('Password Check Error!');location.href='login.php';</script>";
}
}
else
{
echo "<script>alert('Username Check Error!');location.href='login.php';</script>";
}
}
else
{
echo "<script>alert('Database Connection Error!');location.href='login.php';</script>";
}
?>
conn.php是這樣:
<?php
$conn=mysql_connect ("127.0.0.1", "", "");
mysql_select_db("shop");
?>
由於 $_SESSION['adminname']=$username;我們可以這樣寫驗證是否登陸語句的文件:checkadmin.php
<?php
session_start();
if($_SESSION['adminname']=='')
{
echo "<script>alert('Please Login First');location.href='login.php';</script>";
}
?>
做一個分頁顯示
關鍵就是用到了SQL語句中的limit來限定顯示的記錄從幾到幾。我們需要一個記錄當前頁的變數$page,還需要總共的記錄數$num
對於$page如果沒有我們就讓它=0,如果有<0就讓它也=0,如果超過了總的頁數就讓他=總的頁數。
$execc="select count(*) from tablename ";
$resultc=mysql_query($execc);
$rsc=mysql_fetch_array($resultc);
$num=$rsc[0];
這樣可以得到記錄總數
ceil($num/10))如果一頁10記錄的話,這個就是總的頁數
所以可以這么寫
if(empty($_GET['page']))
{
$page=0;
}
else
{
$page=$_GET['page'];
if($page<0)$page=0;
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因為page是從0開始的,所以要-1
}
這樣$exec可以這么寫 $exec="select * from tablename limit ".($page*10).",10";
//一頁是10記錄的
最後我們需要做的就是幾個連接:
<a href="xxx.php?page=0">FirstPage</a>
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
<a href="xxx.php?page=<?=($page+1)?>">NextPage</a>
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
注意事項
1、注意不要漏了分號
2、注意不要漏了變數前的$
3、使用SESSION的時候注意不要遺漏session_start();
如果發生錯誤的時候,可以採用以下方法:
1、如果是SQL語句出錯,就注釋瞭然後輸出SQL語句,注意也要注釋調後續的執行SQL語句
2、如果是變數為空,大多是沒有傳遞到位,輸出變數檢查一下,檢查一下表單的id和name
3、如果是資料庫連接出錯,檢查是否正確打開MY SQL和是否遺漏了連接語句
4、注意縮進,排除括弧不區配的錯誤
在做大網站的時候,我的思路是先構建資料庫,確定每一個欄位的作用,和表之間的關系。然後設計後台界面,從添加數據開始做起,因為添加是否成功可以直接到資料庫裡面驗證,做好了添加再做顯示的頁面,最後才是兩者的結合。一般來說後台就包括添加刪除修改和顯示,後台沒有問題了,前台也沒有什麼大問題。前台還需要注意安全性和容錯還有就是輸出格式。
學會用PHP上傳文件和發郵件
上傳文件表單必須加上 enctype="multipart/form-data"
和 <input type="file" name="file">
下面看一下代碼:
$f=&$HTTP_POST_FILES['file'];
$dest_dir='uploads';//設定上傳目錄
$dest=$dest_dir.'/'.date("ymd")."_".$f['name'];//我這里設置文件名為日期加上文件名避免重復
$r=move_uploaded_file($f['tmp_name'],$dest);
chmod($dest, 0755);//設定上傳的文件的屬性
上傳的文件名為date("ymd")."_".$f['name'] ,可以在以後插入到資料庫的時候用到,PHP實際上是把你上傳的文件從臨時目錄移動到指定目錄。move_uploaded_file($f['tmp_name'],$dest);這是關鍵
至於發郵件就更加簡單,可以使用mail()函數
mail("收件人地址","主題","正文","From:發件人 Reply-to:發件人的地址");
不過mail()需要伺服器的支持,在WINDOWS下還需要配置SMTP伺服器,一般來說外面的LINUX空間都行。
好像上傳文件和發郵件比ASP簡單很多,只要調用函數就可以了。ASP還需要用到伺服器的不同組件比如FSO、JMAIL什麼的。
;⑵ php header 下載zip文件的問題
<?php
include("class.php");
date_default_timezone_set("PRC");//設置時區為中國
$filetype_array = array("as"=>"Flash ActionScript File","bmp"=>"BMP圖像"
,"doc"=>"Microsoft Word文檔","rar"=>"WinRAR 壓縮文檔",
"ppt"=>"Microsoft PowerPoint 演示文稿","txt"=>"文本文檔",
"xls"=>"Microsoft Excel 工作表","gif"=>"GIF圖像",
"jpg"=>"JPEG圖像","jpeg"=>"JPEG圖像","png"=>"PNG圖像",
"html"=>"HTML Document","htm"=>"HTML Document",
"mp3"=>"MP3 格式聲音","chm"=>"已編譯的HTML幫助文件",
"fla"=>"Flash Document","mdb"=>"Microsoft Access 應用程序",
"pdf"=>"PDF 文件","swf"=>"Flash Movie","xml"=>"XML 文檔",
"zip"=>"WinRAR ZIP 壓縮文件","asf"=>"Windows 音頻/視頻文件",
"wmv"=>"Windows Media 音頻/視頻文件","avi"=>"視頻剪輯",
"mpeg"=>"電影剪輯","exe"=>"應用程序","gz"=>"WinRAR 壓縮文件",
"tar"=>"WinRAR 壓縮文件","tiff"=>"TIFF 文件");
//以上為判斷函數
$="./images";
$nba=opendir($);
$i=1;
echo "<table border=1px color:red>";
echo "<tr><td>I D</td><td>文件名稱</td><td>大小</td><td>最後修改時間</td><td>類型</td><td>下載</td></tr>";
while ($wnba=readdir($nba))
{
if($wnba != "." && $wnba != "..")
{
$path=$."/".$wnba;
$dir=new dir($path);
$str[]=
"<tr>".
"<td>".$i++."</td>".
"<td>".$wnba."</td>".
"<td>".$dir->getsize()."</td>".
"<td>".$dir->gettime()."</td>".
"<td>".$dir->gettype()."</td>".
"<td><a href='$path'><img src=".$dir->getIcon()."></a></td>".
"</tr>\n";
}
$lines=15;//每頁15行
if( " "==$cur_page) $cur_page=1;//當前頁
$page=ceil(count($str)/$lines);//頁數
echo $page;
for($i=($cur_page-1)*$lines ; $i <$cur_page*$lines ; $i++){//分段讀出數組
echo "$str[$i] ";
}
}
echo "</table>";
closedir($nba);
?>
<table width=100%> <tr> <td align=center>
<?
for ($i=1;$i <=$page;$i++){
$i==$cur_page ? $a= " <b> ".$i. " </b> " : $a= " <a href= ".wjclass1.php. "?cur_page=$i> ".$i. " </a> ";
echo "$a ";
}
?>
</td> </tr> </table>
</td>
</tr>
</table>
⑶ 後綴為PHP的文件如何打開
*.php是一種網路開發的程序,它在伺服器端運行,也就是你如果想打開此文件(以網頁的形式),必須為他配一台伺服器或者安裝一個基於本機的服務性質的軟體!
*.php是一種網路開發的程序,它在伺服器端運行,也就是你如果想打開此文件(以網頁的形式),必須為他配一台伺服器或者安裝一個基於本機的服務性質的軟體,不過你可以使用寫字板之內的東西打開他,此時你看到的是源程序,如果是在網上下載的php的話,他已經在伺服器端運行,你只能看到結果!即我們常見的超文本html。
後綴名大全
A:
1 .ace: ace.exe或winace生成的壓縮文件
2 .ain: ain是一種壓縮文件格式,解開ain需要用ain.exe。在網上可以找到。
可以在各大的FTP pub/msdos utility之類地方尋找ain.exe
3 .arj,a01,a02...:
arj是一種非常常見的壓縮文件格式,它可以支持帶目錄,多文件壓縮,
一般FTP中DOSutility目錄下都可以找到arj.exe,一般的版本有2.4
2,2.382.50等,其文件格式是通用的,不存在格式不認問題。
a01,a02,a03是arj在多文件壓縮時後面文件的預設文件名。
展開arj文件可以用arj x -va -y filename.arj
在windows下可以試試用winzip展開。
4 .asp:
.asp文件通常指的是Active Server Pages文件,這個文本文件可以
包括下列部分的任意組合:文本/HTML 標記/ASP 腳本命令,可以用
ie瀏覽器直接打開,也可以用記事本打開編輯。
.asp文件也可能是一種文檔格式的文件,可以用cajviewer打開。
5 .avi:
一般用windows自帶的媒體播放器就可以播放。
如果沒有圖象只有聲音,則可能是mpeg4格式,需要裝插件。
如果有單獨的字幕文件,則可以用其它播放器。
B:
1 .BHX(BINHEX):
BinHex是蘋果機器的一種編碼方式.
WinZip可以解碼. 將email以文本方式存檔,擴展名為.BHX,
就可以直接用WinZip解壓了.
2. .bin
光碟映象文件,可以:
a.用Bin2ISO將bin轉成ISO文件,然後用WinImage解開.
注意:有些BIN文件實際上就是ISO文件如果上面的辦法有問題
可以直接將後綴改成iso,然後用WinImage解解看
b.用ISOBuster直接解BIN.
c.用daemon直接將BIN文件虛擬成光碟機
C:
1 .caj: cajviewer,CAJ文件瀏覽器是中國學術期刊(光碟版)電子雜志社(CAJEJPH)
的產品。它是為中國期刊網(www.chinajournal.net.cn)的全文檢索,瀏覽開發的。
2 .cdi: 光碟映像文件,用DISKJuggle 就可以打開
3 .cdr: CorelDraw
4 .cdp: Nti CdMaker做的光碟Image.用 Nti CdMaker 的FileCopy刻.
5 .cfm:
www瀏覽器(伺服器支持,類似asp,php,jsp) or 文本編輯器看源碼
6 .chi:chm(html help)的索引,和chm文件一起使用
7 .chm:
基於Html文件格式的幫助文檔,在IE4.0以上可以雙擊直接打開。
製作工具可以採用Html Help WorkShop。
8 .cif:是easy cd creator地image文件
9 .cpj:
WinONCD的工程文件,不過如果那個Raw文件是2072位元組的扇區的話就是標準的ISO文件
換個擴展名,用什麼刻錄軟體都可以,最差用WinImage直接展開安裝也行。
10 .cpx: cpx是一種壓縮過的矢量圖格式,CorelDraw
D:
1 .dat:
一般指數據文件,比如某些音碟或者某些應用程序的數據。
是個很通用的擴展名(比如影碟,一般數據,......),無法判斷用那個程序打開,
除非有更多信息,比如這些文件是做什麼用的。
是某個軟體附帶的,還是獨立存在的,等等。
2 .dbf:
DOS下:
foxbase
foxpro
DN 中F3(view)
Windows:
qview(快速查看)
FoxPro
Office中Excel等.
3 .ddi: DISKDUPE,unimg,unddi,undisk
4 .dvi: Latex處理過的文件,用任何一種Latex軟體都可看它。
5 .dxf: AutoCad,3DMax
6 .dxr: Macromedia Director Protected Movie File
E:
1 .ecw: 有可能是ENSONIQ AudioPCI音效卡的波表樣本
2 .emf: 擴展的wmf文件
3 .eml: outlook express
4 .eps:
eps是一種特殊的ps文件, 通常是嵌入其他文檔中使用. 製作這種文件非常簡單:
a) 在Windows中安裝一台PostScript列印機(並不是真的要買一台, 僅僅是安裝驅動
程序), 例如 HP LaserJet 5P/5MP PostScript, 設置其屬性中的PostScript輸出格式為
內嵌的PostScript, 列印埠設為FILE(在磁碟上創建文件);
b) 在任何繪圖軟體中編輯好圖形後, 在列印對話框中將列印機設為那個PostScript
列印機, 然後列印到文件, 文件名可取為xxx.eps, 這將是你所需要的eps文件.
很多常用軟體,比如ACDSee、Word等都可打開eps文件。
F:
1 .fcd:用vitrul CD-ROM打開
2 .fla: Flash
G:
1 gerber file(.dat .rep .pho 文件): 電路圖可以送去制板的
2 .gif: gif是一種很普遍的圖像格式,用幾乎所有的圖像處理軟體都可以處理gif。
3 .gtp:guitar pro
.gtp是2.2以下版本的,3.0版本的是.gp3
H:
1 .hlp: 編輯可用help magic,help scribe
2 .hqx:
hqx格式就是所謂的Binhex 4.0文件。
實際是Ascii文件。
在PC上可以用winzip 6.2以上解開。
在Mac機上,如果你用Fetch 2.0以上來傳
(在隨機的Apple Internet Connect Kit上已帶)
可以自動轉成原來的Binary文件。
一般來說,你down了hqx格式的文件在PC上是派不上
什麼用場的,當然你可以用來和別人交換word文件什麼的。
I:
1 .icl:Icon Library,用AxIcons打開,一個專用的畫圖標的軟體。
2 .ic圖標文件,可以用acdsee轉成bmp文件。
3 .idx:cterm非常下載下來的文件索引,用cterm自帶的indexread打開
4 .iges:iges是一個基於NURBS的文件格式, 可以用AutoCad打開,如果不行,可以可以先拿到rhino中轉成DXF
5 .img:
img是軟盤image文件,一個img就是一個軟盤,尼需要一個工具將這樣
的文件展開還原到軟盤上,就是hd-,
6 .is
一般是光碟鏡像,直接用來刻盤或者用winimage解開
也可以裝一個虛擬光碟軟體daemon直接將之虛擬成光碟。
J:
1、.jpg,.jpeg:
.jpg是一種高壓縮比的真彩圖像文件格式,一般的圖像處理軟體都可以
顯示jpg圖像。推薦使用的看jpg程序有:在DOS下sea,在windows下用
acdsee,在UNIX下可以用xv來看jpg。
K:
1、.kc:
可以用king打開。
L:
1 .lwp: Lotus WordPro 格式
2 .lrc: 一個winamp插件的歌詞文件,可以在放mp3時顯示歌詞。以前叫lrics mate
3 .lzh:
lzh是很老的一種壓縮文件格式,近幾年已經很少用了,展開lzh
文件需要lha.exe,在FTP的DOS utility目錄下應該有。
好象以前有一種自解壓然後運行的exe是用lha壓的,lzh用winrar就能解
4 .ldb
Access資料庫鎖定文件,紀錄資料庫的鎖定信息,
比如是否被打開,是否以獨占形式訪問等等。
M:1 .max: 3DMax文件。
2 .mdb: Microsoft Access資料庫文件
3 .mdl: Rose文件
4 .mif:一種是MaxPlusII的文件
5 .mov:電影文件,用Quicktime打開。
6 .mpp:Project File(Ms Project)
7 .msf:
part 1:文件頭,我見到的幾個都是mstor打頭的,文件頭包括版本信息、注冊表
的一些鍵值、圖片的位置信息等等,關系不是很大,不必仔細研究。
part 2: 圖片序列,圖片都是jpeg格式的,每張圖片的頭可以通過查找"JFIF"字元串查到,查到後一定要後退六個位元組,才是真正的jpeg文件頭。也就是說
jpeg文件的第七到第十個位元組是"JFIF"。每兩張圖片之間會有大量的位元組
填充0,中間你會找到屏保運行時產生的臨時文件的名字,如c:\\1.jpg;
由於jpg文件不校驗位元組和長度的,你可以隨便取到臨時文件名上面的哪個
0 上。把之間的部分拷貝出來另存為.jpg文件就可以了,
part 3:圖片都取出來了,還管它干什麼,呵呵
7 .msi:
MS Windows的新的安裝文件標准。已經在Office2000和Windows2000中採用。
98或NT下,可以裝下面的軟體:InstMsi9x.exe,InstMsiNT.exe
N:
1 .nb:Mathematica的一種文件格式把。
2 .nf
察看方法:
1.文本編輯器都可以看。建議將自動換行設為80列。
專門的查看軟體:
NFOShow1.1是網友寫的,實際效果是我見過最好的,不過有時時會出錯退出。DAMN.NFO.Viewer.v2.0隻有幾十k,很好用,足夠了。還可以在dos窗口下type xx.nfo
3 .ngp,.ngc:
是模擬器游戲的文件neopocott 0.35b(ngp模擬器)ngp模擬器neopocott升級到
了v0.35b版本,可在win9x, 2k, me平台上運行。新版本暫停功能得到修改,支持
了ngc的擴展名文件,可以更好的存儲和讀取文件,增加了對鍵盤的設置等等
4 .njx: 南極星的字處理軟體的文檔格式
5 .nrg:Nero做的CD Image,用nero直接打開刻盤即可
1 .opx: Microsoft 組織結構圖,用office自帶的組件可以打開,
默認不安裝,需要添加程序。
P:
1 .pdf:
pdf是adobe公司開發的一種類似於poscript的文件格式。可以用
adobe的acrobat,arcrbat reader來編輯,打開pdf文件
2 .pdg:超星閱讀器SSreader3.52以上版本
3 .phtml:cajviewer
4 .pl: 一般說來是PERL Script,也可能是mp3播放軟體的playlist文件
5 .ppt .pps:PowerPoint
6、prn:
prn文件是列印機文件,比如你在Word中選擇"列印到文件"就會生成這種文件。
你可以把擴展名改為ps,然後用GSView打開。
或者用PrFile這個軟體直接把prn文件送到PS列印機列印出來。
7 .ps:
ps的意思是PostScript,這是一種頁面描述語言,主要用於高質量列印。
在UNIX和windows下都可以用GhostView來看ps文件。其homepage是
http://www.cs.wisc.e/~ghost/gsview/new23.html
如果你有PoscriptScript支持的列印機,可以直接列印PS文件。
如果你想製做PS文件,簡單的辦法是:在Windows下安裝一個支持Post Script
的列印機驅動程序,比如HP 4 PS,你不需用非有這個列印機安裝在你的機器上。安裝好
驅動之後,在WIndows下任何一個編輯器中編輯好你需要轉成PS的文件,比如從
Word下。然後選擇"列印",選擇那個PS兼容的驅動程序,然後選擇"print to file",
它將把列印輸出送到一個文件中去。因為你用了一個Poscript 的列印驅動程序,
那麼這個列印文件就是PostScript文件了。將該文件改名字為XXX.ps就可以了。
8 .ps.gz:
gzipped postsript 文件,可以用gsview直接打開,其支持gzip
如果是用IE下載的,有可能實際已經解開,可以去掉gz後綴試試。
9 .psz: 改成*.ps.gz試試,然後用gzip或者winzip解開就是.ps文件了
10 .psf: outline PostScript printer font (ChiWriter)
11 .ptl: AUTOCAD做出來的列印文件
Q:
R:
1、.rar,.r01,r02......:
rar是一種壓縮文件格式,在DOS下解開RAR可以用rar.exe,在各大FTP
裡面都可以找到,一般在pub/msdosutility之類地方。需要注意的是rar
高版本壓縮的文件低版本不認。當前最新的rar for DOS是2.X版,如果
能找到2.x版的話最好不要用1.X板的rar,2版的rar文件相互是通用的。
rar的命令行參數幾乎和arj一樣,rar x -v -y filename.rar
可以展開文件,包括帶目錄和多文件壓縮。
rar多文件壓縮時rar之後的文件名是r00,r01,r02....
DOS下的軟體不支持長文件名,所以如果你的rar裡面有長文件名並且因為
在DOS下展開丟失了得話,可以試試winrar for win95,支持長文件名。
在各大ftp上應該也可以找到。其所有版本都可以認rar2.X得文件。
2、.raw:
是easy cd或者winoncd等軟體做的CDROM的ISO鏡像
RAW屬於MODE1的
3、.raw:
可用Photoshop看。
4、.rom:
是很小的音樂壓縮格式,使用realplayer可以播放。
5、.rom:
是模擬器的文件吧。
6、.rpm:
RPM 是Redhat Package Manager 的簡寫。
是Linux 底下的軟體包管理系統。
到Linux 底下用使用rpm 來對它進行操作。
7、.rm:
RM文件是一個包含了RA文件URL地址的文件,作用就同M3L與MP3一樣,用於
REALPLAYER在INTERNET上播放RA流。
8、.rmx:
可以用realplayer 打開。
9、.rtf:
rich text format
包含格式的文本,可用於各種編輯器間交換文件,但是體積要比專用格式大很多。 可以用word,寫字板打開,一般的支持格式的編輯器都能打開。
S:
1、.sfe:file split 分割文件。
用file split 可以把他們合並成原來的zip文件。
或許還有自動合並得bat文件呢。
2、.sfv:
不是文件分割器產生的,是sfv32w產生的,一般用來做windows下的文件校驗。
3、.shar:
Shell Archive, 文本格式的打包文件,類似tar, 不過tar生成的為binary file,在UNIX下sh < *.shar 即可解包, 或用專門的 shar/unshar utilities。
4、.shg:
是microsoft的help workshop的圖形處理工具生成的圖形文件,
是用來在help中調用的。
5、.sit:
Macintosh Stuffit archives,
as well as UUE (uuencoded), HQX (BinHex), bin (MacBinary), ZIP, ARC,
ARJ, and GZ archives
use "Aladdin Expander" to expand
6、.srm:
呵呵,當然是用Kiven電子書庫了.你可以去化雲坊down 3.0.12的版本,也可以去http://kiven.yeah.net kiven的主頁上當最新版.還有源碼的呦.
7、.stx:
Syntax file of Edit Plus
8、:
是Flash的動畫格式,如果瀏覽器裝了插件,可以用瀏覽器打開,但最好用
Flash Player Browser打開。
9、.swp:
Scientific Word Place
10、.spw
SigmaPlot Worksheet
http://www.spssscience.com/sigmaplot
T:
1、.tar.GZ or .tar:
.tar.gz,或者.tgz的文件一般是在UNIX下用tar和gunzip壓縮的文件。
可能的文件名還有.tar.GZ等。gunzip是一種比pkzip壓縮比高的壓縮 程序,一般UNIX下都有。tar是一個多文件目錄打包器,一般也是在unix下。
在UNIX下展開.tar.gz文件用tar zxvf filename.tar.gz就可以了 或者用gunzip -d filename.tar.gz得到filename.tar 然後用tar xvf filename.tar解包,兩步完成。
在PC環境下解tgz,可以用winzip 6.2以上版本,可以直接打開extract。
建議在win95或者NT下使用winzip,因為很多這樣的文件都是在UNIX下壓縮的,
很可能有長文件名,但是WIndows3.1是不支持長文件名的,however,win31下的winzip 也是應當可以展開tgz的。
2、.tar.Z:
.Z的文件一般是在UNIX下用compress命令壓縮的。在UNIX下解開可以用 uncompress filename.Z。在PC下可以用winzip6.2以上版本,建議使用
win95版本的winzip,因為win31不支持長文件名,而UNIX下的文件很
可能是長文件名。但win31下winzip應該也可以解開。
如果是.tar.Z的文件的話可以用uncompress先解開外面一層,然後用
tar xvf filename.tar解開tar文件。在PC下還是用winzip。
3、.tex:
.tex本身是個文本文件,必須經過編譯成dvi文件,使用winLatex就可以,如果你有 unix當然會帶TeX或LaTex的。
U:
1、.ufo:
問:這種文件要用什麼程序打開?quick view plus 可以嗎?
答1:使用photoimpact應該可以.
答2:通常是漫畫,可以用冷雨瀏覽來看.
答3:找ufo2jpg.exe可以將ufo文件變成熟悉的JPG
2、.uu,.uue:
.uu是uucode的文件。uucode是一種把8bit文件轉成7bit的演算法。
我們知道,exe文件或者其他二進制文件是不可以直接用email
發出去的。uucode可以把這些文件轉成7bit格式,就是普通文本文件格式
(如下面的樣子),然後就可以被接收方還原。
begin 640 pass
M("$Y-2V]R<5!1=UI!.C`Z,#I3=7!E`@<F]O=#IB>$Y-2V]R<5!1=UI!.C`Z,#I3=7!E<BU5<V5R.B\\Z+V)I;B]C
M<V@@<WES861M.BHZ,#HP.E-Y<W1E;2!6"B`@(&=U97-T.F-U-&I)=&M%9&HN
M:S(Z.3DX.CDY.#I\'=65S="!!8V-O=6YT.B]U<W(O<&5O<&QE+V=U97-T.B]B
如果你收到一個email是uucode做的,可以把它存成一個文件,將begin 640..
之前的部分刪除,然後改文件名為.uu,然後用uudecode解開。
在windows下可以用winzip6.2以上版本。
V:
1、.vcd:
一般是virtual driver的虛擬光碟機文件
也可以轉換成iso,用daemon打開,參見格式轉換,.vcd->.iso
另外金山影霸的文件也可能是vcd。
2、.vcf:
是地址本文件,用outlook express可以打開,(雙擊就可以)。
3、.vob:
DVD數據文件
4、.vos:
VOS 是一款強大的電子琴模擬軟體,.vos文件可以用它打開。
5、.vqf:
用Winamp播放,需要裝相應的插件。
備註:VQF是YAMAHA公司和日本NTT公司聯合開發的一種新音樂格式,它的壓縮比比MP3更高,音質卻與MP3不相上下,而它之所以沒有MP3那般出盡風頭,大概與其推出時間較遲以及缺和相應的廣告宣傳有關吧,加之其播放、製作工具目前還不是很豐富,所以知道的人不是很多。但不管怎麼說,VQF的確是一種優秀的音樂壓縮格式。常見播放工具有Yamaha VQ Player等等。
6、.vsd:
visio畫的流程圖
7、.vss:
visio template file
W:1、.wdl:
Dynadoc,華康文件閱讀器 可用dynadoc 或 FPread32.exe為關鍵字在ftp搜索引擎搜索。
2、.wmf:
WINDOWS的圖元文件,用ACDSEE可以看,WORD也可以打開。
3、.wpd:
WPD是corel公司的wordperfect字處理軟體的文檔的擴展名。
4、.wsz:
winamp的skin,down下來以後是wsz格式ws打開一個winzip先,然後用winzip里的open。。。。。。。
X:
1、.xls:
MicroSoft Excel的文件。
2、.xml:
eXtensible Markup Language
SGML的一個子集, 1998年2月正式發布1.0版
目前IE5.0可支持,可以在IE5.0下瀏覽.xml文件,但同時必須有相應的.xsl文件
才能正常顯示。
Y:
......
Z:
1、.zip:
zip是一種最常見的壓縮格式,在UNIX下解開zip用unzip命令。
在PC下解開zip可以用pkunzip.exe,一般在大ftp裡面都可以找到,
或者用winzip解開。pkunzip -d filename.zip可以帶目錄結構解開文件
⑷ PHP能不能直接讀寫mdb文件要怎麼做詳細的。
以下為幾個php連接access資料庫和操作acess數據的方法,全部州空睜做成了類,應用起來也更方便,也可摘用其中的部分代碼應用。
<?php
--------------------------------------------------------------------
//FileName:class.php
//Summary: Access資料庫操作類
// 使用範例:
//$databasepath="database.mdb";
//$dbusername="";
//$dbpassword="";
//include_once("class.php");
//$access=new Access($databasepath,$dbusername,$dbpassword);
--------------------------------------------------------------------
class Access
{
var $databasepath,$constr,$dbusername,$dbpassword,$link;
function Access($databasepath,$dbusername,$dbpassword)
{
$this->databasepath=$databasepath;
$this->username=$dbusername;
$this->password=$dbpassword;
$this->connect();
}
function connect()
{
$this->constr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath($this->databasepath);
$this->link=odbc_connect($this->constr,$this->username,$this->password,SQL_CUR_USE_ODBC);
return $this->link;
//if($this->link) echo "恭喜你虧瞎,資料庫連接成功!";
//else echo "資料庫連冊歲接失敗!";
}
function query($sql)
{
return @odbc_exec($this->link,$sql);
}
function first_array($sql)
{
return odbc_fetch_array($this->query($sql));
}
function fetch_row($query)
{
return odbc_fetch_row($query);
}
function total_num($sql)//取得記錄總數
{
return odbc_num_rows($this->query($sql));
}
function close()//關閉資料庫連接函數
{
odbc_close($this->link);
}
function insert($table,$field)//插入記錄函數
{
$temp=explode(',',$field);
$ins='';
for ($i=0;$i<count($temp);$i++)
{
$ins.="'".$_POST[$temp[$i]]."',";
}
$ins=substr($ins,0,-1);
$sql="INSERT INTO ".$table." (".$field.") VALUES (".$ins.")";
$this->query($sql);
}
function getinfo($table,$field,$id,$colnum)//取得當條記錄詳細信息
{
$sql="SELECT * FROM ".$table." WHERE ".$field."=".$id."";
$query=$this->query($sql);
if($this->fetch_row($query))
{
for ($i=1;$i<$colnum;$i++)
{
$info[$i]=odbc_result($query,$i);
}
}
return $info;
}
function getlist($table,$field,$colnum,$condition,$sort="ORDER BY id DESC")//取得記錄列表
{
$sql="SELECT * FROM ".$table." ".$condition." ".$sort;
$query=$this->query($sql);
$i=0;
while ($this->fetch_row($query))
{
$recordlist[$i]=getinfo($table,$field,odbc_result($query,1),$colnum);
$i++;
}
return $recordlist;
}
function getfieldlist($table,$field,$fieldnum,$condition="",$sort="")//取得記錄列表
{
$sql="SELECT ".$field." FROM ".$table." ".$condition." ".$sort;
$query=$this->query($sql);
$i=0;
while ($this->fetch_row($query))
{
for ($j=0;$j<$fieldnum;$j++)
{
$info[$j]=odbc_result($query,$j+1);
}
$rdlist[$i]=$info;
$i++;
}
return $rdlist;
}
function updateinfo($table,$field,$id,$set)//更新記錄
{
$sql="UPDATE ".$table." SET ".$set." WHERE ".$field."=".$id;
$this->query($sql);
}
function deleteinfo($table,$field,$id)//刪除記錄
{
$sql="DELETE FROM ".$table." WHERE ".$field."=".$id;
$this->query($sql);
}
function deleterecord($table,$condition)//刪除指定條件的記錄
{
$sql="DELETE FROM ".$table." WHERE ".$condition;
$this->query($sql);
}
function getcondrecord($table,$condition="")// 取得指定條件的記錄數
{
$sql="SELECT COUNT(*) AS num FROM ".$table." ".$condition;
$query=$this->query($sql);
$this->fetch_row($query);
$num=odbc_result($query,1);
return $num;
}
}
?>
22222222
class.php文件:
[php]
<?php
class Access//Access資料庫操作類
{
var $databasepath,$constr,$dbusername,$dbpassword,$link;//類的屬性
function Access($databasepath,$dbusername,$dbpassword)//構造函數
{
$this->databasepath=$databasepath;
$this->username=$dbusername;
$this->password=$dbpassword;
$this->connect();
}
function connect()//資料庫連接函數
{
$this->constr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath($this->databasepath);
$this->link=odbc_connect($this->constr,$this->username,$this->password,SQL_CUR_USE_ODBC);
return $this->link;
//if($this->link) echo "恭喜你,資料庫連接成功!";
//else echo "資料庫連接失敗!";
}
function query($sql)//送一個查詢字元串到資料庫中
{
return @odbc_exec($this->link,$sql);
}
function first_array($sql)//從access資料庫中返回一個數組
{
return @odbc_fetch_array($this->query($sql));
}
function fetch_row($query)//返回記錄中的一行
{
return odbc_fetch_row($query);
}
function total_num($sql)//取得記錄總數
{
return odbc_num_rows($this->query($sql));
}
function close()//關閉資料庫連接函數
{
odbc_close($this->link);
}
function insert($table,$field)//插入記錄函數
{
$temp=explode(',',$field);
$ins='';
for ($i=0;$i {
$ins.="'".$_POST[$temp[$i]]."',";
}
$ins=substr($ins,0,-1);
$sql="INSERT INTO ".$table." (".$field.") VALUES (".$ins.")";
$this->query($sql);
}
function getinfo($table,$field,$id,$colnum)//取得當條記錄詳細信息
{
$sql="SELECT * FROM ".$table." WHERE ".$field."=".$id."";
$query=$this->query($sql);
if($this->fetch_row($query))
{
for ($i=1;$i<$colnum;$i++)
{
$info[$i]=odbc_result($query,$i);
}
}
return $info;
}
function getlist($table,$field,$colnum,$condition,$sort="ORDER BY id DESC")//取得記錄列表
{
$sql="SELECT * FROM ".$table." ".$condition." ".$sort;
$query=$this->query($sql);
$i=0;
while ($this->fetch_row($query))
{
$recordlist[$i]=getinfo($table,$field,odbc_result($query,1),$colnum);
$i++;
}
return $recordlist;
}
function getfieldlist($table,$field,$fieldnum,$condition="",$sort="")//取得記錄列表
{
$sql="SELECT ".$field." FROM ".$table." ".$condition." ".$sort;
$query=$this->query($sql);
$i=0;
while ($this->fetch_row($query))
{
for ($j=0;$j<$fieldnum;$j++)
{
$info[$j]=odbc_result($query,$j+1);
}
$rdlist[$i]=$info;
$i++;
}
return $rdlist;
}
function updateinfo($table,$field,$id,$set)//更新記錄函數
{
$sql="UPDATE ".$table." SET ".$set." WHERE ".$field."=".$id;
$this->query($sql);
}
function deleteinfo($table,$field,$id)//刪除記錄函數
{
$sql="DELETE FROM ".$table." WHERE ".$field."=".$id;
$this->query($sql);
}
function deleterecord($table,$condition)//刪除指定條件的記錄函數
{
$sql="DELETE FROM ".$table." WHERE ".$condition;
$this->query($sql);
}
function getcondrecord($table,$condition="")//取得指定條件的記錄數函數
{
$sql="SELECT COUNT(*) AS num FROM ".$table." ".$condition;
$query=$this->query($sql);
$this->fetch_row($query);
$num=odbc_result($query,1);
return $num;
}
}
?>
[/php]
資料庫連接文件:
[php]
<?php
$databasepath="data/database.mdb";//資料庫路徑
$dbusername="";//資料庫用戶名
$dbpassword="";//資料庫密碼
include_once("class.php");//調用資料庫操作類
$access=new Access($databasepath,$dbusername,$dbpassword);//新建一個資料庫操作類的對象
?>
[/php]
[php]
<?php
$sql="select * from $info where id=$id";
$result=$access->query($sql)or die("error2");
$array=odbc_fetch_array($result);
?>
[/php]
333333333333
這個是為了 同時可以使用access和mysql而做的 先弄一個mysql的 然後又寫一個access的 所有的函數一一對應 你可以看下 絕對原創喔~~
配置文件如下
$config['db']['type'] = "Mysql"; //資料庫類型「Mysql」,「Access」
$config['db']['database']= "ourcms"; //資料庫(文件)名
$config['db']['host'] = ""; //資料庫主機
$config['db']['username']= "7king"; //資料庫連接用戶名
$config['db']['password']= "tingting"; //資料庫連接密碼
/*
$config['db']['type'] = "Access"; //資料庫類型「Mysql」,「Access」
$config['db']['database']= "ourcms.mdb";//資料庫(文件)名
$config['db']['host'] = "";
$config['db']['username']= "";
$config['db']['password']= "";
<?php
/**
* 2007.04 by zhaohe
*
* php連接access通用類
*
* 用法:
* 建立new Access類 => set_db設置數據路徑 => set_login 設置連接資料庫的用戶名和密碼
* => 通過set_conn 設置連接 =>
* {
get_result 獲取查詢執行結果; get_result_rows 獲取查詢執行列表,一般是select
insert_info 插入新的記錄 update_info更新記錄
}
*
*
*/
class Access {
/**
* 類變數定義
* @param $conn mysql連接號
* @param $error 錯誤代號
* @param $username/$password 資料庫連接用戶名和密碼
* @param array $err_info 錯誤信息
*
* @param $debuginfo 調試信息
* @param $table 當前操作數據表
*/
var $conn;
var $error;
var $database;
var $username = "";
var $password = "";
var $err_info = array(
0 => "沒有錯誤!",
1 => "資料庫連接失敗!",
2 => "sql執行出錯!"
);
var $debuginfo="";
var $table;
/**
* 默認構造方法
**/
function Access( $arr=null ){
if( is_array($arr) ) {
$this->set_login( $arr['host'] , $arr['username'] , $arr['password'] );
$this->set_db( $arr['database'] );
$this->set_conn();
}
}
/**
* 設置資料庫文件名
* @param string $dbfile
*
* return void
*/
function set_db ( $dbfile ){
$this->database = $dbfile;
}
/**
* 設置連接資料庫的用戶名和密碼
* @param string $user 用戶名
* @param string $pwd 密碼
*
* @return void
*/
function set_login ( $user , $pwd ){
$this->username=$user;
$this->password=$pwd;
}
/**
* 創建資料庫連接
* @param
* return void
*/
function set_conn ( ){
if($this->conn=odbc_connect("DRIVER=Microsoft Access Driver (*.mdb);DBQ=".realpath($this->database),$this->username,$this->password,SQL_CUR_USE_ODBC )) $this->error=0;
else $this->error=1;
}
/**
* 設置當前操作的數據表
* @param string $tb
*
* @return void
*/
function set_table( $tb ) {
$this->table = $tb;
}
/**
* 返回sql查詢結果
* @param string $sql sql語句
*
* @return #id
*/
function get_result( $sql ){
return odbc_do( $this->conn , $sql );
}
/**
* 獲取查詢的結果
* @param string $sql
*
* @return array 結果的二維數組
*/
function get_result_rows( $sql ){
$array = array() ;
$result = $this->get_result( $sql );
while( $row = odbc_fetch_array( $result ) )
$array[] = $row ;
return $array;
}
/**
* 獲取部分查詢結果
*
* @param Array 數組
* @return Array
*/
function get_query_result( $cols , $tb=null , $order=null , $limit=null , $start=0 ) {
if( empty($tb) ) $tb=$this->table;
else $this->table=$tb;
if( is_array($cols) ) $col="[".implode('],[',$cols)."]";
else $col = $cols;
if( empty($limit) )
$sql = "select $col from $tb";
else
$sql ="select top $limit $col from $tb";;
if( isset($order) ) $sql.=" order by $order";
return $this->get_result_rows($sql);
}
/**
* 執行資料庫插入操作
*
* @param $arr values列表,數組索引為數據表欄位
* @param $tb 操作數據表 如果為空則為設置的當前類的操作表
*/
function insert_info( $arr , $tb = "" ) {
$cols = array_keys( $arr );
$values = array_values( $arr );
if (empty($tb)) $tb = $this->tb;
/*
foreach( $arr as $key => $value ){
$cols[] = $key;
$values[] = $value;
}
*/
$sql = "insert into [$tb]([".implode("],[",$cols)."]) values('".implode("','",$values)."')";
//return $sql;
return $this->get_result( $sql );
}
/**
* 執行資料庫更新操作
*
* @param array $arr 要更新的欄位值 數組索引為表欄位名
* @param array $con 條件數組
* @param string $tb 要操作的數據表
*
*/
function update_info( $arr , $con , $tb = "" ) {
$cols = array();
$conditions = array();
if (empty( $tb )) $tb = $this->tb;
foreach( $arr as $key => $value ){
$cols[] = "[$key]='$value'";
}
foreach( $con as $key => $value ) {
//檢查數據類型
if( is_int($value) || is_float($value) )
$conditions[] = "[$key]=$value";
else
$conditions[] = "[$key]='$value'";
}
$sql = "update [$tb] set ".implode(",",$cols)." where ".implode(" and ",$conditions);
//return $sql;
return $this->get_result( $sql );
}
}
?>
mysql的類如下
class Mysql {
/**
* mysql連接執行類,將sql的執行實現資料庫無關性
*
*
*
*/
/**
* 類變數定義
* @param $conn mysql連接號
* @param $error 錯誤代號
* @param $username/$password 資料庫連接用戶名和密碼
* @param array $err_info 錯誤信息
*
* @param $debuginfo 調試信息
* @param $table 當前操作數據表
*/
var $conn;
var $error;
var $username = "";
var $password = "";
var $host;
var $database;
var $err_info = array(
0 => "沒有錯誤!",
1 => "資料庫連接失敗!",
2 => "sql執行出錯!"
);
var $debuginfo="";
var $table;
function Mysql( $arr=null ) {
if( is_array($arr) ) {//var_mp($arr);
$this->set_login( $arr['host'] , $arr['username'] , $arr['password'] );
$this->set_db( $arr['database'] );
$this->set_conn();
if( isset($this->error) && $this->error!=0 ) die($this->err_info[$this->error]);
}
}
/**
* 設置資料庫名
* @param string $database
*
* return void
*/
function set_db ( $dbfile ){
$this->database = $dbfile;
}
/**
* 設置連接資料庫的用戶名和密碼
* @param string $user 用戶名
* @param string $pwd 密碼
*
* @return void
*/
function set_login ( $host , $user , $pwd ){
$this->host=$host;
$this->username=$user;
$this->password=$pwd;
}
/**
* 創建資料庫連接
* @param
* return void
*/
function set_conn (){
$this->conn=mysql_connect($this->host,$this->username,$this->password );
if ( isset($this->conn) && mysql_select_db($this->database) )
$this->error=0;
else
$this->error=1;
}
/**
* 設置當前操作的數據表
* @param string $tb
*
* @return void
*/
function set_table( $tb ) {
$this->table = $tb;
}
/**
* 返回sql查詢結果
* @param string $sql sql語句
*
* @return #id
*/
function get_result( $sql ){
return mysql_query( $sql , $this->conn );
}
/**
* 獲取查詢的結果
* @param string $sql
*
* @return array 結果的二維數組
*/
function get_result_rows( $sql ){
$array = array() ;
$result = $this->get_result( $sql );
while( $row = mysql_fetch_assoc( $result ) )
$array[] = $row ;
return $array;
}
/**
* 獲取部分查詢結果
*
* @param Array 數組
* @return Array
*/
function get_query_result( $cols , $tb=null , $condition , $order=null , $limit=null , $start=0 ) {
if( empty($tb) ) $tb=$this->table;
else $this->table=$tb;
if( is_array($cols) ) $col="`".implode('`,`',$cols)."`";
else $col = $cols;
if( isset($limit) )
$sql.="select top $limit $col from $tb";
else
$sql = "select $col from $tb";
if( isset($condition) ) $sql.=" where $condition";
if( isset($order) ) $sql.=" order by $order";
if( isset($limit) ) $sql.=" limit $start,$limit";
return $this->get_result_rows($sql);
}
/**
* 執行資料庫插入操作
*
* @param $arr values列表,數組索引為數據表欄位
* @param $tb 操作數據表 如果為空則為設置的當前類的操作表
*/
function insert_info( $arr , $tb = "" ) {
$cols = array_keys( $arr );
$values = array_values( $arr );
if (empty($tb)) $tb = $this->table;
/*
foreach( $arr as $key => $value ){
$cols[] = $key;
$values[] = $value;
}
*/
$sql = "insert into [$tb](`".implode("`,`",$cols)."`) values('".implode("','",$values)."')";
//return $sql;
return $this->get_result( $sql );
}
/**
* 執行資料庫更新操作
*
* @param array $arr 要更新的欄位值 數組索引為表欄位名
* @param array $con 條件數組
* @param string $tb 要操作的數據表
*
*/
function update_info( $arr , $con , $tb = "" ) {
$cols = array();
$conditions = array();
if (empty( $tb )) $tb = $this->table;
if( is_array($arr) ) {
foreach( $arr as $key => $value ){
$cols[] = "`$key`='$value'";
}
foreach( $con as $key => $value ) {
//檢查數據類型
if( is_int($value) || is_float($value) )
$conditions[] = "`$key`=$value";
else
$conditions[] = "`$key`='$value'";
}
$sql = "update `$tb` set ".implode(",",$cols)." where ".implode(" and ",$conditions);
}
else
$sql = "update `$tb` set $arr where $con";
//return $sql;
return $this->get_result( $sql );
}
}
⑸ PHP如何用header設置文件下載頭!感謝~
$filename = '文件路徑';
//文件的類型
header('Content-type: application/pdf');
//下載顯示的名字
header('Content-Disposition: attachment; filename="保存時的文件名.pdf"');
readfile("$filename");
exit;
附伺服器響應HTTP的類型ContentType大全:
".*"="application/octet-stream"
".001"="application/x-001"
".301"="application/x-301"
".323"="text/h323"
".906"="application/x-906"
".907"="drawing/907"
".a11"="application/x-a11"
".acp"="audio/x-mei-aac"
".ai"="application/postscript"
".aif"="audio/aiff"
".aifc"="audio/aiff"
".aiff"="audio/aiff"
".anv"="application/x-anv"
".asa"="text/asa"
".asf"="video/x-ms-asf"
".asp"="text/asp"
".asx"="video/x-ms-asf"
".au"="audio/basic"
".avi"="video/avi"
".awf"="application/vnd.adobe.workflow"
".biz"="text/xml"
".bmp"="application/x-bmp"
".bot"="application/x-bot"
".c4t"="application/x-c4t"
".c90"="application/x-c90"
".cal"="application/x-cals"
".cat"="application/vnd.ms-pki.seccat"
".cdf"="application/x-netcdf"
".cdr"="application/x-cdr"
".cel"="application/x-cel"
".cer"="application/x-x509-ca-cert"
".cg4"="application/x-g4"
".cgm"="application/x-cgm"
".cit"="application/x-cit"
".class"="java/*"
".cml"="text/xml"
".cmp"="application/x-cmp"
".cmx"="application/x-cmx"
".cot"="application/x-cot"
".crl"="application/pkix-crl"
".crt"="application/x-x509-ca-cert"
".csi"="application/x-csi"
".css"="text/css"
".cut"="application/x-cut"
".dbf"="application/x-dbf"
".dbm"="application/x-dbm"
".dbx"="application/x-dbx"
".dcd"="text/xml"
".dcx"="application/x-dcx"
".der"="application/x-x509-ca-cert"
".dgn"="application/x-dgn"
".dib"="application/x-dib"
".dll"="application/x-msdownload"
".doc"="application/msword"
".dot"="application/msword"
".drw"="application/x-drw"
".dtd"="text/xml"
".dwf"="Model/vnd.dwf"
".dwf"="application/x-dwf"
".dwg"="application/x-dwg"
".dxb"="application/x-dxb"
".dxf"="application/x-dxf"
".edn"="application/vnd.adobe.edn"
".emf"="application/x-emf"
".eml"="message/rfc822"
".ent"="text/xml"
".epi"="application/x-epi"
".eps"="application/x-ps"
".eps"="application/postscript"
".etd"="application/x-ebx"
".exe"="application/x-msdownload"
".fax"="image/fax"
".fdf"="application/vnd.fdf"
".fif"="application/fractals"
".fo"="text/xml"
".frm"="application/x-frm"
".g4"="application/x-g4"
".gbr"="application/x-gbr"
".gcd"="application/x-gcd"
".gif"="image/gif"
".gl2"="application/x-gl2"
".gp4"="application/x-gp4"
".hgl"="application/x-hgl"
".hmr"="application/x-hmr"
".hpg"="application/x-hpgl"
".hpl"="application/x-hpl"
".hqx"="application/mac-binhex40"
".hrf"="application/x-hrf"
".hta"="application/hta"
".htc"="text/x-component"
".htm"="text/html"
".html"="text/html"
".htt"="text/webviewhtml"
".htx"="text/html"
".icb"="application/x-icb"
".ico"="image/x-icon"
".ico"="application/x-ico"
".iff"="application/x-iff"
".ig4"="application/x-g4"
".igs"="application/x-igs"
".iii"="application/x-iphone"
".img"="application/x-img"
".ins"="application/x-internet-signup"
".isp"="application/x-internet-signup"
".IVF"="video/x-ivf"
".java"="java/*"
".jfif"="image/jpeg"
".jpe"="image/jpeg"
".jpe"="application/x-jpe"
".jpeg"="image/jpeg"
".jpg"="image/jpeg"
".jpg"="application/x-jpg"
".js"="application/x-javascript"
".jsp"="text/html"
".la1"="audio/x-liquid-file"
".lar"="application/x-laplayer-reg"
".latex"="application/x-latex"
".lavs"="audio/x-liquid-secure"
".lbm"="application/x-lbm"
".lmsff"="audio/x-la-lms"
".ls"="application/x-javascript"
".ltr"="application/x-ltr"
".m1v"="video/x-mpeg"
".m2v"="video/x-mpeg"
".m3u"="audio/mpegurl"
".m4e"="video/mpeg4"
".mac"="application/x-mac"
".man"="application/x-troff-man"
".math"="text/xml"
".mdb"="application/msaccess"
".mdb"="application/x-mdb"
".mfp"="application/x-shockwave-flash"
".mht"="message/rfc822"
".mhtml"="message/rfc822"
".mi"="application/x-mi"
".mid"="audio/mid"
".midi"="audio/mid"
".mil"="application/x-mil"
".mml"="text/xml"
".mnd"="audio/x-musicnet-download"
".mns"="audio/x-musicnet-stream"
".mocha"="application/x-javascript"
".movie"="video/x-sgi-movie"
".mp1"="audio/mp1"
".mp2"="audio/mp2"
".mp2v"="video/mpeg"
".mp3"="audio/mp3"
".mp4"="video/mpeg4"
".mpa"="video/x-mpg"
".mpd"="application/vnd.ms-project"
".mpe"="video/x-mpeg"
".mpeg"="video/mpg"
".mpg"="video/mpg"
".mpga"="audio/rn-mpeg"
".mpp"="application/vnd.ms-project"
".mps"="video/x-mpeg"
".mpt"="application/vnd.ms-project"
".mpv"="video/mpg"
".mpv2"="video/mpeg"
".mpw"="application/vnd.ms-project"
".mpx"="application/vnd.ms-project"
".mtx"="text/xml"
".mxp"="application/x-mmxp"
".net"="image/pnetvue"
".nrf"="application/x-nrf"
".nws"="message/rfc822"
".odc"="text/x-ms-odc"
".out"="application/x-out"
".p10"="application/pkcs10"
".p12"="application/x-pkcs12"
".p7b"="application/x-pkcs7-certificates"
".p7c"="application/pkcs7-mime"
".p7m"="application/pkcs7-mime"
".p7r"="application/x-pkcs7-certreqresp"
".p7s"="application/pkcs7-signature"
".pc5"="application/x-pc5"
".pci"="application/x-pci"
".pcl"="application/x-pcl"
".pcx"="application/x-pcx"
".pdf"="application/pdf"
".pdf"="application/pdf"
".pdx"="application/vnd.adobe.pdx"
".pfx"="application/x-pkcs12"
".pgl"="application/x-pgl"
".pic"="application/x-pic"
".pko"="application/vnd.ms-pki.pko"
".pl"="application/x-perl"
".plg"="text/html"
".pls"="audio/scpls"
".plt"="application/x-plt"
".png"="image/png"
".png"="application/x-png"
".pot"="application/vnd.ms-powerpoint"
".ppa"="application/vnd.ms-powerpoint"
".ppm"="application/x-ppm"
".pps"="application/vnd.ms-powerpoint"
".ppt"="application/vnd.ms-powerpoint"
".ppt"="application/x-ppt"
".pr"="application/x-pr"
".prf"="application/pics-rules"
".prn"="application/x-prn"
".prt"="application/x-prt"
".ps"="application/x-ps"
".ps"="application/postscript"
".ptn"="application/x-ptn"
".pwz"="application/vnd.ms-powerpoint"
".r3t"="text/vnd.rn-realtext3d"
".ra"="audio/vnd.rn-realaudio"
".ram"="audio/x-pn-realaudio"
".ras"="application/x-ras"
".rat"="application/rat-file"
".rdf"="text/xml"
".rec"="application/vnd.rn-recording"
".red"="application/x-red"
".rgb"="application/x-rgb"
".rjs"="application/vnd.rn-realsystem-rjs"
".rjt"="application/vnd.rn-realsystem-rjt"
".rlc"="application/x-rlc"
".rle"="application/x-rle"
".rm"="application/vnd.rn-realmedia"
".rmf"="application/vnd.adobe.rmf"
".rmi"="audio/mid"
".rmj"="application/vnd.rn-realsystem-rmj"
".rmm"="audio/x-pn-realaudio"
".rmp"="application/vnd.rn-rn_music_package"
".rms"="application/vnd.rn-realmedia-secure"
".rmvb"="application/vnd.rn-realmedia-vbr"
".rmx"="application/vnd.rn-realsystem-rmx"
".rnx"="application/vnd.rn-realplayer"
".rp"="image/vnd.rn-realpix"
".rpm"="audio/x-pn-realaudio-plugin"
".rsml"="application/vnd.rn-rsml"
".rt"="text/vnd.rn-realtext"
".rtf"="application/msword"
".rtf"="application/x-rtf"
".rv"="video/vnd.rn-realvideo"
".sam"="application/x-sam"
".sat"="application/x-sat"
".sdp"="application/sdp"
".sdw"="application/x-sdw"
".sit"="application/x-stuffit"
".slb"="application/x-slb"
".sld"="application/x-sld"
".slk"="drawing/x-slk"
".smi"="application/smil"
".smil"="application/smil"
".smk"="application/x-smk"
".snd"="audio/basic"
".sol"="text/plain"
".sor"="text/plain"
".spc"="application/x-pkcs7-certificates"
".spl"="application/futuresplash"
".spp"="text/xml"
".ssm"="application/streamingmedia"
".sst"="application/vnd.ms-pki.certstore"
".stl"="application/vnd.ms-pki.stl"
".stm"="text/html"
".sty"="application/x-sty"
".svg"="text/xml"
".swf"="application/x-shockwave-flash"
".tdf"="application/x-tdf"
".tg4"="application/x-tg4"
".tga"="application/x-tga"
".tif"="image/tiff"
".tif"="application/x-tif"
".tiff"="image/tiff"
".tld"="text/xml"
".top"="drawing/x-top"
".torrent"="application/x-bittorrent"
".tsd"="text/xml"
".txt"="text/plain"
".uin"="application/x-icq"
".uls"="text/iuls"
".vcf"="text/x-vcard"
".vda"="application/x-vda"
".vdx"="application/vnd.visio"
".vml"="text/xml"
".vpg"="application/x-vpeg005"
".vsd"="application/vnd.visio"
".vsd"="application/x-vsd"
".vss"="application/vnd.visio"
".vst"="application/vnd.visio"
".vst"="application/x-vst"
".vsw"="application/vnd.visio"
".vsx"="application/vnd.visio"
".vtx"="application/vnd.visio"
".vxml"="text/xml"
".wav"="audio/wav"
".wax"="audio/x-ms-wax"
".wb1"="application/x-wb1"
".wb2"="application/x-wb2"
".wb3"="application/x-wb3"
".wbmp"="image/vnd.wap.wbmp"
".wiz"="application/msword"
".wk3"="application/x-wk3"
".wk4"="application/x-wk4"
".wkq"="application/x-wkq"
".wks"="application/x-wks"
".wm"="video/x-ms-wm"
".wma"="audio/x-ms-wma"
".wmd"="application/x-ms-wmd"
".wmf"="application/x-wmf"
".wml"="text/vnd.wap.wml"
".wmv"="video/x-ms-wmv"
".wmx"="video/x-ms-wmx"
".wmz"="application/x-ms-wmz"
".wp6"="application/x-wp6"
".wpd"="application/x-wpd"
".wpg"="application/x-wpg"
".wpl"="application/vnd.ms-wpl"
".wq1"="application/x-wq1"
".wr1"="application/x-wr1"
".wri"="application/x-wri"
".wrk"="application/x-wrk"
".ws"="application/x-ws"
".ws2"="application/x-ws"
".wsc"="text/scriptlet"
".wsdl"="text/xml"
".wvx"="video/x-ms-wvx"
".xdp"="application/vnd.adobe.xdp"
".xdr"="text/xml"
".xfd"="application/vnd.adobe.xfd"
".xfdf"="application/vnd.adobe.xfdf"
".xhtml"="text/html"
".xls"="application/vnd.ms-excel"
".xls"="application/x-xls"
".xlw"="application/x-xlw"
".xml"="text/xml"
".xpl"="audio/scpls"
".xq"="text/xml"
".xql"="text/xml"
".xquery"="text/xml"
".xsd"="text/xml"
".xsl"="text/xml"
".xslt"="text/xml"
".xwd"="application/x-xwd"
".x_b"="application/x-x_b"
".x_t"="application/x-x_t"
⑹ php的mdb2的問題
不是自帶的文件,PHP不自帶任何PHP文件,這是你自己寫的。
⑺ php 鏈接 .mdb資料庫,並讀取
PHP和經典的ACCESS資料庫同樣能達到較好的效果,不過採用ODBC的方式來連接該access我個人不主張這樣做,因為現在虛擬機不可能提供odbc連接,推薦使用PHP的ADODB對象來連接該資料庫
⑻ 擴展名為.mdb是叫什麼名字的資料庫在哪裡網址可以下載
mdb(Microsoft Database)格式是Microsoft Access軟體使用的一種存畝嘩配儲格式,因其對數據迅指操作的方便性,常用在一些中小型程序中。mdb格式的資料庫是一種關系資料庫。MDB View 可以在沒有安裝 Microsoft Access情況下進行閱讀MDB資料庫文件蘆空。下載地址: http://dl.it.21cn.com/downit.php?id=42741