Chức năng của Web Server có vẻ không phức tạp mấy. Nó chỉ ở tại chỗ, chạy trên nền của HĐH, lắng nghe các yêu cầu ai đó trên Web gởi đến, sau đó trả lời những yêu cầu này, và cấp phát những trang Web thích ứng. Thực tế thì nó không quá đơn giản như vậy, bởi vì nhiệm vụ của Web Server là phải cung cấp tính ổn định cho môi trường Web cho nên đòi hỏi này phải được đáp ứng một cách rất nghiêm túc.
Có nhiều loại Web Server khác nhau, nhưng chủ yếu trên thị trường chỉ thường sử dụng Apache và IIS (Internet Information Server của Microsoft). INTERNET INFORMATION SERVER (IIS) được gắn liền với môi trường Windows và nó là thành phần không thể thiếu của Active Server Pages (ASP). Nếu bạn chọn con đường của Microsoft thì có lẽ bạn đã hiểu rõ về IIS.
Có một sự tích hợp nhất định giữa một ngôn ngữ lập trình và một Web Server. Cũng vậy, PHP được tích hợp rất tối đối với IIS. Trước đây, có một số vấn đề cần phải bàn về tính ổn định của PHP/IIS với việc truyền tải lớn, nhưng PHP và IIS cũng đã được cải thiện liên tục nên việc này không còn đáng phải bận tâm.
35 trang |
Chia sẻ: NamTDH | Lượt xem: 1196 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
r_replace().
<?php
$str="Do you have any jobs, please let me know as soon as possible.";
echo $str."";
echo str_replace("job","book",$str)."";
echo substr_replace($str,"assp.",41)."";
?>
Hàm xử lý thời gian
Date(mẫu hiễn thị)
echo date("jS F Y");
Bảng định dạng thời gian
Code
Diễn giải
a
Buổi sáng /chiều bằng 2 ký tự thuờng am/pm
A
Buổi sáng /chiều bằng 2 ký tự hoa AM/PM
d
Day (01-31) ngày trong tháng 2 ký tự
D
Day (Mon-Sun) ngày trong tuần
F
Tháng trong năm với tên tháng đầy đủ
g
Hour (1-12) giờ trong ngày không kèm 0 nếu 1 ký tự
G
Hour (0-23) giờ trong ngày không kèm 0 nếu 1 ký tự
h
Hour (01-12) giờ trong ngày gồm 2 ký tự
H
Hour (00-23) giờ trong ngày gồm 2 ký tự
i
Minutes(01-59) phút bao gồm 2 ký tự
j
Day (01-31) ngày trong tháng không kèm 0 nếu 1 ký tự
l
Day (Monday-Sunday) ngày trong tuần đầy đủ
L
Năm nhuận trả về 1, năm thường trả về 0
m
Month(01-12) tháng bao gồm 2 ký tự
M
Month(Jan-Dec) tháng tên viết tắt
n
Month(01-12) tháng không kèm 0 nếu 1 ký tự
s
Second(01-59) giây bao gồm 2 ký tự
S
thêm vào 2 ký tự như :st,nd,rd,th theo sau dạng ngày 2 ký tự
t
Trả vể tổng số ngày trong tháng
w
Day(0-6) : 0=Sunday….6=Sartuday
y
Năm định dạng 2 con số
Y
Năm định dạng 4 con số
z
Ngày trong năm địnhtheo số (0-365)
checkdate(tháng, ngày,năm) : kiểm tra giá trị nhập vào có phải là ngày hay không nếu đúng là ngày thì True (1) còn không là False
echo checkdate(12, 31, 2000)."";
echo checkdate(2, 29, 2001)."";
DATE_FORMAT(ngày tháng, mẫu hiển thị) : thuờng dùng hàm n2y trong câu select để định dạng lại ngày tháng khi lấy dữ liệu từ MySQL.
Select DATE_FORMAT(OrderDate, ‘%m-%d-%Y’) From orders
Bảng định dạng thời gian cho hàm DATE_FORMAT
Code
Diễn giải
%M
Tháng đầy đủ
%W
ngày trong tuần đầy đủ
%D
ngày trong tháng dạng số có thứ bậc (1 st)
%Y
Năm 4 con số
%y
Năm 2 con số
%a
Ngày trong tuấn viết tắt
%d
ngày trong tháng 2 con số
%e
ngày trong tháng không kèm số 0 vơi 1 ký tự
%m
Tháng 2 con số
%c
Tháng không kèm số 0 với 1 ký tự
%b
Tháng viết tắt
%j
Ngày thứ mấy trong năm (1-365)
%H
giờ 2 con số (00-23)
%k
Giờ không kèm số 0 với 1 ký tự
%h
Giờ 2 con số (1-12)
%i
Phút không kèm số 0 với 1 ký tự
%r
giờ dầy đủ với định dạng 12 giờ (hh:mm:ss AM/PM)
%T
giờ dầy đủ với định dạng 12 giờ (hh:mm:ss)
%S
Giây 2 con số
%s
Giây không kèm số 0 với 1 ký tự
%p
AM hay PM
%w
Ngay trong tuan dạng số (0-6)
<?php
$nam=date("Y");
$tuoi=$nam -1972;
echo “Tuoi cua ban : $tuoi”;
?>
Các hàm thư viện khác
ereg(mẫu kiểm tra, giá trị) : kiểm tra giá trị có đúng theo mẫu cho trước hay không
Kiểm tra ngày tháng nhập vào có đúng theo mẫu cho trướ hay không
$date="1999-12-3";
//kiem tra ngay thang co dung mau nhu sau hay khong
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) {
echo "$regs[3].$regs[2].$regs[1]";
} else {
echo "Invalid date format: $date";
}
Kiểm tra email nhập đúng hay sai
$email=”hoasen@yahoo”;
if (!ereg("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$", $email))
{
echo "That is not a valid email address. Please return to the"
." previous page and try again.";
exit;
}
print(chuỗi): in 1 chuỗi ra màn hình
<?php
print("Hello World");
print "print() also works without parentheses.";
print "This spans
multiple lines. The newlines will be
output as well";
print "This spans\nmultiple lines. The newlines will be\noutput as well.";
print "escaping characters is done \"Like this\".";
// You can use variables inside of a print statement
$foo = "foobar";
$bar = "barbaz";
print "foo is $foo"; // foo is foobar
// You can also use arrays
$bar = array("value" => "foo");
print "this is {$bar['value']} !"; // this is foo !
// Using single quotes will print the variable name, not the value
print 'foo is $foo'; // foo is $foo
// If you are not using any other characters, you can just print variables
print $foo; // foobar
?>
Lập trình PHP với cở sở dữ liệu
Kết nối cơ sở dữ liệu
PHP cung cấp hàm kết nối cơ sở dữ liệu có cú pháp như sau :
$link = mysql_connect ("localhost", "root", "");
if(!$link)
{
echo "not connection!";
exit;
}
echo "connection ok!";
mysql_select_db("intershop", $link);
Cách khác :
$link = mysql_connect ("localhost", "root", "")
or die ("Could not connect to MySQL Database");
echo "connection ok!";
mysql_select_db("intershop", $link);
đóng kết nối cơ sở dữ liệu
Sau khi khai thác CSDL bạn nên đóng lạ thông qua cú pháp sau :
$link = mysql_connect ("localhost", "root", "")
or die ("Could not connect to MySQL Database");
echo "connection ok!";
mysql_select_db("Northwind ", $link);
…………………………….
mysql_close($link);
Truy vấn cơ sở dữ liệu
Mở 1 recordset
Ta dùng hàm mysql_query() với các tham số sau :
cú pháp : mysql_query(chuỗi sql language)
mysql_query(chuỗi sql language, biến kết nối DB)
<?php
$link = mysql_connect ("localhost", "root", "")
or die ("Could not connect to MySQL Database");
echo "connection ok!";
mysql_select_db("Northwind ", $link);
$sql=”select * from customers”;
$rec=mysql_query($sql,$link);
?>
Đếm số lượng records
Ta dùng hàm mysql_num_rows()
<?php
$link = mysql_connect ("localhost", "root", "")
or die ("Could not connect to MySQL Database");
echo "connection ok!";
mysql_select_db("Northwind", $link);
$sql=”select * from customers”;
$rec=mysql_query($sql,$link);
$i= mysql_num_rows($rec);
echo “tong so record : $i”;
mysql_close($link);
?>
Đọc từng record từ recordset
Ta dùng hàm mysql_fetch_array() để đọc từng record trong biến $rec, nếu không tồn tại record nào trong $rec thì hàm sẽ khôngthực hiện:
MA KH
TEN CONG TY
TEN KH
<?php
$link = mysql_connect ("localhost", "root", "")
or die ("Could not connect to MySQL Database");
echo "connection ok!";
mysql_select_db("northwind", $link);
$sql="select * from customers";
$result=mysql_query($sql,$link);
$i= mysql_num_rows($result);
echo "tong so record : $i";
if ($i!=0)
{
while ($row=mysql_fetch_array($result))
{
//lay gia tri tung field
$makh= $row["CustomerID"];
$tenct=$row["CompanyName"];
$tenkh=$row["ContactName"];
echo "$makh";
echo "$tenct";
echo "$tenkh";
}
}
?>
<?php
mysql_close($link);
?>
BẠn cũng có thể đọc từng record bằng hàm mysql_fetch_row như sau :
MA KH
TEN CONG TY
TEN KH
<?php
$link = mysql_connect ("localhost", "root", "")
or die ("Could not connect to MySQL Database");
echo "connection ok!";
mysql_select_db("northwind", $link);
$sql="select * from customers";
$result=mysql_query($sql,$link);
$i= mysql_num_rows($result);
echo "tong so record : $i";
if ($i!=0)
{
while ($row=mysql_fetch_row($result))
{
//lay gia tri tung field
$makh= $row[0];
$tenct=$row[1];
$tenkh=$row[2];
echo "$makh";
echo "$tenct";
echo "$tenkh";
}
}
?>
<?php
mysql_close($link);
?>
Bạn cũng có thể dùng hàm mysql_fetch_object để lấy từng record như sau :
MA KH
TEN CONG TY
TEN KH
<?php
$link = mysql_connect ("localhost", "root", "")
or die ("Could not connect to MySQL Database");
echo "connection ok!";
mysql_select_db("northwind", $link);
$sql="select * from customers";
$result=mysql_query($sql,$link);
$i= mysql_num_rows($result);
echo "tong so record : $i";
if ($i!=0)
{
while ($row=mysql_fetch_object($result))
{
//lay gia tri tung field
$makh= $row->CustomerID;
$tenct=$row->CompanyName;
$tenkh=$row->ContactName;
echo "$makh";
echo "$tenct";
echo "$tenkh";
}
}
?>
<?php
mysql_close($link);
?>
Điều khiển session
Để khởi tạo 1 session trên trang web bạn dùng lệnh session_start().
Để lấy id của 1 session hiện hành bạng dùng lệnh $myvalue=session_id();
Để khai báo 1 biến session bạn dùng lệnh session_register("biến")
<?php
session_start();
$suid="admin";
$semail="admin@saigoninfotech.com";
$sfullname="Pham Huu Khang";
session_register("suid");
session_register("semail","sfullname");
?>
Trên trang khác để lấy giá trị của biến session đã khai báo ban thực hiện
<?php
session_start();
echo "Userid: $suid.";
echo "email: $semail.";
echo "Fullname: $sfullname.";
?>
Để kiểm tra biến session nào còn hiệu lực hay không thì dùng lệnh session_is_registered
Để Hủy bỏ 1 biến session còn hiệu lực dùng lệnh session_unregister
<?php
session_start();
echo "Userid: $suid.";
echo "email: $semail.";
echo "Fullname: $sfullname.";
$result=session_is_registered("suid");
if($result==1)
{
session_unregister("suid");
}
?>
Để xóa bỏ tất cả biến session còn hiệu lực dùng lệnh session_unset(), nếu bạn muốn kết thúc tất cả các biến session thì dùng lệnh session_destroy()
<?php
session_start();
$id="";
if (session_is_registered("suid"))
{
$id=$suid;
session_unset();
session_destroy();
}
?>
Điều khiển Cookie
Tạo mới 1 biến cookie dùng cú pháp : setcookie(“tên biến”,giá trị)
<?php
$myvalue="You are visited our site";
setcookie("intershop",$myvalue);
?>
Lấy giá trị của 1 biến cookie thực hiện như sau :
<?php
$myvalue=$HTTP_COOKIE_VARS["intershop"];
echo "Get cookie: ".$myvalue."";
?>
Truy vấn dữ liệu file trong PHP
Mở file
Trong PHP để mở 1 file trên máy chủ bạn dùng hàm fopen có cu pháp sau :
$biến=fopen(tên file với đầy đủ đuờng dẫn, chế độ mở file)
Bảng chế độ mở file
Mode
Diễn giải
r
Mở file dưới dạng Read-only
r+
Mở file dưới dạng Read-Write
w
Mở file dưới dạng Write-only
w+
Mở file dưới dạng Write-Read. Nếu file này tồn tại, nội dung sẽ bị xóa, nếu file không tồn tại chúng sẽ được tạo ra
a
Mở file dưới dạng Append. Ghi dữ liệu từ phần cuối file trở đi, trong trường hợp file không tồn tại chúng sẽ được tạo ra
a+
Mở file dưới dạng Append. Ghi dữ liệu từ đầu file trở đi, trong trường hợp file không tồn tại chúng sẽ được tạo ra
<?php
$f="c:\hopdong\\thanhly.txt";
$ft=fopen($f,"a");
?>
Bạn có thể mở file thông qua Ftp hay HTTP
<?php
$f="ftp://www.abc.com/listcard.txt";
$ft=fopen($f,"a");
$f="";
$ft=fopen($f,"a");
?>
Để kiểm tra việc mở file có được hay không ta dùng cơ chế bẫy lỗi bằng cách dùng dấu @ trước biến $f
<?php
$f="c:\hopdong\\thanhly.txt";
@ $ft=fopen($f,"a");
if (!$ft)
{
echo "Your Orders could not process in this time";
echo "Please check your system and try again!";
}
else
echo "Open file ok!";
?>
Đọc nội dung trên file
Để đọc nội dung trên 1 file bạn dùng hàm fgets(biến file, số ký tự)
Để biết được nội dung file đã hết hay chưa bạn dùng hàm feof(), hàm này cho giá trị true khi con trỏ đến cuối file.
<?php
$f="c:\hopdong\\thanhly.txt";
@ $ft=fopen($f,"r");
if(!$ft)
{
echo "No Orders Pending, Please try later!";
exit;
}
else
{
echo "Orders Processing";
while (!feof($ft))
{
$order=fgets($ft,10);
echo $order."";
}
}
echo "Read file successfull!";
?>
Để đọc tòan bộ nội dung fiel bạn nên dùng hàm readfile()
<?php
$f="c:\hopdong\\thanhly.txt";
@ $order=readfile($f);
if(!$order)
{
echo "No Orders Pending, Please try later!";
exit;
}
else
{
echo "Orders Processing";
echo $order;
}
echo "Read file successfull!";
?>
Ghi dữ liệu vào file
Muốn ghi file thì thư mục chưa các file cần ghi phải cấp quyền modify cho user Internet Guest Account.
Để ghi nội dung vào file bạn dùng hàm fwrite(biến file, nội dung)
<?php
$f="c:\hopdong\\thanhly.txt";
@ $ft=fopen($f,"a");
if (!$ft)
{
echo "Your Orders could not process in this time";
echo "Please check your system and try again!";
}
else
{
$f="Your Orders have been write in this time";
fwrite($ft,$f);
echo "Write to file successfull!";
}
?>
Khi ghi dữ liệu ra file bạn có thể dúng \t để nhảy tab hay \n để xuống hàng
<?php
$f="c:\hopdong\\thanhly.txt";
@ $ft=fopen($f,"a");
if (!$ft)
{
echo "Your Orders could not process in this time";
echo "Please check your system and try again!";
}
else
{
$p=10;
for($q=1;$q<=5;$q++)
{
$outstring=$q." bottle\t".$p;
$outstring=$outstring. " vnd\t".$q*$p."\n";
fwrite($ft,$outstring);
}
echo "Write to file successfull!";
}
?>
Đóng file
Sau khi mở file để đọc hay ghi bạn file đóng file lại bằng hàm fclose(biến file) . Hàm trả về true nếu đóng file thành công, còn không trả về false.
Kiểm tra file
Khi mở file thông thường b5n nên kiểm tra xem file đó có tồn tại hay không bạn nên dùng hàm file_exists()
<?php
$f="c:\hopdong\\thanhly.txt";
//Kiem tra file
if (!file_exists($f))
{
echo "No Orders Pending, Please try later!";
exit;
}
else
{
$order=readfile($f);
echo "Orders Processing";
echo $order;
}
echo "Read file successfull!";
?>
Kiểm tra dung lượng của file
Khi mở file để biết được dung lượng của file đó bao nhiêu. Hàm filesize() cho biết tổng số byte của file cần mở.
<?php
$f="c:\hopdong\\thanhly.txt";
//Kiem tra file
if (!file_exists($f))
{
echo "No Orders Pending, Please try later!";
exit;
}
else
{
$size=filesize($f);
echo "Size of Orders Processing ";
echo "is $size byte(s)";
}
?>
Xóa file
Để xó hẳn 1 file trên máy chủ bạn dùng unlink() với đầy đủ đường dẫn của file cần xóa. Tuy nhiên bạn nên kiển tra trước file đó có tồn tại hay không trườc rồi mới xóa.
<?php
$f="c:\hopdong\\thanhly.txt";
//Kiem tra file
if (!file_exists($f))
{
echo "No Orders Pending, ";
echo "Please try later!";
exit;
}
else
{
$ok=unlink($f);
if ($ok)
echo "File have been deleted!";
else
echo "File could not delete!";
}
?>
Các file đính kèm theo tài liệu này:
- giaotrinhphp_5585.doc