Diễn Đàn Cần Thơ Online » Tổng hợp » WebMaster Club
Căn Bản Về PHP [ Tutorial ]



Loading
Tin tức Rao Vặt
Một phụ nữ có “nhũ hoa” ở … lòng bàn chân
Baidu công bố trình duyệt mới của riêng mình
Lucy Pinder – nổi tiếng nhờ vòng 1 quá cỡ
Việt Nam lần đầu có giải môtô chuyên nghiệp
Ngây ngất thiếu nữ mặc bikini muối kim chi củ cải
Sắp cấp 71 triệu chứng minh thư điện tử
Hai cái tên Picasa và Blogger sẽ bị xóa sổ ?!?
Gần 200 website Việt Nam bị tấn công trong 1 đêm
Toàn Quốc Anh Em Cẩn Thận Với Gái Massage
Hà Nội Bán trà giảo cổ lam, thảo dược quý sapa
Toàn Quốc Bán máy dò đồng, tiền cổ và kim...
Toàn Quốc Bán máy dò vàng, bạc kim loại
Toàn Quốc Bán buôn quần áo Xuân, hè 2012Bán buôn...
Toàn Quốc Bán máy dò vàng, bạc kim loạibán...
Toàn Quốc Bán buôn quần áo Xuân, hè 2012
Toàn Quốc Bán máy dò vàng, bạc kim loại

Trả lời
 
Điều chỉnh
  #1  
Cũ 07-09-2005, 02:09
DHNguyen's Avatar
DHNguyen DHNguyen đang ngoại tuyến
Thành viên
Ngày tham gia: 29:08:2005
Nơi ở: 0939666666
Bài viết: 9.678
Thanks: 149
Thanked 132 lần trong 101 bài
CTG: 45.986
Gửi tin nhắn thông qua ICQ đến DHNguyen Gửi tin nhắn thông qua Yahoo đến DHNguyen
Căn Bản Về PHP [ Tutorial ]
1. Php là gì?
PHP (Personal Home Page)là một ngôn ngữ lập trình kiểu script , chạy trên Server và trả về mã HTML cho trình duyệt. VD:

PHP Code:
<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.

PHP Code:
<? echo ("this is the simplest, an SGML processing instruction\n"); ?>
2.

PHP Code:
<?php echo("if you want to serve XML documents, do like this\n"); ?>
3.

PHP Code:
<script language=php>
echo (
"some editors (like FrontPage) don't 
like processing instructions"
); 
</script> 
4.

PHP Code:
<% 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 Code:
<?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:

PHP Code:
$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 :

PHP Code:
$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() (http://php.net/list) hoặc array() (http:://php.net/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() (http:://php.net/asort), arsort (http:://php.net/arsort), ksort() (http:://php.net/ksort), rsort() (http:://php.net/rsort), sort() (http:://php.net/sort), uasort() (http:://php.net/uasort), usort() (http:://php.net/usort), and uksort() (http:://php.net/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:

PHP Code:
$a1] = $f# one dimensional examples 
$a["foo"] = $f

