版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
互動網頁與資料庫程式設計研習講義目錄系統安裝(FreeBSD篇)
FreeBSD作業系統安裝
使用Source安裝PHP4
使用Ports安裝PHP4系統安裝(Windows篇)
安裝PHP4+ApacheForWin98
安裝PHP4+PWSForWin98
安裝PHP4+IISForWinNTPHP程式設計
參考文件
準備工作
PHP語法
作業研習日期:90年5月15日研習時數:六小時研習地點:蘆洲國中講師:劉有義陳東義Apache+PHP4+Mysql+phpMyAdmin系統安裝(FreeBSD篇)Apache官方網站:PHP官方網站:MySQL官方網站:phpMyAdmin網站:/projects/phpMyAdmin/index.htmlFreeBSD介紹:簡單地來說,FreeBSD是一套根據U.C.Berkeley's4.4BSD-litereleaseforthei386platform所完成的UN*X-like作業系統。它同時也間接使用了WilliamJolitz移植到i386上的U.C.Berkeley'sNet/2,也就是386BSD。不過現在386BSD的程式碼只剩下極少數還留存在FreeBSD中。您可以在FreeBSD首頁找到有關什麼是FreeBSD以及它可以幫您做些什麼的相關資訊。FreeBSD已被廣泛地被世界各地的公司行號,ISP,研究人員,電腦專家,學生,以及家庭用戶所使用,用在工作,教育,以及娛樂上。您可以在FreeBSDGallery看到一些有關他們的資料。採用FreeBSD的好處:完全免費完整原始程式碼取得移植軟體容易優良穩定性有完整的coreteam
(coreteam是一個專門對原始程式碼做發展跟維護的組織)有了完整的原始程式碼,FreeBSD是研究作業系統及電腦科學的極佳環境。免費的FreeBSD也使得在遠端的合作小組不必擔心版權及系統開放性的問題,而能自在的交流。摘自:.tw/~ncvs/zh-big5-FAQ/FAQ.html系統安裝使用光碟片開機安裝。如果無法用光碟開機,必須製作軟碟開機片:
步驟如下:在dos環境於光碟片找到3個檔rawrite.exe,kern.flp,mfsroot.flp。假設3個檔都copy到c:\temp放第一張磁片入A槽:c:\temp\rawritekern.flpa:放第二張磁片入A槽c:\temp\rawritemfsroot.flpa:先用kern.flp開機,再依指示放入另一片。作業系統啟動核心設定
首次安裝依建議值選擇第二項目。KernelConfigurationMenuSkipKernelConfigurationAndContinuewithinstallationStartKernelConfigurationinfull-screenvisualmodeStartKernelConfigurationinCLIMode改變系統週邊設定值=>不更改按q離開。進入安裝選單
選擇第三項,自定安裝/stand/sysinstallMainMenuWelcometotheFreeBSDinstallationandconfigurationtool.Pleaseselectoneoftheoptionsbelowbyusingthearrowkeysortypingthefirstcharacteroftheoptionnameyou'reinterestedin.Invokeanoptionbypressing[ENTER]or[TAB-ENTER]toexittheinstallation.[1]UsageQuickstart-Howtousethismenusystem[2]NoviceBeginanoviceinstallation(forbeginners)[3]ExpressBeginaquickinstallation(fortheimpatient)[4]CustomBeginacustominstallation(forexperts)[5]ConfigureDopost-installconfigurationofFreeBSD[D]DocInstallationinstructions,README,etc.[K]KeymapSelectkeyboardtype[O]OptionsView/Setvariousinstallationoptions[F]FixitEnterrepairmodewithCDROM/floppyorstartshell[U]UpgradeUpgradeanexistingsystem[L]LoadConfigLoaddefaultinstallconfiguration[I]IndexGlossaryoffunctions[Select]ExitInstall分割磁區D=DeleteSlice(若有存在的Partition,請移動光棒到該磁區再行刪除)A=UseEntireDisk(硬碟全部給FreeBSD使用)Q=Finish(*)StandardInstallastandardMBR(nobootmanager)光棒移到該選項,按Space鍵選擇再按Enter確定。指定Slice大小及給予掛入點名稱A=AutoDefaultsforall!Q=Finish安裝套件選單ChooseDistributionsB)Custom(利用Space鍵選擇,選中者有[X]記號)除了[]src
[]Xfree86不選,其餘均安裝然後選擇兩次Exit離開選擇Source來源1)CDROM(偵測光碟沒問題則自動退回上一選單)開始安裝不待詢問自動安裝[Yes]等待二十分鐘系統安裝完成之後出現:Visitthegeneralconfigurationmenuforachancetosetanylastoption?[Yes]FreeBSDConfigurationMenuRootPassword設定管理者密碼UserManagement(增加一個使用者可以由遠端管理網站)
adduser(使用tab鍵切換位置)
loginid:master
Uid:1001
Group:wheel(設為wheel這個group才可以變身root)
FullName:隨便打
Membergroups:可以省略
Homedirectory:/home/master(使用者簽入的家目錄)
loginshell:/bin/tcsh(使用者簽入的shell)
(tcsh有doskey及tab鍵幫助輸入功能)
ExitTimezone
IsthismachineCMOScolocksettoUTC?[No]
5)Asia
43)Taiwan
[Yes]Networking(安裝網路介面,設定無誤才能上網)
1)Interfaces
選網路介面(rl0)
IPV6=>NO
DHCP=>NO
Host:dxx(設定主機名稱)
Domain:.tw(主機所在網域)
Gateway:8(router的IP)
Nameserver:(輸入Nameserver的IP)
IPAddress:203.71.169.xxx(這台主機的ip)
Netmask:(子網路遮罩)
rl0interfaceuprightnow?[Yes]
X)Exit離開選單選[ExitInstall]重新啟動電腦,記得拿出光碟片。
如果要再安裝package或改變系統設定可以root身份
執行/stand/sysinstall常用指令重新開機後,以root登入系統查看硬碟容量
df-k檔案系統總容量(1k)使用剩餘使用率掛入點Filesystem1K-blocksUsedAvailCapacityMountedon/dev/ad0s1a99183288436240632%//dev/ad0s1f1615823234832125172616%/usr/dev/ad0s1e19815129181011%/varprocfs440100%/proc註:ide硬碟:第一顆=>ad0第二顆=>ad1‧‧‧
scsi硬碟:第一顆=>da0第二顆=>da1‧‧‧列出檔案
ls只顯示檔名(注意unix的檔名,大小寫是不同的)
ls-a可顯示隱藏檔(在unix句點(.)開頭的檔案為隱藏檔)
ls-al列出詳細檔案資訊
total10(共10個檔案)drwxr-xr-x2masterwheel512May820:24.drwxr-xr-x3rootwheel512May820:24..-rw-r--r--1masterwheel628May820:24.cshrc-rw-r--r--1masterwheel299May820:24.login-rw-r--r--1masterwheel160May820:24.login_conf-rw1masterwheel371May820:24.mail_aliases-rw-r--r--1masterwheel331May820:24.mailrc-rw-r--r--1masterwheel722May820:24.profile-rw1masterwheel276May820:24.rhosts-rw-r--r--1masterwheel852May820:24.shrc說明:
前面十個小欄位如-rw-r--r--第一欄為屬性其餘9位分成3組
第一組是檔案所有者的讀寫權(r=readw=writex=excute),第二組為同一群組的讀寫權,第三組為其他群組的讀寫權d=directorymaster=檔案擁有者wheel=所屬群組數字代表檔案大小建檔時間日期檔名測試網路
ping8
按ctrl+c中斷網路通暢訊息如下:64bytesfrom8:icmp_seq=0ttl=255time=2.150ms64bytesfrom8:icmp_seq=1ttl=255time=2.056ms64bytesfrom8:icmp_seq=2ttl=255time=2.655ms打造作業環境
ee/etc/csh.cshrc加入以下幾行setprompt="%B%m[%/]-%n-"#改變提示符號setenvLANGzh_TW.Big5#可輸入中文aliastelnet'telnet-8'#簽入遠端可打中文setenvEDITOR/usr/bin/ee#設定編輯器為eesetpath=($path~~/bin.)#增加path索引如果您懶得打字請用root身份執行下兩行
fetch-o/etc/csh.cshrc.tw/Unix/FreeBSD/csh.cshrc
fetch-o~/.cshrc.tw/Unix/FreeBSD/root.cshrc
重新login新的設定值才生效。
註:fetch是抓取單一檔案好用的指令,可以manfetch得到更多使用說明。自行熟悉底下指令,以利Server安裝,可以用man指令求助su變身成rootmkdir建立資料夾(目錄)cd切換資料夾tarunix下解壓縮與壓縮檔案指令cp拷貝make編譯source,依照Makefile檔編譯Apache+MySQL+PHP4+phpMyAdmin以source安裝(一)、安裝mysql-3.23.38.tar.gzsurootmkdir-p/usr/local/srccd/usr/local/srcfetch.tw/Unix/Sql/mysql-3.23.38.tar.gztar-zxvfmysql-3.23.38.tar.gzcdmysql-3.23.38./configure--help|more
#找出需要的選項,參考/usr/local/src/mysql-3.23.38/Docs
./configure--with-named-thread-libs=-lc_r--with-charset=big5make;makeinstall
如果重新編譯,必須rmconfig.cache再makeclean,再回到步驟7/usr/local/src/mysql-3.23.38/scripts/mysql_install_db
(此script在目錄/usr/local/var下建立資料庫,每一database建立一個資料夾,
內定有mysql及test兩個database,
資料庫備份可下指令tarchvfz檔名.tar.gz資料庫資料夾名稱)啟動mysqld(root身份)
/usr/local/bin/safe_mysqld&
若測試無誤可於/etc/rc.local加入此行,讓開機自動啟動查看mysqld版本
/usr/local/bin/mysqladminversion(二)、安裝Apache+php
(依照php-4.0.5/INSTALLQUICKINSTALL段落(Static)安裝)cd/usr/local/srcfetch.tw/Unix/WWW/WebServer/apache_1.3.19.tar.gztar-zxvfapache_1.3.19.tar.gzcdapache_1.3.19./configure--prefix=/usr/local/apachecd..fetch.tw/freebsd/gd1.3.tar.gztar–zxvfgd1.3.tar.gzcdgd1.3makecd..fetch.tw/freebsd/php-4.0.5.tar.gztar-zxvfphp-4.0.5.tar.gzcdphp-4.0.5/./configure--with-apache=../apache_1.3.19--enable-ftp\
--enable-track-vars--with-mysql--with-imap\
--with-gd=../gd1.3
#寫成一行make;makeinstallcd../apache_1.3.19./configure--prefix=/usr/local/apache--activate-module=src/modules/php4/libphp4.a
#寫成一行make;makeinstallcp/usr/local/src/php-4.0.5/php.ini-dist/usr/local/lib/php.inicd/usr/local/apache/conf/eehttpd.conf#將底下兩行啟用(井字號去掉,第一行後面加入.php3)
#forphp4
AddTypeapplication/x-httpd-php.php.php3
AddTypeapplication/x-httpd-php-source.phps啟動apache
/usr/local/apache/bin/apachectlstart
#在/etc/rc.local加入這行以便開機起動cd/usr/local/apache/htdocs/eetest.php內容如下
<?php
phpinfo();
?>測試
使用Browser輸入網址
http://203.71.169.xxx/test.php
可以看到php畫面(三)、安裝phpMyAdmincd/usr/local/apache/htdocsfetch.tw/freebsd/phpMyAdmin_2.1.0php.tar.gztar-zxvfphpMyAdmin_2.1.0php.tar.gz中文化
cdphpMyAdmin修改config.inc.php
#require("english.inc.php");
require("chinese_big5.inc.php");
修改chinese_big5.inc.php加入底下兩行
$strTableComments="Tablecomments";
$strPrintView="Printview";測試
使用Browser輸入網址
http://203.71.169.xxx/phpMyAdmin/index.php
可以看到phpMyAdmin畫面phpMyAdmin一定要設管理密碼,請自行設定(四)、順便安裝線上管理程式webmin-0.85.tar.gz(/webmin/)cd/usr/local/srcfetch.tw/freebsd/webmin-0.85.tar.gztar-zxvfwebmin-0.85.tar.gzcdwebmin-0.85./setup.sh
Configfiledirectory[/etc/webmin]:
Logfiledirectory[/var/webmin]:
Fullpathtoperl(default/usr/bin/perl):
Operatingsystem:22
Version:9
Webserverport(default10000):
Loginname(defaultadmin):master
Loginpassword:
Passwordagain:
Webserverhostname(default.tw):
StartWebminatboottime(y/n):y測試
連結http://203.71.169.xxx:10000/
WebminConfiguration=>Language可以改變語系為繁體中文若要移除webmin
/etc/webmin/uninstall.shApache+MySQL+PHP4+phpMyAdmin採用port方式安裝ee/etc/make.conf增加跟自己連線速度快的主機
MASTER_SITE_BACKUP?=\
/pub/distfiles/${DIST_SUBDIR}/\
/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\
/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\
/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\
/FreeBSD/distfiles/${DIST_SUBDIR}/\
/OS/FreeBSD/distfiles/${DIST_SUBDIR}/\
/FreeBSD/distfiles/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?=${MASTER_SITE_BACKUP}更新port版本
pkg_add-vcvsup-bin-16.1.tgz(root/stand/sysinstall利用cdrom安裝)
cp/usr/share/examples/cvsup/ports-supfile/usr
vi/usr/ports-supfile修改
*defaulthost=ftp2.tw.FreeBSD.org
/usr/local/bin/cvsup-g-L2/usr/ports-supfile
(約10分鐘完成,隨著版本差異越大越久)安裝MySQL(hostnamemustbenamed)
cd/usr/ports/databases/mysql323-server/
eeMakefile#修改設定
CONFIGURE_ARGS=
--with-charset=big5\#增加一行對中文的支援
makeinstall
(約20分鐘完成)安裝Apache+PHP4
cd/usr/ports/www/apache13
makeinstall
cd/usr/ports/www/mod_php4
makeinstall
出現選擇連結項目=>選GDMySQLIMAPFTP安裝phpMyAdmin
cd/usr/local/www/data
fetch.tw/freebsd/phpMyAdmin_2.1.0php.tar.gz
tar-zxvfphpMyAdmin_2.1.0php.tar.gz測試
reboot後
連結http://203.71.169.xxx/phpMyAdmin/index.php可以看見mysql管理介面PHP4+MySQL+Apache/PWS/IIS安裝(Windows篇)安裝Apache+php+Mysql+phpMyAdminForWin98安裝mysql-3.23.37-win.zip
檔案下載=>/downloads/mysql-3.23.html
解壓縮到暫存資料夾後,執行setup.exe依說明安裝。
註:此次研習所使用檔案均放置在\\dserver\php研習\安裝apache_1.3.19-win32-no_src-r2.msi
檔案下載=>/dist/httpd/binaries/win32
安裝目錄內定為C:\ProgramFiles\ApacheGroup\Apache
注意設定檔在~conf\httpd.conf,網頁及php在~htdocs\下設計安裝php-4.0.5-Win32.zip
檔案下載=>/downloads.php
解壓縮到c:\php後,依照install.txt內forapache段落安裝。安裝phpMyAdmin_2.1.0php.zip
檔案下載=>/projects/phpMyAdmin/index.html
直接解壓縮於C:\ProgramFiles\ApacheGroup\Apache\htdocs\
修改為中文顯示
在~phpMyAdmin\config.inc.php找到require("english.inc.php");
換成require("chinese_big5.inc.php");測試
先執行C:\mysql\bin\mysqld.exe,再跑ApacheinConsole
IEBrowser輸入http://203.71.169.xxx/phpMyAdmin/index.php可以看到mysql管理介面註:在/projects/phptriad有包裝好的程式,一次安裝所有軟體,不必設定,直接使用。安裝PWS+php+Mysql+phpMyAdminForWin98安裝mysql-3.23.37-win.zip
檔案下載=>/downloads/mysql-3.23.html
解壓縮到暫存資料夾後,執行setup.exe依說明安裝。安裝PWS(原始程式在win98source光碟\add-one\pws)
此次研習安裝路徑為\\dserver\php研習\PWS\setup.exe安裝frontpage2000serverextension安裝php-4.0.5-Win32.zip
檔案下載=>/downloads.php
解壓縮到c:\php後,依照install.txt內forPWS段落安裝
修改C:\php\sapi\pws-php4cgi.reg路徑
=>pws-php4cgi.reg(雙擊滑鼠左鍵)
修改C:\php\sapi\pws-php4isapi.reg路徑
=>pws-php4isapi.reg(雙擊滑鼠左鍵)個人web管理員=>進階=>新增=>如下圖記得勾選執行選項
phpMyAdmin_2.1.0php.zip
=>/projects/phpMyAdmin/index.html
直接解壓縮於C:\Inetpub\wwwroot測試
先執行C:\mysql\bin\mysqld.exe,再跑PWS
Browser輸入http://203.71.169.xxx/phpMyAdmin/index.php可以看到mysql管理介面安裝Apache+php+Mysql+phpMyAdminForNT/2000安裝mysql-3.23.37-win.zip解開php-4.0.5-Win32.zip=>c:\php將c:\php\php.ini-dist
複製改名為c:\winnt\php.iniInternet服務管理員=>webservername=>內容=>isapi篩選器=>
新增=>php
〔主目錄〕這一頁=>〔設定〕=>〔新增〕
解開phpMyAdmin_2.1.0php.zip=>C:\InetPub\wwwrootTest!!
執行C:\mysql\bin\mysqld-nt--install
啟用=>NETSTARTmysql
停止=>NETSTOPmysql
http://yourhost.domain/phpMyAdmin/index.phpOK!PHP程式設計參考文件官方版:/manual/en/(英文)PHP_BIBLE:http://php.wilson.gs/bible/index.php(中文)Php_script:/PHP/Scripts_and_Programs/(英文)準備工作先熟悉HTML基本語法。php程式可以使用任何一種純文字編輯器編寫(如windows記事本),但為了方便修改程式,最好準備能夠搜尋字串、顯示行列座標的純文字編輯器如:UltraEdit,/PHPEd/。
在Unix環境則可使用vi或ee。PHP語法結構:
php程式必須以特別的符號開始及結束,如下1.<?echo("最簡單的方法\n");?>
2.<?phpecho("要支援XHTMLorXML文件,用這種!\n");?>
3.<scriptlanguage="php">
echo("這個方法FrontPage會竄改你的程式");
</script>
4.<%echo("php3.0.4以上版本開始支援");%>說明:以上四種方法都可以,考慮未來趨勢(PEAR)建議用第2種。
若使用第四種,必須修改php.ini將asp_tags設為on程式內一行的註解以//開始,段落註解以/*……..*/包住。可分行撰寫,敘述後面加分號(;),同一行可以有多個敘述,均以分號隔開。
第一個程式<html><body>一般文字可以直接輸出!<br><br><?php//雙斜線後面是註解,不會被看到。echo“變數由php控制<br><br>\n”;//echo是印出資料函式$a=3;$A=’+’;//字元要用引號‘’或””括住$b=4;$c=$a+$b;echo$a.$A.$b.”=”.$c;?></body></html>說明:變數前面加$號,變數名稱大小寫視為不同變數。數值變數直接給數值,字串變數的值需以單(’)或雙(“)引號括住變數使用可以不必宣告,以存入的值決定變數型態,例如$a為整數,$A為字串。“\n”控制原始碼換行,不改變網頁輸出結果。變數結合以句點.連接。問題:在IE檢視原始碼與php原始程式有何不同?單引號與雙引號括住的資料有何不同,試試印出’$a’;與”$a”;?變數型態
01整數integer
$a=
520;//10進位integer
$b=0123;//8進位integer等於十進位83
$c
=
0x10;//16進位integer等於十進位16
02浮點數double
$float1
=
13.8;
$float2
=
1.4E+2;//等於140
03字串string
$str=“我是字串”;
不論單一字元或一串文字均用引號括住,特殊字元前面加反斜線\
特殊字元如下表:\n換行\r(CRor0x0DinASCII)\t等於按TAB定位鍵\\反斜線\$$號\”雙引號\[0-7]{1,3}八進位ASCII碼,例如”\101”表示字母A\x[0-9A-Fa-f]{1,2}十六進位ASCII碼,例如”\x42”表示字母BPHP4新增以<<<表示字串(Heredocstringquoting),可以定義一大推字串給某一字串變數,例如:
<?php
$str=<<<HDS//這裡要斷行Exampleofstringspanningmultiplelinesusingheredocsyntax.HDS;//獨立一行echo$str;
?>練習:上機測試底下敘述,並了解語法?
<?php/*Appendingtoit.*/$str=$str."withsomemoretext";/*Anotherwaytoappend,includesanescapednewline.*/$str.="andanewlineattheend.\n";/*Thisstringwillendupbeing'<p>Number:9</p>'*/$num=9;$str="<p>Number:$num</p>";/*Thisonewillbe'<p>Number:$num</p>'*/$num=9;$str='<p>Number:$num</p>';/*Getthefirstcharacterofastring*/$str='Thisisatest.';$first=$str[0];/*Getthelastcharacterofastring.*/$str='Thisisstillatest.';$last=$str[strlen($str)-1];//strlen($str)是求字串長度函式,[]代表陣列引數?>04陣列array//一維陣列$a[0]="abc";//陣列引數(index)由0開始$a[1]="def";$b["foo"]=13;//引數可為字串$a[]="hello";//$a[2]=="hello",為指定引數則自動遞增$a[]="world";//$a[3]=="world"//多維陣列$a[1][0]=$f;//二維$a["foo"][2]=$f;$a[3]["bar"]=$f;$a["foo"][4]["bar"][0]=$f;//四維//陣列函式//Example1:$a["color"] ="red";$a["taste"] ="sweet";$a["shape"] ="round";$a["name"] ="apple";$a[3] =4;//Example2:$a=array("color"=>"red","taste"=>"sweet","shape"=>"round","name"=>"apple",3=>4);//多維陣列函式<?php$a=array("apple"=>array("color"=>"red","taste"=>"sweet","shape"=>"round"),"orange"=>array("color"=>"orange","taste"=>"tart","shape"=>"round"),"banana"=>array("color"=>"yellow","taste"=>"paste-y","shape"=>"banana-shaped"));echo$a["apple"]["taste"];#印出"sweet"?>05物件object物件類別需先定義,使用物件要宣告。<?phpclassCart{var$items;//Itemsinourshoppingcart//Add$numarticlesof$artnrtothecartfunctionadd_item($artnr,$num){$this->items[$artnr]+=$num;}//Take$numarticlesof$artnroutofthecartfunctionremove_item($artnr,$num){if($this->items[$artnr]>$num){$this->items[$artnr]-=$num;returntrue;}else{returnfalse;}}}$cart=newCart;//宣告$cart為Cart物件$cart->add_item("10",1);//訂購第10樣商品1份?>變數型態轉換
$foo=1+"10.5";//$fooisdouble(11.5)$foo=1+"-1.3e3";//$fooisdouble(-1299)$foo=1+"bob-1.3e3";//$fooisinteger(1)$foo=1+"bob3";//$fooisinteger(1)$foo=1+"10SmallPigs";//$fooisinteger(11)$foo="10.0pigs"+1;//$fooisinteger(11)$foo="10.0pigs"+1.0;//$fooisdouble(11)$foo="0";//$fooisstring(ASCII48)$foo++;//$fooisthestring"1"(ASCII49)$foo+=1;//$fooisnowaninteger(2)$foo=$foo+1.3;//$fooisnowadouble(3.3)$foo=5+"10LittlePiggies";//$fooisinteger(15)$foo=5+"10SmallPigs";//$fooisinteger(15)可以這行分段印出結果
echo"\$foo==$foo;typeis".gettype($foo)."<br>\n";////TypeCasting在變數前面加(變數型態),可以改變Type$var='ciao';$arr=(array)$var;echo$arr[0];//outputs'ciao'$var='ciao';$obj=(object)$var;echo$obj->scalar;//outputs'ciao'常數
常數命名通常使用英文字母大寫,定義方法如下:<?phpdefine("CONSTANT","Helloworld.");echoCONSTANT;//outputs"Helloworld."?>PHP定義一些常數__FILE__,__LINE__,PHP_VERSION,PHP_OS,TRUE,FALSE,E_ERROR,E_WARNING,E_PARSE,E_NOTICE,E_ALL請自行了解定義。運算元
數值運算元$a+$b加$a-$b減$a*$b乘$a/$b除$a%$b取餘數位元運算子$a&$bAnd4&1->0$a|$bOr4|1->5$a^$bXor8^9->1~$aNot~4->-5$a<<$bShiftleft1<<3->8每次乘2$a>>$bShiftright5>>2->1每次減2比較運算子$a==$b相等$a===$b相等且同type(PHP4)$a!=$b不相等$a!==$b不相等或不同type(PHP4)$a<$b小於$a>$b大於$a<=$b小於等於$a>=$b大於等於?:三元運算(判斷式)?成立:不成立執行系統指令運算子``反單引號<?php$output=`ls-al`;//windows改成`dir`echo"<pre>$output</pre>";?>遞增減運算子++$a先加再運算$a++運算完再加--$a先減再運算$a--運算完再減邏輯運算子$aand$bAnd$aor$bOr$axor$bXor!$aNot$a&&$bAnd$a||$bOr其它運算子@不顯示錯誤訊息(加在函數前)&變數的位址指標(加在變數前)=>陣列的元素值->物件的方法或屬性.資料串接$this物件內的呼叫器運算優先權(OperatorsPrecedence)當運算式有一個以上算符時,例如:$a=1+12/3;,就必須考慮算符執行的優先順序,上例$a=5,因為”/”的優先序比”+”先,另外考慮執行方向,像除法,分子分母順序調換,結果不一樣,對於這種執行方向的判別,稱為結合性(Associativity)。下表中越往下優先權越高,同一列precedence相同。結合性運算元left,leftorleftxorleftandrightprintleft=+=-=*=/=.=%=&=|=^=~=<<=>>=left?:left||left&&left|left^left&non-associative==!====!==non-associative<<=>>=left<<>>left+-.left*/%right!~++--(int)(double)(string)(array)(object)@right[non-associativenew練習(開始沒有初值$a=?,$b=?)敘述$a=?$b=?$b+=5;5$a+=$b;55$b=$a+=10;1515$a=($b>0)?3:6;315$b=“abc”;$a=&$b;abcabc$b=”def”;defdef$b=$a[1];ee$a=&$SERVER_PORT;$b=“\x37”;807$b+=$a--;7987SERVER_PORT是環境變數,使用時前面加$,環境變數可以使用phpinfo();獲得。流程控制if-else-elseifif($a>$b){print"aisbiggerthanb";$b=$a;}if($a>$b){print"aisbiggerthanb";}else{print"aisNOTbiggerthanb";}if($a>$b){print"aisbiggerthanb";}elseif($a==$b){print"aisequaltob";}else{print"aissmallerthanb";}或if($a>$b):print"aisbiggerthanb";elseif($a==$b):print"aisequaltob";else:print"aissmallerthanb";endif;練習:準備兩份網頁分別為中文版與英文版,寫一個程式判斷使用者的語系,送出對應的網頁。
(提示:利用環境變數HTTP_ACCEPT_LANGUAGE,及
PHPManualXXVIII.HTTPfunctionsHeader();函式)。
參考答案:
<?php
if($HTTP_ACCEPT_LANGUAGE=="zh-tw")
Header("Location:/index_big5.html");
else
Header("Location:/index_en.html");
?>判斷使用者的瀏覽器類型,送出對應的網頁。
(提示:利用PHPManualLXXIV.Stringfunctionsstrstr();函式)。while$i=1;while($i<=10){print$i++;/*theprintedvaluewouldbe$ibeforetheincrement(post-increment)*/}do..while$i=0;do{print$i;}while($i>0);forfor($i=1;$i<=10;$i++){print$i;}練習:利用while或for迴圈將字串$str=”TodayisTuesday.”反過來印出!(提示:使用array及PHPManualLXXIV.Stringfunctionsstrlen();函式)。foreach(PHP4提供)/*foreachexample1:valueonly*/$a=array(1,2,3,17);foreach($aas$v){print"Currentvalueof\$a:$v.\n";}/*foreachexample2:value(withkeyprintedforillustration)*/$a=array(1,2,3,17);$i=0;/*forillustrativepurposesonly*/foreach($aas$v){print"\$a[$i]=>$v.\n";}/*foreachexample3:keyandvalue*/$a=array("one"=>1,"two"=>2,"three"=>3,"seventeen"=>17);foreach($aas$k=>$v){print"\$a[$k]=>$v.\n";}switchswitch($i){case0:print"iequals0";break;case1:print"iequals1";break;case2:print"iequals2";break;default:print"iisnotequalto0,1or2";}break;//跳脫一層控制迴圈continue;//忽略迴圈內底下的敘述,回到此迴圈第一行require('header.php');//引用檔案include(“modify.inc”);//引用的檔案可以有判斷或迴圈的敘述require_once("config.php");//只允許引用檔案一次,PHP4才有include_once(“add.inc”);//同上函式
使用語法functionfoo($arg_1,$arg_2,...,$arg_n){//foo函式名稱不分大小寫echo"Examplefunction.\n";return$retval;}//$ret=foo($arg_1,$arg_2,...,$arg_n)//叫用傳址呼叫functionadd_some_extra(&$string){$string.='andsomethingextra.';}$str='Thisisastring,';add_some_extra($str);echo$str;//outputs'Thisisastring,andsomethingextra.'傳回多個值functionsmall_numbers(){returnarray(0,1,2);}list($zero,$one,$two)=small_numbers();變數函式<?phpfunctionfoo(){echo"Infoo()<br>\n";}functionbar($arg=''){echo"Inbar();argumentwas'$arg'.<br>\n";}$func='foo';$func();$func='bar';$func('test');?>變數使用
預先定義的變數
使用phpinfo();印出的資訊,可利用變數直接取用,例如:要知道使用端上網IP只要印出$REMOTE_ADDR的值。變數有效範圍<?php$a=7;//全域變數$b=3;//全域變數FunctionSum(){global$a;//全域變數,在函式內要宣告,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年马克思主义基本原理题库及答案
- 2026 年重阳敬老传承孝老爱亲美德课件
- 2026 年烈士纪念日传承红色血脉不负英雄期许课件
- 网络安全知识宣传教育课件(共23张)
- 电控设备组调工冲突解决竞赛考核试卷含答案
- 胶带机移设机司机安全知识竞赛水平考核试卷含答案
- 防爆电气装配工安全检查强化考核试卷含答案
- 低压成套设备装配配线工岗前内部考核试卷含答案
- 灯用化学配料工改进知识考核试卷含答案
- 天然气提氦操作工安全管理强化考核试卷含答案
- 中国肿瘤药物治疗相关恶心呕吐防治专家共识(2022年版)解读
- GB 21258-2024燃煤发电机组单位产品能源消耗限额
- 大柳塔煤矿矿山地质环境保护与土地复垦方案
- 呼吸功能锻炼操作评分标准
- 电工作业安全培训
- 学校桌椅采购投标方案
- 全过程工程咨询工作总结报告(全过程咨询)
- 大学毕业论文-克孜尔河引水枢纽工程项目初步设计报告
- 中职单招专业职业技能考试题库畜牧兽医+动物医学+宠物医疗技术+宠物养护与训
- 二年级上册音乐全册教案(湖南文艺出版社)
- 2023年湖南省公民信息管理局招聘笔试备考试题及答案解析
评论
0/150
提交评论