Tải bản đầy đủ (.pptx) (25 trang)

Bài giảng mã nguồn mở chương 8

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (160.69 KB, 25 trang )

Chương 8 :

Phát triển website với hệ thống
mã nguồn mở drupal
Giảng viên : Nguyễn Minh Thành
Email :


Nội Dung
1. Giới Thiệu Về Drupal
2. Cài đặt Drupal

3. Phương thức nhận dữ liệu POST & GET
4. Hàm


PHP Cơ bản
I.1 Lịch sử : PHP (Hypertext Preprocessor) là ngôn ngữ script trên server

được thiết kế để dễ dàng xây dựng các trang Web động.
Ngôn ngữ PHP ra đời năm 1994 Rasmus Lerdorf (1968, GreenLand) sau
đó được phát triển bởi nhiều người trải qua nhiều phiên bản. Phiên bản
đang phổ biến là PHP 5.0 đã được công bố 7/2004.Phiên bản mới nhất là
5.3.3
Ưu điểm :Mã nguồn mở (open source code)

- Miễn phí, download dễ dàng từ Internet.
- Ngôn ngữ rất dễ học, dễ viết.
- Mã nguồn không phải sửa lại nhiều khi viết chạy cho các hệ điều hành
từ Windows, Linux, Unix
Tên gọi ban đầu :'Personal Home Page Tools’


Xem : />

Kiểu dữ liệu – Hằng – Biến
a- Kiểu dữ liệu:
Integer, Double, Boolean, String, Array và Object
b. Khai báo biến:
$tên_biến = giá_trị;
$tên_mảng = array();
$tên_object= new tên_lớp();
c. Khai báo hằng :
define(“tên_hằng”, giá_trị);
Ví dụ : define(“PI”,3.14); $r=4;
echo “Diện tích hình tròn :’.$r*$r*PI;
?>


Các phép toán
a.Phép gán : $biến = biểu_thức;
b.Các phép toán số học : +,-,*,/,%
c.Các phép toán so sánh : ==, !=, >=,<=,>,<
d.Các phép toán kết hợp : ++,--,+=,-=,*=,/=
e.Các phép toán logic : !, &&, ||
f. Toán tử tam phân : (điều_kiện ? giá_trị_1 : giá_trị_2)
g.Phép ghép chuổi : . (dấu chấm)
h.Toán tử error : @, ngăn không cho thông báo lỗi.
Ví dụ : $a=10; $b=0; $c=@$a/$b


Các câu lệnh điều khiển

a- Câu lệnh if. Các cú pháp thông dụng:

- if(điều_kiện) { /* nhóm lệnh */}
- if(điều_kiện) { /* nhóm lệnh1 */} else { /* nhóm lệnh2 */}
- if(điều_kiện) { ….. }
elseif(điều_kiện_1) {….}
elseif(điều_kiện_2) {….}
……….
elseif(điều_kiện_n) {….}
else {/* nhóm lệnh cuối cùng */}


Các câu lệnh điều khiển (tt)
b. Câu lệnh switch
Cú pháp :
switch($biến){
case giá_trị_1: nhóm lệnh 1 ; break;
case giá_trị_2: nhóm lệnh 2 ; break;

case giá_trị_n: nhóm lệnh n ; break;
default : nhóm_lệnh_n+1;
}
Lưu ý : giá trị của $biến phải là đếm được, rời rạc


Các câu lệnh điều khiển (tt)
Trong PHP có 4 câu lệnh lặp, trong đó foreach có cách sử dụng đặc sắc so
với các NNLT khác. Muốn thoát khỏi vòng lặp : sử dụng lệnh exit
c- Câu lệnh while :
Cú pháp : while(điều_kiện_lặp) { /* nhóm lệnh */}

d- Câu lệnh do … while :
Cú pháp : do { /* nhóm lệnh */} while(điều_kiện_lặp)
e- Câu lệnh for(;;) :
Cú pháp : for(khởi_tạo; điều_kiện_lặp; tăng_giảm)
{ /* nhóm lệnh */}
f- Câu lệnh foreach : duyệt qua tất các các phần tử của một mảng, nhất là
mảng kết hợp.


Mảng Một Chiều
1.Khai báo :
$n=100;
$arr1 = array($n);
$arr2 = array(giá_trị_1, giá_trị_2, .., giá_trị_n);
$arr3 = (); // mảng động
$arr4 = arrr(hoten=>“Minh Thành”, quequan=>“HCM”,
tuoi=>27;IQ=“Rất cao”);
// mảng kết hợp

