VD:
<html>
<head>
<title>Example</title>
</head>
<body>
<?php echo "Hi, I'm a PHP script!"; ?>
</body>
</html>
Mã PHP được đặt trong kiểu tag đặc biệt cho phép ta có thể vào hoặc ra
khỏi chế độ PHP
2. Cài đặt như thế nào?
Cài PHP trên nền Window với IIS version 3 hoặc 4:
- Copy php.ini - dist vào thư mục Window. Đổi tên thành php.ini
- Sửa file php.ini như sau:
- Đặt lại đường dẫn mục : 'extension_dir' chuyển tới vị trí cài đặt php hoặc nơi để các file php_*.ini. VD : c:\php
- Đặt đường dẫn chính xác đến file: browscap.ini trong thư mục Window.
- Chạy MMC , chọn Web site hoặc thư mục của ứng dụng
- mở mục Property của thư mục , chọn vào Home Directory, Virtual
Directory hay Directory.
- Vào mục: Configuration->App Mappings ->Add->Executable :
c:\php\php.exe %s %s. Chú ý phải có %s %s .
- Trong ô Extension, đánh đuôi file bạn muốn gắn với mã php. Thường là .php hoặc .phtml
- Đặt chế độ sercurity thích hợp. Nếu dùng hệ thống NTFS, cần đặt cho
phép thực hiện với thư mục có php.exe
II Ngôn ngữ PHP:
1. Có 4 cách để dùng PHP:
1. <? echo ("this is the simplest, an SGML processing instruction\n"); ?>
2. <?php echo("if you want to serve XML documents, do like this\n"); ?>
3. <script language="php">
echo ("some editors (like FrontPage) don't
like processing instructions");
</script>
4. <% echo ("You may optionally use ASP-style tags"); %>
<%= $variable; # This is a shortcut for "<%echo .." %>
Cách 1 chỉ có thể sử dụng nếu những tag ngắn được cho phép sử dụng. Có thể sửa short_open_tag trong cấu hình của php hoặc biên dịch file php với lựa chọn cho phép dùng các tag ngắn. Tương tự như vậy, cách thứ 4 chỉ có tác dụng nếu asp_tag được đặt trong file cáu hình của PHP
PHP cho phép hỗ trợ các kiểu chú thích của cả C, C++ và Unix shell.
VD:<?php
2. Các kiểu dữ liệu:
VD:
DẤU CHẤM TRONG TÊN BIẾN:
VD :
5. BIỂU THỨC
Biểu thức là một phần quan trọng trong PHP. Phần lớn mọi thứ ban viết đều được coi như 1 biểu thức. Điều này có nghĩa là mọi thứ đều có 1 giá trị. Một dạng cơ bản nhất của biểu thức bao gồmcác biến và hằng số. PHP hỗ trợ 3 kiểu giá trị cơ bản nhất: số nguyên, số thực, và xâu. Ngòai ra còn có mảng và đối tượng. Mỗi kiểu giá trị này có thẻ gán cho các biến hay làm giá trị trả ra của các hàm. Bạn có thể thao tác với các biến trong PHP giống như với trong C.
VD
$b = $a = 5; /* assign the value five into the variable $a and $b */
$c = $a++; /* post-increment, assign original value of $a
(5) to $c */
$e = $d = ++$b; /* pre-increment, assign the incremented value of
$b (6) to $d and $e */
/* at this point, both $d and $e are equal to 6 */
$f = double($d++); /* assign twice the value of $d before
the increment, 2*6 = 12 to $f */
$g = double(++$e); /* assign twice the value of $e after
the increment, 2*7 = 14 to $g */
$h = $g += 10; /* first, $g is incremented by 10 and ends with the
value of 24. the value of the assignment (24) is
then assigned into $h, and $h ends with the value
of 24 as well. */
6.CÁC CẤU TRÚC LỆNH:
6.1 If ....else....else if:
if (điều kiện) { do something; }
elseif ( điều kiện ) { do something;}
else { do something;}
6.2 Vòng lặp :
7 HÀM:
8. CÁC TOÁN TỬ:
10. THAM CHIẾU:
11. THAO TÁC VỚI ẢNH:
Để connect tới 1 CSDL trên MySQL server rất đơn giản. Bạn chỉ cần dùng hàm mysql_connect(host, user, password) để mở 1 kết nối tới MYSQL
VD:<?php
echo "This is a test"; // This is a one-line c++ style comment
/* This is a multi line comment
yet another line of comment */
echo "Another Test"; # This is shell-style style comment?>
2. Các kiểu dữ liệu:
2.1 Số nguyên : Được khai báo và sử dụng giá trị giiống với C:
VD: $a = 1234; # decimal number
$a = -123; # a negative number
$a = 0123; # octal number (equivalent to 83 decimal)
$a = 0x12; # hexadecimal number (equivalent to 18 decimal)
2.2 Số thực:
VD :$a = 1.234; $a = 1.2e3;
Chú ý: Khi sử dụng các số thực để tính toán , có thể sẽ làm mất giá trị của nó. Vì vậy, nên sử dụng các hàm toán học trong thư viện chuẩn để tính toán.
2.3 Xâu :
Có 2 cách để xác định 1 xâu: Đặt giữa 2 dấu ngoặc kép (") hoặc giữa 2
dấu ngoặc đơn ('). Chú ý: Các biến giá trị sẽ không được khai triển trong xâu giữa 2 dấu ngoặc đơn.
2.4 Mảng :
Mảng thực chất là gồm 2 bảng : bảng chỉ số và bảng liên kết.
a. Mảng 1 chiều : Có thể dùng hàm : list() hoặc array() hoặc liệt kê
các giá trị của từng phần iử trong mảng để tạo mảng . Có thể thêm các giá trị vào mảng để tạo thành 1 mảng. --> Dùng giống trong C
Có thể dùng các hàm asort(), arsort(), ksort(), rsort(), sort(),
uasort(), usort(), and uksort() để sắp xếp mảng. Tuỳ thuộc vào việc bạn định sắp xếp theo kiểu gì.
b. Mảng nhiều chiều: Tương tự C. bạn có thể dùng như VD sau:
$a[1] = $f; # one dimensional examples
$a["foo"] = $f;
$a[1][0] = $f; # two dimensional
$a["foo"][2] = $f; # (you can mix numeric and associative indices)
$a[3]["bar"] = $f; # (you can mix numeric and associative indices)
PHP3 không thể tham chiếu trự tiếp từ một mảng nhiều chièu khi ở bên
trong 1 xâu:
VD :
$a[3]['bar'] = 'Bob';
echo "This won't work: $a[3][bar]";
Kết quả trả ra sẽ là : This won't work: Array[bar].
Nhưng với VD sau sẽ chạy đúng:
$a[3]['bar'] = 'Bob';
echo "This will work: " . $a[3][bar];
Với PHP4, vấn đề sẽ được giả quyết bằng cách cho mảng vào giữa 2 dấu ngoặc móc { }
VD : $a[3]['bar'] = 'Bob';
echo "This will work: {$a[3][bar]}";
PHP không yêu cầu phải khai báo trước kiểu dữ liệu cho các biến, Kiểu
dữ liệu của biến sẽ phụ thuộc vào kiểu dữ liệu mà bạn gán cho nó,
VD :
$foo = "0"; // $foo là kí tự ASCII 48
$foo++; // $foo is xâu "1" (ASCII 49)
$foo += 1; // $foo là số nguyên (2)
$foo = $foo + 1.3; // $foo là số thực (3.3)
$foo = 5 + "10 Little Piggies"; // $foo là số nguyên (15)
3. Biến - giá trị:
PHP quy định một biến được biểu diễn bắt đầu bằng dấu $, sau đó là một chữ cái hoặc dấu gạch dưới.
3.1 Một số biến đã được tạo sẵn :
argv : Mảng tham số truyền cho script. Khi đoạn script chạy bằng dòng lệnh, tham số này sẽ được dùng giống như C để truy nhập các tham số trên dòng lệnh.
argc : số các tham số đựoc truyền. Dùgn với argv;
PHP_SELF : tên cỷa đoạn mã script đang thực hiện. Nếu PHP đang được chạy từ dòng lệnh thì tham số này không có giá trj.
HTTP_COOKIE_VARS: một mảng các giá trị được truyền tới script hiện tại bằng HTTP cookie. Chỉ có tác dụng nếu "track_vars" trong cấu hình được đặt hoặc chỉ dẫn <?php_track_vars?>
HTTP_GET_VARS: Mảng các giá trị truyền tới script thông qua phương thức HTTP GET. Chỉ có tác dụng nếu "track_vars" trong cấu hình được đặt hoặc chỉ dẫn <?php_track_vars?>
HTTP_POST_VARS:
3.2 Phạm vi giá trị:
PHP coi 1 biến có một giới hạn. Để xác định một biến tòan cục (global) có tác dụng trong một hàm , ta cần khai báo lại. Nếu không giá trị của biến sẽ được coi như là cục bộ trong hàm.
VD :
$a = 1;
$b = 2;
Function Sum () {
global $a, $b;
$b = $a + $b;
}
Sum ();
echo $b;
Khi có khai báo global ở trên, $a và $b được cho biết đó là những biến tòan cục. Nếu không có khai báo global, $a và $b chỉ được coi là các biến bên trong hàm Sum(). Điều này khác với C
Một cách khác để dùng biến tòan cục trong 1 hàm l� ta dung mảng $GLOBAL của PHP
VD ở trên sẽ có thể viết như sau:
$a = 1;
$b = 2;
Function Sum () {
$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
}
Sum ();
echo $b;
Một chú ý khác là khai báo static. Với khai báo này bên trong một hàm
với 1 biến cục bộ, giá trị của biến cục bộ đó sẽ không bị mất đi khi
ra khỏi hàm.
VD :
Function Test () {
static $a = 0;
echo $a;
$a++;
}
Với khai báo như trên , $a sẽ không mất đi giá trị sau khi thực hiện lơi gọi hàm Test() mà $a sẽ được tăng lên 1 sau mỗi lần gọi hàm
Test().
3.3 Tên biến:
Một biến có thể gắn với 1 cái tên .
VD:
$a = "hello";
$a = "world";
==> $hello = "world"
và
echo "$a ${$a}";
<==> echo "$a $hello";
Kết quả ra sẽ là : hello world
Chú ý : bạn có thể gặp phải trường hợp không rõ ràng khi sử dụng cách này với mảng . VD : $a[1] sẽ hiểu là bạn muốn dùng $a[1] như 1 biến hay dùng $a như 1 biến với [1] là chỉ số?
Để tránh trường hợp này , cần có sựu phân biệt rõ bằng dấu { }.
VD:
${$a[1]} hoặc ${$a}[1].
3.4 Các giá trị bên ngòai phạm vi PHP
HTML Form : khi 1 form gắn với 1 file php qua phương thức POST
VD:
<form action="foo.php3" method="post">
Name: <input type="text" name="name">
<input type="submit">
</form>
PHP sẽ tạo 1 biến $name bao gồm mọi giá trị trong truờng Name của Form. PHP có thể hiểu được một mảng một chiều gồm các giá trị trong 1 form. Vì vậy, bạn có thể nhóm những giá trị liên quan lại với nhau hoặc sử dụng đặc tính này để nhận các giá trị từ 1 đầu vào tuỳ chọn.(multi
select input)
Khi tính chất track_vars được đặt trong cấu hình hoặc có chỉ dẫn <?php_track_vars?> . các giá trị được submit được lấy ra qua phương thức GET và POST có thể lấy từ 2 mảng tòan cục $HTTP_POST_VARS và
$HTTP_GET_VARS
IMAGE SUBMIT:
Khi dùng 1 image để thực hiện submit, có thể dùng tag như sau:
<input type=image src="image.gif" name="sub">
Khi người dùng click chuột trên ảnh, form tương ứng sẽ được gửi tới server kèm theo 2 giá trị thêm vào : sub_x và sub_y. Những biến này sẽ lưu giữ toạ đọ mà người dùng đã click chuột trên ảnh. Người lạp trình có kinh nghiệm sẽ thấy rằng trên thực tế, trình duyệt gửi các giá trị
có chu kỳ thời gian nhưng PHP đã tạo cảm giãc gần như việc gửi các giá trị đó là liên tục.
HTTP Cookies :
PHP hỗ trỡ HTTP cookies theo định dạng của Netscape. Cookies file lưu giữ thông tin của các trình duyệt từ xa và qua đó có thể theo dõi hay nhận biết người sử dụng. Có thể dùng Cookies bằng hàm SetCookie(). Hàm này cần được gọi trước khi thông tin được gửi tới trình duyệt. Bất kỳ cookie nào gửi tới bạn từ máy khách (client) sẽ tự động chuyển thành dữ liệu của phương thức GET và POST. Nếu bạn muốn có nhiều giá trị trong 1 cookie, chỉ cần thêm vào dấu [ ] với tên của cookie.
VD :
SetCookie ("MyCookie[]", "Testing", time()+3600);
Chú ý rằng cookie sẽ thay thế cho cookie cùng tên, trừ trườg hợp khác
đường dẫn hoặc miền.
BIẾN MÔI TRƯỜNG:
PHP tự động tạo biến cho các biến môi trường như 1 biến bình thường của PHP
VD :
echo $HOME; /* Shows the HOME environment variable, if set. */
Vì thông tin tới qua các phương thức GET, POST , Cookie cũng tự đông tạo các biến PHP, thỉnh thoảng bạn nên đọc 1 biến từ môi trường để chắc chắn rằng bạn có đúng version. Hàm getenv() và putenv() giúp bạn đọc và ghi với các biến môi trường.
DẤU CHẤM TRONG TÊN BIẾN:
Bình thường, PHP không thay đổi tên biến khi biến đó được truyền vào đoạn script. Tuy nhiên, nên chú ý rằng dáu chấm (.) không phải là một ký hiệu hợp lệ trong tên biến đối với PHP. Vì vậy, PHP sẽ tự động thay thế các dấu chấm bằng dấu gạch dưới.(_)
4. CONSTANTS
PHP định nghĩa sẵn một vài hằng số:
_FILE_ : tên của script file đang được thực hiện.
_LINE_ : số dòng của mã script đang được thực hiện trong script file hiện tại.
_PHP_VERSION_ : version của PHP
_PHP_Ó : tên hệ điều hành mà PHP đang chạy
TRUE
FALSE
E_ERROR : báo hiệu có lỗi
E_PARSE : báo lỗi sai khi biên dịch
E_NOTICE : Một vài sự kiện có thể là lỗi hoặc không.
E_ALL :
Có thể định nghĩa một hằng số bằng hàm define()
VD :
<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
?>
5. BIỂU THỨCBiểu thức là một phần quan trọng trong PHP. Phần lớn mọi thứ ban viết đều được coi như 1 biểu thức. Điều này có nghĩa là mọi thứ đều có 1 giá trị. Một dạng cơ bản nhất của biểu thức bao gồmcác biến và hằng số. PHP hỗ trợ 3 kiểu giá trị cơ bản nhất: số nguyên, số thực, và xâu. Ngòai ra còn có mảng và đối tượng. Mỗi kiểu giá trị này có thẻ gán cho các biến hay làm giá trị trả ra của các hàm. Bạn có thể thao tác với các biến trong PHP giống như với trong C.
VD
$b = $a = 5; /* assign the value five into the variable $a and $b */
$c = $a++; /* post-increment, assign original value of $a
(5) to $c */
$e = $d = ++$b; /* pre-increment, assign the incremented value of
$b (6) to $d and $e */
/* at this point, both $d and $e are equal to 6 */
$f = double($d++); /* assign twice the value of $d before
the increment, 2*6 = 12 to $f */
$g = double(++$e); /* assign twice the value of $e after
the increment, 2*7 = 14 to $g */
$h = $g += 10; /* first, $g is incremented by 10 and ends with the
value of 24. the value of the assignment (24) is
then assigned into $h, and $h ends with the value
of 24 as well. */
6.CÁC CẤU TRÚC LỆNH:
6.1 If ....else....else if:
if (điều kiện) { do something; }
elseif ( điều kiện ) { do something;}
else { do something;}
Không có nhận xét nào:
Đăng nhận xét