




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
互動(dòng)網(wǎng)頁(yè)與資料庫(kù)程式設(shè)計(jì)研習(xí)講義目錄系統(tǒng)安裝(FreeBSD篇)
FreeBSD作業(yè)系統(tǒng)安裝
使用Source安裝PHP4
使用Ports安裝PHP4系統(tǒng)安裝(Windows篇)
安裝PHP4+ApacheForWin98
安裝PHP4+PWSForWin98
安裝PHP4+IISForWinNTPHP程式設(shè)計(jì)
參考文件
準(zhǔn)備工作
PHP語(yǔ)法
作業(yè)研習(xí)日期:90年5月15日研習(xí)時(shí)數(shù):六小時(shí)研習(xí)地點(diǎn):蘆洲國(guó)中講師:劉有義陳東義Apache+PHP4+Mysql+phpMyAdmin系統(tǒng)安裝(FreeBSD篇)Apache官方網(wǎng)站:PHP官方網(wǎng)站:MySQL官方網(wǎng)站:phpMyAdmin網(wǎng)站:/projects/phpMyAdmin/index.htmlFreeBSD介紹:簡(jiǎn)單地來說,F(xiàn)reeBSD是一套根據(jù)U.C.Berkeley's4.4BSD-litereleaseforthei386platform所完成的UN*X-like作業(yè)系統(tǒng)。它同時(shí)也間接使用了WilliamJolitz移植到i386上的U.C.Berkeley'sNet/2,也就是386BSD。不過現(xiàn)在386BSD的程式碼只剩下極少數(shù)還留存在FreeBSD中。您可以在FreeBSD首頁(yè)找到有關(guān)什麼是FreeBSD以及它可以幫您做些什麼的相關(guān)資訊。FreeBSD已被廣泛地被世界各地的公司行號(hào),ISP,研究人員,電腦專家,學(xué)生,以及家庭用戶所使用,用在工作,教育,以及娛樂上。您可以在FreeBSDGallery看到一些有關(guān)他們的資料。採(cǎi)用FreeBSD的好處:完全免費(fèi)完整原始程式碼取得移植軟體容易優(yōu)良穩(wěn)定性有完整的coreteam
(coreteam是一個(gè)專門對(duì)原始程式碼做發(fā)展跟維護(hù)的組織)有了完整的原始程式碼,F(xiàn)reeBSD是研究作業(yè)系統(tǒng)及電腦科學(xué)的極佳環(huán)境。免費(fèi)的FreeBSD也使得在遠(yuǎn)端的合作小組不必?fù)?dān)心版權(quán)及系統(tǒng)開放性的問題,而能自在的交流。摘自:.tw/~ncvs/zh-big5-FAQ/FAQ.html系統(tǒng)安裝使用光碟片開機(jī)安裝。如果無(wú)法用光碟開機(jī),必須製作軟碟開機(jī)片:
步驟如下:在dos環(huán)境於光碟片找到3個(gè)檔rawrite.exe,kern.flp,mfsroot.flp。假設(shè)3個(gè)檔都copy到c:\temp放第一張磁片入A槽:c:\temp\rawritekern.flpa:放第二張磁片入A槽c:\temp\rawritemfsroot.flpa:先用kern.flp開機(jī),再依指示放入另一片。作業(yè)系統(tǒng)啟動(dòng)核心設(shè)定
首次安裝依建議值選擇第二項(xiàng)目。KernelConfigurationMenuSkipKernelConfigurationAndContinuewithinstallationStartKernelConfigurationinfull-screenvisualmodeStartKernelConfigurationinCLIMode改變系統(tǒng)週邊設(shè)定值=>不更改按q離開。進(jìn)入安裝選單
選擇第三項(xiàng),自定安裝/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分割磁區(qū)D=DeleteSlice(若有存在的Partition,請(qǐng)移動(dòng)光棒到該磁區(qū)再行刪除)A=UseEntireDisk(硬碟全部給FreeBSD使用)Q=Finish(*)StandardInstallastandardMBR(nobootmanager)光棒移到該選項(xiàng),按Space鍵選擇再按Enter確定。指定Slice大小及給予掛入點(diǎn)名稱A=AutoDefaultsforall!Q=Finish安裝套件選單ChooseDistributionsB)Custom(利用Space鍵選擇,選中者有[X]記號(hào))除了[]src
[]Xfree86不選,其餘均安裝然後選擇兩次Exit離開選擇Source來源1)CDROM(偵測(cè)光碟沒問題則自動(dòng)退回上一選單)開始安裝不待詢問自動(dòng)安裝[Yes]等待二十分鐘系統(tǒng)安裝完成之後出現(xiàn):Visitthegeneralconfigurationmenuforachancetosetanylastoption?[Yes]FreeBSDConfigurationMenuRootPassword設(shè)定管理者密碼UserManagement(增加一個(gè)使用者可以由遠(yuǎn)端管理網(wǎng)站)
adduser(使用tab鍵切換位置)
loginid:master
Uid:1001
Group:wheel(設(shè)為wheel這個(gè)group才可以變身root)
FullName:隨便打
Membergroups:可以省略
Homedirectory:/home/master(使用者簽入的家目錄)
loginshell:/bin/tcsh(使用者簽入的shell)
(tcsh有doskey及tab鍵幫助輸入功能)
ExitTimezone
IsthismachineCMOScolocksettoUTC?[No]
5)Asia
43)Taiwan
[Yes]Networking(安裝網(wǎng)路介面,設(shè)定無(wú)誤才能上網(wǎng))
1)Interfaces
選網(wǎng)路介面(rl0)
IPV6=>NO
DHCP=>NO
Host:dxx(設(shè)定主機(jī)名稱)
Domain:.tw(主機(jī)所在網(wǎng)域)
Gateway:8(router的IP)
Nameserver:(輸入Nameserver的IP)
IPAddress:203.71.169.xxx(這臺(tái)主機(jī)的ip)
Netmask:(子網(wǎng)路遮罩)
rl0interfaceuprightnow?[Yes]
X)Exit離開選單選[ExitInstall]重新啟動(dòng)電腦,記得拿出光碟片。
如果要再安裝package或改變系統(tǒng)設(shè)定可以root身份
執(zhí)行/stand/sysinstall常用指令重新開機(jī)後,以root登入系統(tǒng)查看硬碟容量
df-k檔案系統(tǒng)總?cè)萘?1k)使用剩餘使用率掛入點(diǎn)Filesystem1K-blocksUsedAvailCapacityMountedon/dev/ad0s1a99183288436240632%//dev/ad0s1f1615823234832125172616%/usr/dev/ad0s1e19815129181011%/varprocfs440100%/proc註:ide硬碟:第一顆=>ad0第二顆=>ad1???
scsi硬碟:第一顆=>da0第二顆=>da1???列出檔案
ls只顯示檔名(注意unix的檔名,大小寫是不同的)
ls-a可顯示隱藏檔(在unix句點(diǎn)(.)開頭的檔案為隱藏檔)
ls-al列出詳細(xì)檔案資訊
total10(共10個(gè)檔案)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說明:
前面十個(gè)小欄位如-rw-r--r--第一欄為屬性其餘9位分成3組
第一組是檔案所有者的讀寫權(quán)(r=readw=writex=excute),第二組為同一群組的讀寫權(quán),第三組為其他群組的讀寫權(quán)d=directorymaster=檔案擁有者wheel=所屬群組數(shù)字代表檔案大小建檔時(shí)間日期檔名測(cè)試網(wǎng)路
ping8
按ctrl+c中斷網(wǎng)路通暢訊息如下:64bytesfrom8:icmp_seq=0ttl=255time=2.150ms64bytesfrom8:icmp_seq=1ttl=255time=2.056ms64bytesfrom8:icmp_seq=2ttl=255time=2.655ms打造作業(yè)環(huán)境
ee/etc/csh.cshrc加入以下幾行setprompt="%B%m[%/]-%n-"#改變提示符號(hào)setenvLANGzh_TW.Big5#可輸入中文aliastelnet'telnet-8'#簽入遠(yuǎn)端可打中文setenvEDITOR/usr/bin/ee#設(shè)定編輯器為eesetpath=($path~~/bin.)#增加path索引如果您懶得打字請(qǐng)用root身份執(zhí)行下兩行
fetch-o/etc/csh.cshrc.tw/Unix/FreeBSD/csh.cshrc
fetch-o~/.cshrc.tw/Unix/FreeBSD/root.cshrc
重新login新的設(shè)定值才生效。
註: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
#找出需要的選項(xiàng),參考/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下建立資料庫(kù),每一database建立一個(gè)資料夾,
內(nèi)定有mysql及test兩個(gè)database,
資料庫(kù)備份可下指令tarchvfz檔名.tar.gz資料庫(kù)資料夾名稱)啟動(dòng)mysqld(root身份)
/usr/local/bin/safe_mysqld&
若測(cè)試無(wú)誤可於/etc/rc.local加入此行,讓開機(jī)自動(dòng)啟動(dòng)查看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#將底下兩行啟用(井字號(hào)去掉,第一行後面加入.php3)
#forphp4
AddTypeapplication/x-httpd-php.php.php3
AddTypeapplication/x-httpd-php-source.phps啟動(dòng)apache
/usr/local/apache/bin/apachectlstart
#在/etc/rc.local加入這行以便開機(jī)起動(dòng)cd/usr/local/apache/htdocs/eetest.php內(nèi)容如下
<?php
phpinfo();
?>測(cè)試
使用Browser輸入網(wǎng)址
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";測(cè)試
使用Browser輸入網(wǎng)址
http://203.71.169.xxx/phpMyAdmin/index.php
可以看到phpMyAdmin畫面phpMyAdmin一定要設(shè)管理密碼,請(qǐng)自行設(shè)定(四)、順便安裝線上管理程式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測(cè)試
連結(jié)http://203.71.169.xxx:10000/
WebminConfiguration=>Language可以改變語(yǔ)系為繁體中文若要移除webmin
/etc/webmin/uninstall.shApache+MySQL+PHP4+phpMyAdmin採(cǎi)用port方式安裝ee/etc/make.conf增加跟自己連線速度快的主機(jī)
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#修改設(shè)定
CONFIGURE_ARGS=
--with-charset=big5\#增加一行對(duì)中文的支援
makeinstall
(約20分鐘完成)安裝Apache+PHP4
cd/usr/ports/www/apache13
makeinstall
cd/usr/ports/www/mod_php4
makeinstall
出現(xiàn)選擇連結(jié)項(xiàng)目=>選GDMySQLIMAPFTP安裝phpMyAdmin
cd/usr/local/www/data
fetch.tw/freebsd/phpMyAdmin_2.1.0php.tar.gz
tar-zxvfphpMyAdmin_2.1.0php.tar.gz測(cè)試
reboot後
連結(jié)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
解壓縮到暫存資料夾後,執(zhí)行setup.exe依說明安裝。
註:此次研習(xí)所使用檔案均放置在\\dserver\php研習(xí)\安裝apache_1.3.19-win32-no_src-r2.msi
檔案下載=>/dist/httpd/binaries/win32
安裝目錄內(nèi)定為C:\ProgramFiles\ApacheGroup\Apache
注意設(shè)定檔在~conf\httpd.conf,網(wǎng)頁(yè)及php在~htdocs\下設(shè)計(jì)安裝php-4.0.5-Win32.zip
檔案下載=>/downloads.php
解壓縮到c:\php後,依照install.txt內(nèi)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è)試
先執(zhí)行C:\mysql\bin\mysqld.exe,再跑ApacheinConsole
IEBrowser輸入http://203.71.169.xxx/phpMyAdmin/index.php可以看到mysql管理介面註:在/projects/phptriad有包裝好的程式,一次安裝所有軟體,不必設(shè)定,直接使用。安裝PWS+php+Mysql+phpMyAdminForWin98安裝mysql-3.23.37-win.zip
檔案下載=>/downloads/mysql-3.23.html
解壓縮到暫存資料夾後,執(zhí)行setup.exe依說明安裝。安裝PWS(原始程式在win98source光碟\add-one\pws)
此次研習(xí)安裝路徑為\\dserver\php研習(xí)\PWS\setup.exe安裝frontpage2000serverextension安裝php-4.0.5-Win32.zip
檔案下載=>/downloads.php
解壓縮到c:\php後,依照install.txt內(nèi)forPWS段落安裝
修改C:\php\sapi\pws-php4cgi.reg路徑
=>pws-php4cgi.reg(雙擊滑鼠左鍵)
修改C:\php\sapi\pws-php4isapi.reg路徑
=>pws-php4isapi.reg(雙擊滑鼠左鍵)個(gè)人web管理員=>進(jìn)階=>新增=>如下圖記得勾選執(zhí)行選項(xiàng)
phpMyAdmin_2.1.0php.zip
=>/projects/phpMyAdmin/index.html
直接解壓縮於C:\Inetpub\wwwroot測(cè)試
先執(zhí)行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服務(wù)管理員=>webservername=>內(nèi)容=>isapi篩選器=>
新增=>php
〔主目錄〕這一頁(yè)=>〔設(shè)定〕=>〔新增〕
解開phpMyAdmin_2.1.0php.zip=>C:\InetPub\wwwrootTest!!
執(zhí)行C:\mysql\bin\mysqld-nt--install
啟用=>NETSTARTmysql
停止=>NETSTOPmysql
http://yourhost.domain/phpMyAdmin/index.phpOK!PHP程式設(shè)計(jì)參考文件官方版:/manual/en/(英文)PHP_BIBLE:http://php.wilson.gs/bible/index.php(中文)Php_script:/PHP/Scripts_and_Programs/(英文)準(zhǔn)備工作先熟悉HTML基本語(yǔ)法。php程式可以使用任何一種純文字編輯器編寫(如windows記事本),但為了方便修改程式,最好準(zhǔn)備能夠搜尋字串、顯示行列座標(biāo)的純文字編輯器如:UltraEdit,/PHPEd/。
在Unix環(huán)境則可使用vi或ee。PHP語(yǔ)法結(jié)構(gòu):
php程式必須以特別的符號(hào)開始及結(jié)束,如下1.<?echo("最簡(jiǎn)單的方法\n");?>
2.<?phpecho("要支援XHTMLorXML文件,用這種!\n");?>
3.<scriptlanguage="php">
echo("這個(gè)方法FrontPage會(huì)竄改你的程式");
</script>
4.<%echo("php3.0.4以上版本開始支援");%>說明:以上四種方法都可以,考慮未來趨勢(shì)(PEAR)建議用第2種。
若使用第四種,必須修改php.ini將asp_tags設(shè)為on程式內(nèi)一行的註解以//開始,段落註解以/*……..*/包住。可分行撰寫,敘述後面加分號(hào)(;),同一行可以有多個(gè)敘述,均以分號(hào)隔開。
第一個(gè)程式<html><body>一般文字可以直接輸出!<br><br><?php//雙斜線後面是註解,不會(huì)被看到。echo“變數(shù)由php控制<br><br>\n”;//echo是印出資料函式$a=3;$A=’+’;//字元要用引號(hào)‘’或””括住$b=4;$c=$a+$b;echo$a.$A.$b.”=”.$c;?></body></html>說明:變數(shù)前面加$號(hào),變數(shù)名稱大小寫視為不同變數(shù)。數(shù)值變數(shù)直接給數(shù)值,字串變數(shù)的值需以單(’)或雙(“)引號(hào)括住變數(shù)使用可以不必宣告,以存入的值決定變數(shù)型態(tài),例如$a為整數(shù),$A為字串。“\n”控制原始碼換行,不改變網(wǎng)頁(yè)輸出結(jié)果。變數(shù)結(jié)合以句點(diǎn).連接。問題:在IE檢視原始碼與php原始程式有何不同?單引號(hào)與雙引號(hào)括住的資料有何不同,試試印出’$a’;與”$a”;?變數(shù)型態(tài)
01整數(shù)integer
$a=
520;//10進(jìn)位integer
$b=0123;//8進(jìn)位integer等於十進(jìn)位83
$c
=
0x10;//16進(jìn)位integer等於十進(jìn)位16
02浮點(diǎn)數(shù)double
$float1
=
13.8;
$float2
=
1.4E+2;//等於140
03字串string
$str=“我是字串”;
不論單一字元或一串文字均用引號(hào)括住,特殊字元前面加反斜線\
特殊字元如下表:\n換行\(zhòng)r(CRor0x0DinASCII)\t等於按TAB定位鍵\\反斜線\$$號(hào)\”雙引號(hào)\[0-7]{1,3}八進(jìn)位ASCII碼,例如”\101”表示字母A\x[0-9A-Fa-f]{1,2}十六進(jìn)位ASCII碼,例如”\x42”表示字母BPHP4新增以<<<表示字串(Heredocstringquoting),可以定義一大推字串給某一字串變數(shù),例如:
<?php
$str=<<<HDS//這裡要斷行Exampleofstringspanningmultiplelinesusingheredocsyntax.HDS;//獨(dú)立一行echo$str;
?>練習(xí):上機(jī)測(cè)試底下敘述,並了解語(yǔ)法?
<?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)是求字串長(zhǎng)度函式,[]代表陣列引數(shù)?>04陣列array//一維陣列$a[0]="abc";//陣列引數(shù)(index)由0開始$a[1]="def";$b["foo"]=13;//引數(shù)可為字串$a[]="hello";//$a[2]=="hello",為指定引數(shù)則自動(dòng)遞增$a[]="world";//$a[3]=="world"http://多維陣列$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);//訂購(gòu)第10樣商品1份?>變數(shù)型態(tài)轉(zhuǎn)換
$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)可以這行分段印出結(jié)果
echo"\$foo==$foo;typeis".gettype($foo)."<br>\n";////TypeCasting在變數(shù)前面加(變數(shù)型態(tài)),可以改變Type$var='ciao';$arr=(array)$var;echo$arr[0];//outputs'ciao'$var='ciao';$obj=(object)$var;echo$obj->scalar;//outputs'ciao'常數(shù)
常數(shù)命名通常使用英文字母大寫,定義方法如下:<?phpdefine("CONSTANT","Helloworld.");echoCONSTANT;//outputs"Helloworld."?>PHP定義一些常數(shù)__FILE__,__LINE__,PHP_VERSION,PHP_OS,TRUE,F(xiàn)ALSE,E_ERROR,E_WARNING,E_PARSE,E_NOTICE,E_ALL請(qǐng)自行了解定義。運(yùn)算元
數(shù)值運(yùn)算元$a+$b加$a-$b減$a*$b乘$a/$b除$a%$b取餘數(shù)位元運(yùn)算子$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比較運(yùn)算子$a==$b相等$a===$b相等且同type(PHP4)$a!=$b不相等$a!==$b不相等或不同type(PHP4)$a<$b小於$a>$b大於$a<=$b小於等於$a>=$b大於等於?:三元運(yùn)算(判斷式)?成立:不成立執(zhí)行系統(tǒng)指令運(yùn)算子``反單引號(hào)<?php$output=`ls-al`;//windows改成`dir`echo"<pre>$output</pre>";?>遞增減運(yùn)算子++$a先加再運(yùn)算$a++運(yùn)算完再加--$a先減再運(yùn)算$a--運(yùn)算完再減邏輯運(yùn)算子$aand$bAnd$aor$bOr$axor$bXor!$aNot$a&&$bAnd$a||$bOr其它運(yùn)算子@不顯示錯(cuò)誤訊息(加在函數(shù)前)&變數(shù)的位址指標(biāo)(加在變數(shù)前)=>陣列的元素值->物件的方法或?qū)傩?資料串接$this物件內(nèi)的呼叫器運(yùn)算優(yōu)先權(quán)(OperatorsPrecedence)當(dāng)運(yùn)算式有一個(gè)以上算符時(shí),例如:$a=1+12/3;,就必須考慮算符執(zhí)行的優(yōu)先順序,上例$a=5,因?yàn)椤?”的優(yōu)先序比”+”先,另外考慮執(zhí)行方向,像除法,分子分母順序調(diào)換,結(jié)果不一樣,對(duì)於這種執(zhí)行方向的判別,稱為結(jié)合性(Associativity)。下表中越往下優(yōu)先權(quán)越高,同一列precedence相同。結(jié)合性運(yùn)算元left,leftorleftxorleftandrightprintleft=+=-=*=/=.=%=&=|=^=~=<<=>>=left?:left||left&&left|left^left&non-associative==!====!==non-associative<<=>>=left<<>>left+-.left*/%right!~++--(int)(double)(string)(array)(object)@right[non-associativenew練習(xí)(開始沒有初值$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是環(huán)境變數(shù),使用時(shí)前面加$,環(huán)境變數(shù)可以使用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;練習(xí):準(zhǔn)備兩份網(wǎng)頁(yè)分別為中文版與英文版,寫一個(gè)程式判斷使用者的語(yǔ)系,送出對(duì)應(yīng)的網(wǎng)頁(yè)。
(提示:利用環(huán)境變數(shù)HTTP_ACCEPT_LANGUAGE,及
PHPManualXXVIII.HTTPfunctionsHeader();函式)。
參考答案:
<?php
if($HTTP_ACCEPT_LANGUAGE=="zh-tw")
Header("Location:/index_big5.html");
else
Header("Location:/index_en.html");
?>判斷使用者的瀏覽器類型,送出對(duì)應(yīng)的網(wǎng)頁(yè)。
(提示:利用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;}練習(xí):利用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;//忽略迴圈內(nèi)底下的敘述,回到此迴圈第一行require('header.php');//引用檔案include(“modify.inc”);//引用的檔案可以有判斷或迴圈的敘述require_once("config.php");//只允許引用檔案一次,PHP4才有include_once(“add.inc”);//同上函式
使用語(yǔ)法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.'傳回多個(gè)值functionsmall_numbers(){returnarray(0,1,2);}list($zero,$one,$two)=small_numbers();變數(shù)函式<?phpfunctionfoo(){echo"Infoo()<br>\n";}functionbar($arg=''){echo"Inbar();argumentwas'$arg'.<br>\n";}$func='foo';$func();$func='bar';$func('test');?>變數(shù)使用
預(yù)先定義的變數(shù)
使用phpinfo();印出的資訊,可利用變數(shù)直接取用,例如:要知道使用端上網(wǎng)IP只要印出$REMOTE_ADDR的值。變數(shù)有效範(fàn)圍<?php$a=7;//全域變數(shù)$b=3;//全域變數(shù)FunctionSum(){global$a;//全域變數(shù),在函式內(nèi)要宣告,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第一單元第二課 學(xué)會(huì)基本繪制工具 教學(xué)設(shè)計(jì) 2023-2024學(xué)年人教版初中信息技術(shù)七年級(jí)下冊(cè)
- 第三課 追求民主價(jià)值 教學(xué)設(shè)計(jì)-2023-2024學(xué)年統(tǒng)編版道德與法治九年級(jí)上冊(cè)
- 2025至2030年中國(guó)無(wú)人干燥機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 第二單元《閱讀材料 算法復(fù)雜度》教學(xué)設(shè)計(jì)設(shè)計(jì) 2023-2024學(xué)年浙教版(2020)初中信息技術(shù)七年級(jí)下冊(cè)
- 數(shù)字化智造的概念與發(fā)展趨勢(shì)
- 農(nóng)產(chǎn)品批發(fā)綜合市場(chǎng)場(chǎng)地選擇與規(guī)劃設(shè)計(jì)
- 老舊小區(qū)基礎(chǔ)配套設(shè)施改造環(huán)境影響評(píng)估
- 低空經(jīng)濟(jì)的市場(chǎng)規(guī)模與增長(zhǎng)趨勢(shì)
- 2025至2030年中國(guó)開磷清洗劑數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 二零二五年度家庭裝修安全責(zé)任書及裝修期間噪音污染控制合同
- 醫(yī)院培訓(xùn)課件:《黃帝內(nèi)針臨床運(yùn)用》
- 語(yǔ)文新課標(biāo)“整本書閱讀”深度解讀及案例
- 地質(zhì)隊(duì)安全培訓(xùn)
- 2024至2030年中國(guó)毛絨玩具數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 建筑復(fù)工復(fù)產(chǎn)安全培訓(xùn)
- GB 21258-2024燃煤發(fā)電機(jī)組單位產(chǎn)品能源消耗限額
- 八年級(jí)上學(xué)期語(yǔ)文12月月考試卷
- 醛固酮增多癥與原發(fā)性醛固酮增多癥概述
- 廣東省2024年普通高中學(xué)業(yè)水平合格性考試語(yǔ)文仿真模擬卷01(解析版)
- 2025屆新高考生物精準(zhǔn)復(fù)習(xí)+提高農(nóng)作物產(chǎn)量
- 第6課歐洲的思想解放運(yùn)動(dòng)教學(xué)設(shè)計(jì)2023-2024學(xué)年中職高一下學(xué)期高教版(2023)世界歷史
評(píng)論
0/150
提交評(píng)論