Câu lệnh lặp foreach rất hiệu quả khi duyệt mảng kết hợp


Mảng Một Chiều (tt)
2- Sử dụng

- Truy cập một phần tử mảng : $arr[$key]
$key có ý nghĩa rộng hơn Index, dùng tham chiếu đến một phần tử của
mảng.
Ví dụ 1: Tạo mảng gồm 10 phần tử là các số nguyên lấy ngẫu nhiên
trong [0,100]. Khởi tạo $key là 0.

$arr = array(10);
for($i=0; $i<10; $i++) $arr[$i] = rand(0,100);
for($i=0; $i<10; $i++) echo ($i+1).”-”.$arr[$i].”
”;
?>
Trên đây là phương pháp thông dụng để duyệt mảng. Các slide sau sẽ
trình bày các nét đặc sắc của PHP khi làm việc trên mảng.


Mảng Một Chiều (tt)
- Sử dụng foreach
foreach($arr as $key=>$value){
echo $key .“,”;
echo $value.”
”;
}
Có thể thay thế key và value bằng tên khác, chẳng hạn $k=>$v, miễn rẳng
đảm bảo khai báo :
$chỉ_số=>$giá_trị (của phần tử mảng)
------------------------------------------------------------------------------------------------------------------------

Trong slide sau sẽ trình bày cách duyệt mảng bằng while phối hợp với :
Hàm each($arr)
Hàm list($key,$value)


Mảng Một Chiều (tt)

- Truy cập một phần tử mảng : sử dụng hàm each()
while($item=each($arr)){
echo $item[“key”] .”,”;

echo $item[“value”]. “
”;
}
Hàm each() trả về phần tử kế tiếp của mảng. ~ hàm next()
- Truy cập một phần tử mảng : sử dụng hàm list()
while(list($k,$v)=each($arr)){
echo $k .”,”;
echo $v. “
”;
}
Hàm list($k,$v) tách cặp giá trị (key, value) của phần tử có “chỉ số” là
$key ra hai biến $k và $v


Các Hàm Về Mảng
- Hàm count(), sizeof() : trả về kích thước của mảng
- Các hàm “di chuyển” trong mảng :
+ current()/end() : trả về phần tử đầu tiên/ cuối cùng của mảng
+ prev() / next() : trả về phần tử liền trước / kế kiếp
-Các hàm sắp xếp mảng :
+ sort() : sắp xếp mảng theo value của phần tử
+ ksort():sắp xếp mảng theo key của phần tử
- Kiểm tra một biến có phải là mảng : is_array() trả về 1 (true) và 0

(false)


Các Hàm Về Mảng (tt)

- Dùng hàm each()
$arr=array(10);


for($i=1;$i<=10;$i++) $arr[$i]=rand(0,100);
while($item=each($arr)) echo $item['value']."
“;
?>
Dùng hàm list()
$arr=array(10);
for($i=1;$i<=10;$i++) $arr[$i]=rand(0,100);
while(list($k,$v)=each($arr)) echo $v."
";


Các Hàm Về Mảng (tt)
2- Duyệt mảng kết hợp
$arr=(hai=>”Học”,ba=>“Thực
hành”,tu=>“Picnic”,bay=>“Đìu hiu trên gác
trọ”,chunhat=>”Tôi với tôi một mình”);
while(list($index,$value)=each($arr))
echo $index." - ".$value."
";
?>