$a1][0] = $f# two dimensional 
$a["foo"][ 2] = $f# (you can mix numeric and associative indices) 
$a3]["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 :

PHP Code:
$a3]['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:

PHP Code:
$a3]['bar'] = 'Bob'
echo 
"This will work: " $a3][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 { }

PHP Code:
$a3]['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 :

PHP Code:
$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 "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ùng 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á trị. Chú ý: Nếu chức năng AutoGlobal ko được set thì giá trị này có thể lấy từ $_SERVER['PHP_SELF']

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?> (trong PHP4 trở đi thì có thể dùng $_COOKIE , đểm khác nhau là nếu bạn dùng $HTTP_COOKIE_VARS thì bạn phải global trước khi sữ dụng trong 1 hàm còn $_COOKIE thì ko.

PHP Code:
function temp() {
 
//phải global biến $HTTP_COOKIE_VAR mới sữ dụng được
 
global $HTTP_COOKIE_VARS;
 echo 
$HTTP_COOKIE_VARS['test'];
 
//còn $_COOKIE thì ko
 
echo $_COOKIE['test'];

'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?> (hoặc có thể thông qua $_GET đối với PHP 4)

HTTP_POST_VARS : Mảng các giá trị truyền tới script thông qua phương thức HTTP POST. 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?> (hoặc có thể thông qua $_POST đối với PHP 4)

Ngoài ra còn có HTTP_SERVER_VARS ($_SERVER) chứa thông tin về Server và $_ENV là biến về giá trị môi trường .

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 toàn 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 :

PHP Code:
$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 toàn 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 toàn 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:

PHP Code:
$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 :

PHP Code:
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:

PHP Code:
$a "hello";
$
$a "world"// ==> $hello = "world" 
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 ngoài phạm vi PHP
HTML Form:
Khi 1 form gắn với 1 file php qua phương thức POST VD:

PHP Code:
<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. (nếu chức năng auto global ko active thì biến $name phải được lấy thông qua $_POST['name'])

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 toàn 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() (http://php.net/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 :

PHP Code:
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.

ENV:
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 (nếu chức năng AutoGlobal ko được active thì bạn sẽ phải âấy từ biến $_ENV của PHP) VD :

PHP Code:
echo $HOME;  /* Shows the HOME environment variable, if set. */
echo $_ENV['HOME']; //dùng thế này nều AutoGlobal ko active 
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() (http://php.net/getenv) và putenv() (http://php.net/putenv) giúp bạn đọc và ghi với các biến môi trường.

Chú ý: : 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_OS : 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 : báo tất cả các lỗi

Có thể định nghĩa một hằng số bằng hàm define() (http://php.net/define) VD :

PHP Code:
<?php
define
("CONSTANT""Hello world.");
echo 
CONSTANT// outputs "Hello world."
?>
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. Ngoài 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

PHP Code:
$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:

PHP Code:
if (điều kiện)  { do something; }
elseif  ( 
điều kiện )  { do something;}
else { do 
something;} 
Ví dụ :

PHP Code:
If (date('H') > && date('H') < 12) {
 echo 
"Chào buổi sáng";
} else If (
date('H') > 12 && date('H') < 18) {
 echo 
"Chào buổi chiều";
} else {
 echo 
"Chào buổi tối";

6.2 Vòng lặp :
while ( DK) { ...} do { .....} white ( DK ); for (bieuthuc1; bieuthuc2; bieu thuc3) {.....}

Đối với PHP 4 : foreach(array_expression as $value) statement foreach(array_expression as $key => $value) statement




6.3 break và continue:
break : thoát ra khỏi vòng lặp hiện thời continue : bỏ qua vòng lặp hiện tại, tiếp tục vòng tiếp theo.

Vd :

PHP Code:
$m 100;
$i 0;
while (
$i 1000) {
 
$i $i+1;
 if (
$i $m) break; //Thoát vòng lặp nếu $i > $m
 
if (($i 2) != 0) continue; //Bỏ số lẻ
 
echo "Loop : $i<br>";
}

for (
$i 0;$i $m;$i $i 3) {
 
//For với Step = 3 , thông thường thì dùng $i++
 
if (($i 2) == 0) continue;
 echo 
"For : $i<br>" ;
}

foreach (
$_SERVER as $key => $value) {
 echo 
"\$_SERVER[$key] = $value;<br>";

6.4 switch
switch (tên biến) { case trường hợp 1: ..... break; case trường hợp 2: ..... break; case trường hợp 3: ..... break; default : }

VD:

PHP Code:
Switch ($i) {
 case 
0:
 case 
1:
  echo 
"\$i = 0 hay \$i = 1";
 break;
 case 
$m:
  echo 
"\$i = giá trị của \$m";
 break;
 default:
  echo 
"Giá trị mặc định";

7 HÀM:
Dùng giống với C++. Ngoại trừ bạn không cần phải khai báo kiểu cho tham số của hàm:

7.1 Tham trị :
VD:

PHP Code:
function takes_array($input) {
   echo 
"$input[0] + $input[1] = "$input[0]+$input[1];

7.2 Tham biến :

PHP Code:
function add_some_extra(&$string) {
    
$string .= 'and something extra.';

7.3 Tham số có giá trị mặc định:

PHP Code:
function makecoffee ($type "cappucino") {
  return 
"Making a cup of $type.\n";

Chú ý : khi sử dụng hàm có đối số có giá trị mặc định, các biến này sẽ phải nằm về phía phải nhát trong danh sách đối số. VD :

PHP Code:
//Sai
function makeyogurt ($type "acidophilus"$flavour) {
   return 
"Making a bowl of $type $flavour.\n";
}

//Đúng
function makeyogurt ($flavour$type "acidophilus") {
   return 
"Making a bowl of $type $flavour.\n";

Chú ý : đối với PHP 4 , một tham biến ko thể có giá trị mặc định (điều này đã được Fix trong PHP 5)

7.4 Giá trị trả lại của hàm:
Có thể là bất kỳ giá trị nào, Tuy vây, không thể trả lại nhiều giá trị riêng lẻ nhưng có thể trả lại một mảng các giá trị. VD

PHP Code:
function small_numbers() {
   return array (
012);

Để trả lại một tham trỏ, bạn cần có dấu & ở cả khai báo của hàm cũng như ở giá trị trả lại. VD :

PHP Code:
function &returns_reference() {
   return &
$someref;
}

$newref = &returns_reference(); 
7.5 Hàm biến:
PHP cho phép sử dụng hàm giá trị Nghĩa là khi một biến được goi có kèm theo dấu ngoặc đơn , PHP sẽ tìm hàm có cùng tên với giá trị biến đó và thực hiện

VD

PHP Code:
<?php
function foo() {
   echo 
"In foo()<br>\n";
}

function 
bar$arg '' ) {
   echo 
"In bar(); argument was '$arg'.<br>\n";
}

$func 'foo';
$func();
$func 'bar';
$func'test' );
?>
8. CÁC TOÁN TỬ:
PHP có các toán tử cho các phép số học : + - * / % Các toán tử logic : and or xor ! && || Toán tử thao tác với bit : & | ^ ~ << >> Toán tử so sánh : ==, != ,< ,> ,<=, >=, ==== (bằng va cùng kiểu - PHP4 only), !== (khác hoặc khác kiểu - PHP4 only) Toán tử điều khiển lỗi : @ - khi đứng trước 1 biểu thức thì các lỗi của biểu thức sẽ bị bỏ qua và lưu trong $php_errormsg VD:

PHP Code:
<?php
/* Intentional SQL error (extra quote): */
$res = @mysql_query ("select name, code from 'namelist") or
   die (
"Query failed: error was '$php_errormsg'");
?>
Toán tử thực thi : ` `- PHP sẽ thực hiện nội dung nằm giữa 2 dấu ` như 1 lệnh shell. Trả ra giá trị là kết quả thực hiện lệnh VD :

PHP Code:
$output = `ls -al`; //liệt kê các file bằng lệnh Linux
echo "<pre>$output</pre>"
9 LỚP VÀ ĐỐI TƯỢNG:
Class: là tập hợp các biến và hàm làm việc với các biến này. Một lớp có định dạng như sau:

PHP Code:
<?php
class Cart {
   var 
$items;  // Items in our shopping cart
  
   // Add $num articles of $artnr to the cart

   
function add_item ($artnr$num) {
       
$this->items[$artnr] += $num;
   }
  
   
// Take $num articles of $artnr out of the cart
function remove_item ($artnr$num) {
       if (
$this->items[$artnr] > $num) {
           
$this->items[$artnr] -= $num;
           return 
true;
       } else {
           return 
false;
       }   
   }
}
?>
Lớp Cart ở đây là một kiểu dữ liệu, vì vậy bạn có thể tạo một biến có kiểu này với toán tử new VD:

PHP Code:
$cart = new Cart;
$cart->add_item("10"1); 
Lớp có thể được mở rộng bằng những lớp khác. Lớp mới thu được có tất cả những biến và hàm của cá lớp thành phần. Thực hiện việc thừa kế này bằng từ khoá extends. Chú ý : kế thừa nhiều lớp 1 lúc không được chấp nhận. VD :

PHP Code:
class Named_Cart extends Cart {
   var 
$owner;
 
   function 
set_owner ($name) {
       
$this->owner $name;
   }

Các hàm khởi tạo của lớp được gọi tự động khi bạn gọi toán tử new. Tuy nhiên, các hàmkhởi tạo của lớp cha sẽ không được gọi khi hàm khởi tạo của lớp con được gọi. Hàm khởi tạo có thể có đối số hoặc không,

10. THAM CHIẾU:
Tham chiếu trong PHP có nghĩa là lấy cùng 1 giá trị bằng nhiều tên biến khác nhau. Khác với con trỏ trong C, tham chiếu là một bảng các bí danh. Chú ý : trong PHP, tên biến và nôi dung của biến là khác nhau. Vì vậy, cùng 1 nội dugn có thể có nhiều tên khác nhau. Tham chiếu PHP cho phép bạn tạo 2 biến có cùng nôi dung. VD :

PHP Code:
$a = & $b//-- > $a, $b trỏ tới cùng 1 giá trị. 
Tham chiếu truỳen giá trị bằng tham chiếu. Thực hiện việc này bằng cách tạo một hàm cục bộ và truyền giá trị được tham chiếu VD:

PHP Code:
function foo (&$var) {
   
$var++;
}

$a=5;
foo ($a); //--> Kết quả : $a = 6; 
Giá trị trả lại của một hàm bằng tham chiếu rất tiện khi bạn muốn sử dụng hàm để tìm 1 giá trị trong 1 phạm vi nào đó. VD :

PHP Code:
function &find_var ($param) {
   ...
code...
   return 
$found_var;
}

$foo =& find_var ($bar); 
Khi bạn muốn loại bỏ mối liên kết giữa tên biến và giá trị của biến, sử dụng hàm unset() VD :

PHP Code:
$a 1;
$b =& $a;
unset (
$a); 
11. THAO TÁC VỚI ẢNH:
PHP không bị giới hạn với mã HTML được trả lại cho trình duyệt. Vì vậy, có thể dùng PHP để tạo và thao tác với các file ảnh có định dạng khác nhau, bao gồm :gif, png, jpg, wbmp, and xpm. PHP có thể đưa các file ảnh trực tiếp đến các trình duyệt. Bạn sẽ cần biên dịch PHP với thư viện GD bao gồm các hàm thao tác với ảnh. GD và PHP có thể sẽ cần có thêm 1 số thư viện khác, tuỳ thuộc vào định dạng của file ảnh cần dùng. VD : Tạo ảnh GIF với PHP

PHP Code:
<?php
   Header
("Content-type: image/gif");
   
$string=implode($argv," ");
   
$im imagecreatefromgif("images/button1.gif");
   
$orange ImageColorAllocate($im22021060);
   
$px = (imagesx($im)-7.5*strlen($string))/2;
   
ImageString($im,3,$px,9,$string,$orange);
   
ImageGif($im);
   
ImageDestroy($im);
?>
giả sử VD trên trong file button.php . KHi đó, để sử dụng ta dùng tag : <img src="button.php?text">. ,

12. PHP và MySQL:
Để 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 server với kết quả là giá trị trả về của hàm (Giả sử là biến $db). Sau đó, dùng hàm mysql_select_db(database_name, link_id) để chọn CSDL bạn muốn kết nối. Để thực hiện một câu lệnh truy vấn, dùng hàm mysql_query (http://php.net/mysql_query)(query, link_ID). Giá trị trả lại của hàm là kết quả của câu truy vấn. Nếu bỏ qua link_ID thì kết nối cuối cùng tới MySQL server sẽ được thực hiện. Bạn có thể xem ví dụ sau sẽ hiểu rõ hơn.

PHP Code:
<html>
<body>
<?php
$db 
mysql_connect("localhost""root");

mysql_select_db("mydb",$db);

$result mysql_query("SELECT * FROM employees",$db);

printf("First Name: %s<br>\n"mysql_result($result,0,"first"));

printf("Last Name: %s<br>\n"mysql_result($result,0,"last"));

printf("Address: %s<br>\n"mysql_result($result,0,"address"));

printf("Position: %s<br>\n"mysql_result($result,0,"position"));

?>

</body>
</html>
Ngoài cách dùng hàm mysql_result() (http://php.net/mysql_result) để lấy kết quả thực hiện , bạn có thể dùng các hàm khác : mysql_fetch_row() (http://php.net/mysql_fetch_row), mysql_fetch_array() (http://php.net/mysql_fetch_array), và mysql_fetch_object() (http://php.net/mysql_fetch_object).

mysql_fetch_row (http://php.net/mysql_fetch_row)($result) : trả về một mảng các dữ liệu lấy từ 1 dòng trong CSDL. Nếu đã ở cuối CSDL, giá trị trả về là false. Bạn phải dùng chỉ số của các trường trong CSDL nếu muốn lấy dữ liệu,
VD :

PHP Code:
<html>
<body>
<?php
$db 
mysql_connect("localhost""root");
mysql_select_db("mydb",$db);
$result mysql_query("SELECT * FROM employees",$db);

echo 
"<table border=1>\n";
echo 
"<tr><td>Name</td><td>Position</tr>\n";
while (
$myrow mysql_fetch_row($result)) {
  
printf("<tr><td>%s %s</td><td>%s</td></tr>\n"$myrow[1], $myrow[2], $myrow[3]);
}
echo 
"</table>\n";
?>
</body>
</html>
mysql_fetch_array (http://php.net/mysql_fetch_array) (int result [, int result_type]) : trả về một mảng chứa dữ liệu lấy từ 1 dòng trong CSDL. Tương tự như mysql_fetch_row() nhưng bạn có thể lấy trực tiếp tên trường để lấy dữ liệu.
VD : Cùng một CSDL như trên, bạn có thể thấy sự khác biệt

PHP Code:
<html>
<body>
<?php
$db 
mysql_connect("localhost""root");
mysql_select_db("mydb",$db);
$result mysql_query("SELECT * FROM employees",$db);
if (
$myrow mysql_fetch_array($result)) {
 do {
   
printf("<a href=\"%s?id=%s\">%s %s</a><br>\n"$PHP_SELF$myrow["id"], $myrow["first"], $myrow["last"]);
 } while (
$myrow mysql_fetch_array($result));
} else {
 echo 
"Sorry, no records were found!"
?>
</body>
</html>
mysql_fetch_object() (http://php.net/mysql_fetch_object) : chuyển kết quả thành một đối tượng với các trường là các trường trong CSDL
VD :

PHP Code:
<?php 
mysql_connect 
($host$user$password);
$result mysql_db_query ("database""select * from table");
while (
$row mysql_fetch_object ($result)) {
   echo 
$row->user_id;
   echo 
$row->fullname;
}
mysql_free_result ($result);
?>

Chỉnh sửa bởi admin : lúc 29-01-2007 12:10.
Trả lời kèm trích dẫn
  #2  
Cũ 04-11-2008, 14:02
Hoooo's Avatar
Hoooo Hoooo đang ngoại tuyến
Thành viên
Ngày tham gia: 04:11:2008
Bài viết: 15
Thanks: 0
Thanked 0 lần trong 0 bài
CTG: 446
Re: Căn Bản Về PHP [ Tutorial ]
Bài này có copy ở đâu không vậy? Nếu có thì làm ơn cho cái nguồn....
Trả lời kèm trích dẫn
  #3  
Cũ 04-11-2008, 15:23
dongphuong dongphuong đang ngoại tuyến
Thành viên nhiệt tình
Ngày tham gia: 12:09:2005
Nơi ở: Cần Thơ
Bài viết: 1.227
Thanks: 96
Thanked 89 lần trong 68 bài
CTG: 0
Re: Căn Bản Về PHP [ Tutorial ]
Hic, thêm 1 đồng chí đào mộ nữa rồi!
Trả lời kèm trích dẫn
  #4  
Cũ 06-11-2008, 19:49
lovelycesar's Avatar
lovelycesar lovelycesar đang ngoại tuyến
Thành viên
Ngày tham gia: 08:07:2007
Bài viết: 57
Thanks: 2
Thanked 2 lần trong 2 bài
CTG: 446
Gửi tin nhắn thông qua Yahoo đến lovelycesar
Re: Căn Bản Về PHP [ Tutorial ]
Trích dẫn:
1. Php là gì?
PHP (Personal Home Page)là một ngôn ngữ lập trình kiểu script
Bó tay luôn,
(viết thêm cho đủ 2à ký tự)
__________________
MayChu.Net - Network Tools
Trả lời kèm trích dẫn
  #5  
Cũ 06-11-2008, 21:47
dongphuong dongphuong đang ngoại tuyến
Thành viên nhiệt tình
Ngày tham gia: 12:09:2005
Nơi ở: Cần Thơ
Bài viết: 1.227
Thanks: 96
Thanked 89 lần trong 68 bài
CTG: 0
Re: Căn Bản Về PHP [ Tutorial ]
Thêm 1 đồng chí đào mộ cho topic nữa. nhưng tôi cũng nói luôn về tính đúng đắn của DHNguyen.

Trích dẫn:
PHP (Personal Home Page)là một ngôn ngữ lập trình kiểu script , chạy trên Server và trả về mã HTML cho trình duyệt.
"chạy trên Server và trả về mã HTML cho trình duyệt" là sai hoàn toàn.
Có lẽ đã nhầm lẫn giữa php và asp.net. Chỉ có asp.net mới chạy trên server, đúng với đoạn trên.
Trả lời kèm trích dẫn
  #6  
Cũ 06-11-2008, 23:05
lovelycesar's Avatar
lovelycesar lovelycesar đang ngoại tuyến
Thành viên
Ngày tham gia: 08:07:2007
Bài viết: 57
Thanks: 2
Thanked 2 lần trong 2 bài
CTG: 446
Gửi tin nhắn thông qua Yahoo đến lovelycesar
Re: Căn Bản Về PHP [ Tutorial ]
Được gửi bởi dongphuong Xem bài viết
Thêm 1 đồng chí đào mộ cho topic nữa. nhưng tôi cũng nói luôn về tính đúng đắn của DHNguyen.



"chạy trên Server và trả về mã HTML cho trình duyệt" là sai hoàn toàn.
Có lẽ đã nhầm lẫn giữa php và asp.net. Chỉ có asp.net mới chạy trên server, đúng với đoạn trên.
Không biết mà cũng đi đính chính, cả PHP và ASP hay ASP.NET đều là server-side scripts.
Trích dẫn:
PHP, which stands for "PHP: Hypertext Preprocessor"
Trích dẫn:
What distinguishes PHP from something like client-side JavaScript is that the code is executed on the server. If you were to have a script similar to the above on your server, the client would receive the results of running that script, with no way of determining what the underlying code may be. You can even configure your web server to process all your HTML files with PHP, and then there's really no way that users can tell what you have up your sleeve.
__________________
MayChu.Net - Network Tools
Trả lời kèm trích dẫn
Trả lời

Bookmarks

Điều chỉnh

Quy đinh gửi bài
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Bật
Smilies are Bật
[IMG] đang Bật
HTML đang Tắt

Truy cập nhanh



Theo giờ GMT +7:: 03:46.


Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.