Các Hàm Về Mảng (tt)
3- Sử dụng hàm ksort(): ai là bạn của ai?
In ra theo thứ tự tên sinh viên (là $key)
$arr=array(Lien=>"Vu Hong",Tu=>"Nguyet Hang",Hung=>"Ha
Giang",An=>"Bich Ngoc");
ksort($arr);
echo "Student - His frient
";

while(list($person,$frient)=each($arr))
echo $person."-".$frient."
";
?>


Các Hàm Về Mảng (tt)
4- Mảng động : Cho mảng gồm 10 số tự nhiên,tạo một mảng con chứa
những số lẻ của mảng này, In ra mảng con này.
$arr=array(2,4,9,2,3,5,8,1);
$child=array(); // sử dụng mảng động
while(list($k,$v)=each($arr)) if($v%2!=0) $child[]=$v;
echo "So phan tu cua mang con ".count($child)."
";
// In ra mảng con gồm các số lẻ từ mảng $arr
for($i=0;$i"
?>


Chuỗi Kí Tự
1- Khai báo biến
$str =“Chiều nội trú buồn”;
2- Các hàm về kiểu chuổi ký tự:
- chop(), trim(), ltrim() ~ rtrim, trim,ltrim trong Visual Basic 6.0
- nl2br(): định dạng HTML, biến ký tự \n thành “

- addslashes() : để biến một chuổi có thể lưu trữ trong CSDL, ví dụ: dấu “
-> \”
- substr($str,$pos,$len) : tách một chuổi con từ một chuổi
- strpos($str,$sub) : vị trí chuổi $sub trong chuổi $str

- str_replace($rep,$with,$str) : thay $rep bằng $with trong $str
- explode($separator,$str) : tách chuổi $str thành các chuổi con dựa
trên dấu phân cách $separator và lưu kết quả vào mảng, ~ phương
thức split của JavaScript. Ngược lại là hàm implode hay join.


Chuỗi Kí Tự (tt)
Ví dụ: Chuẩn hóa một chuổi văn bản(dạng đơn giản) : không có ký tự trống ở
hai đầu, giữa 2 từ chỉ có duy nhất một ký tự trống.

$str=“ Thầy Nguyễn Minh Thành “;
echo “
Độ dài chuổi ban đầu “.strlen($str);
function normalize($st){
$str=trim($str); // cắt các ký tự trống ở hai đầu
$twoSpace=" "; $oneSpace=" ";
while(strpos($st,$twoSpace)>0)
{$st=str_replace($twoSpace,$oneSpace,$st);}
return $st;}
echo ““Độ dài sau khi chuẩn hóa “.strlen(normalize($str));
?>


Chuỗi Kí Tự (tt)
$str="Vũ Huy Hùng,Hồ Ngọc Tú,Võ Thị Hà Giang,Võ Tòng";
$arr=array();
$arr=explode(",",$str);
echo "

Danh sách những ông tướng 07SPT:

";

foreach($arr as $key=>$value) echo ($key+1)."-".$value."
";
?>


Phương Thức Truyền Dữ Liệu
Đây là những biến toàn cục nhận các giá trị gởi từ client
đến server bằng phương thứ Post hay Get.
1- Phương thức POST
<form action=receive.php method=POST>
<input type=text name=“hoten”>
<- - các phần tử khác - ->
</form>
Receive.php
hten=$_POST[‘hoten’];
echo hten;
?>


Phương Thức Truyền Dữ Liệu (tt)
Trường hợp đặc biệt: nhận dữ liệu gởi từ các checkbox cùng tên:
Goi.html
<form action=Nhan.php method=post>
<input type=checkbox name=box[] value=1>Một
<input type=checkbox name=box[] value=2>Hai
<input type=checkbox name=box[] value=3>Ba
<input type=submit name=“Sumit”>
</form>


Nhan.php
$val = $_POST[‘box’]; // $val là mảng các phần tử
foreach($val as $k=>$v) echo $v.”
”;
?>


Phương Thức Truyền Dữ Liệu (tt)
2- Phương thức GET

Giả sử trang goi.html chứa đoạn mã:
<a href=“nhan.php?hoten=Hà Giang”>Đăng ký </a>
Ta gọi: gởi dữ liệu đến trang nhan.php theo phương thức GET, các biến
khác được ghép bởi ký hiệu &
Nhan.php
$hten=$_GET[‘hoten’];
echo $hoten;
?>
Chú ý: hoten=Hà Giang, không đóng dấu nháy kép!
$_REQUEST : là biến toàn cục thay thế cho $_POST và $_GET


Phương Thức Truyền Dữ Liệu (tt)
2- Phương thức GET

Giả sử trang goi.html chứa đoạn mã:
<a href=“nhan.php?hoten=Hà Giang”>Đăng ký </a>
Ta gọi: gởi dữ liệu đến trang nhan.php theo phương thức GET, các biến
khác được ghép bởi ký hiệu &

Nhan.php
$hten=$_GET[‘hoten’];
echo $hoten;
?>
Chú ý: hoten=Hà Giang, không đóng dấu nháy kép!
$_REQUEST : là biến toàn cục thay thế cho $_POST và $_GET


Hỏi Đáp ?


×