Hỏi đáp về 4r của IPB

Thảo luận trong 'Lập trình & Đồ hoạ' bắt đầu bởi Incomplete, 15/5/06.

  1. Incomplete

    Incomplete Donkey Kong

    Tham gia ngày:
    19/7/05
    Bài viết:
    455
    Hôm nay tôi mới có hứng thu vô đây,căn bản là do điều kiện bắt buộc phải biết ít nhất chút ít về cách làm và quản lý,giao diện v.vv...của forum nên mới tầm sư học đạo thế này.Vừa vô đây cái thấy topic lộn xộn quá chả biết tìm ở đầu cả,-->mở topic này để hỏi đáp cho tiện lợi :hug:
    Điều đầu tiên muốn nói là: Em mù IT,ngoài những chức năng thông thường ra,skin,giao diện và mod của diễn đàn em chưa được đụng tới bao giờ.-->muốn tìm hiểu.
    Vậy nên bác nào có thể chỉ cho em một cách sơ qua về giao diện,mod,v..v...của 4r không.4r em tham gia hiện giờ là của Invision Power Board(chỉ biết được đến thế thôi ::( )
     
  2. Nguyen_Kain

    Nguyen_Kain Quậy hết mình Moderator

    Tham gia ngày:
    28/5/04
    Bài viết:
    1,299
    Thứ nhất , Forum của bác là Forum IPB bản bao nhiêu ?
    Thứ hau , bác cần biết gì về giao diện hay MOD , ý bác là thay giao diện vào hack MOD phải không ? :-/
     
  3. Incomplete

    Incomplete Donkey Kong

    Tham gia ngày:
    19/7/05
    Bài viết:
    455
    1. v2.1.4 có lẽ là bản này.
    2. Tôi muốn biết tất cả,hiện giờ tôi được bổ làm admin của 1 trang web,tuy nhiên ngoài những chức năng quản lý ra,những thứ khác tôi không biết gì cả. ::( .bác có thể hướng dẫn một cách basic về 4r là tốt nhất,những điều cần biết,những gì cần và nên làm làm,những mod tốt,
    3.Nếu các bác không có thời gian thì có thể giới thiệu những trang web nói về IPB để tôi tự mày mò tìm kiếm cũng được.Xin cảm ơn.
     
  4. Nguyen_Kain

    Nguyen_Kain Quậy hết mình Moderator

    Tham gia ngày:
    28/5/04
    Bài viết:
    1,299
    Trang Web về IPB thì không có một trang nào thực sự chuyên môn đâu , tất cả những cái này phải tự mình tìm hiểu mới được .

    Điều đầu tiên bạn cần biết là cách thay skin , đây là cái qua trọng quyết định độ ăn khách của forum đó :D

    Khi các bạn down một bộ skin về , giải nén nó sẽ có 2 file :

    1 . skin.xml
    2 . images.xml
    .

    Trước khi import hãy chmod cho thư mục skin_cahe thành 777 .

    Để thay skin các bạn vào ACP --->Skins & Templates --->Skin Import/Export .

    [​IMG]

    b]Tiếp theo sẽ có một cửa sổ mới được mở ra , tại đây bạn có thể export skin đang dùng và import skin mới . [/b]

    Export ( xuất ) skin .

    Import ( nhập ) skin mới .

    [​IMG]

    Tại bước Import sẽ có 2 phần , phần đầu tiên là để import file skin.xml ( cấu trúc chính của giao điẹn )

    Phần thứ 2 là để import file images.xml ( các file ảnh )
    Hãy làm thứ tự từng bước một . Import file skin.xml rồi đến images.xml .

    Import :

    Import skin trực tiếp tại máy của bạn , chọn "Search" rồi tìm đến file skin.xml trên máy rồi nhấn "Import Skin Xml"


    [​IMG]


    Xong bước import file skin.xml , tiếp theo là import file images.xml . Bước này cũng làm giống như trên :

    [​IMG]

    Nhận được kết quả sau :

    [​IMG]

    Xong phần Import , bây giờ đến phần set skin thành mặ định và chọn thư mục để chứa các file ảnh .

    Vẫn trong ACP ---> Skin & Templates ---> Skin Manager --> Skin mới vừa import xong :


    [​IMG]

    Nhấn vào skin và chọn Edit Settings .

    [​IMG]

    [​IMG]


    Chọn cho Skin thành mặc định ( Default ) , tiếp đến phía dưới chọn folder để xuất file ảnh ( khi bạn import skin xong , nó sẽ tự động tạo một thư mục của skin đó , bạn chỉ cần nhấn chọn folder là okie )
    Xong rồi , các bước thay skin chỉ có vậy . Mong rằng bài viết này giúp đỡ được cho các bạn .
     
  5. Incomplete

    Incomplete Donkey Kong

    Tham gia ngày:
    19/7/05
    Bài viết:
    455
    Rất cám ơn bác Nguyen_Kain về bài viết, nó giúp tôi hiểu được phần nào về skin của diễn đàn,tuy nhiên tôi tìm hiểu và biết 4r IPB được viết từ ngôn ngữ PHP gì đó.Mà theo tôi biết thì tất cả những gì mod,skin hay giao diện của 4r cần phải thành thạo ngôn ngữ này mới có thể làm được.Bác có thể nói sơ qua về ngôn ngữ này không,có thể giới thiệu những công cụ học tập PHP để tôi có thể tự mày mò được,(nếu có hướng dẫn thì càng tốt)
    Xin cảm ơn
     
  6. Nguyen_Kain

    Nguyen_Kain Quậy hết mình Moderator

    Tham gia ngày:
    28/5/04
    Bài viết:
    1,299
    Okie , bác muốn học thêm về php chứ gì ? :D Nói chung là nếu tự học thì bác cũng chỉ có trình độ đủ để sửa các lỗi lặt vặt trong quá trình hack mod thôi , còn tự viết cho mình một MOD riêng thì có lẽ phải qua một lớp học PHP nâng cao (ngay đến em còn tụ nhận thấy mình chưa có khả năng tự viết một MOD riêng)

    Bắt đầu về những căn bản của PHP nhé ;;) :

    CÚ PHÁP CĂN BẢN

    Trang PHP là 1 trang HTML có nhúng mã PHP
    Để minh hoạ cho điều này, ta hãy xem qua một số ví dụ sau:

    Ví dụ 1: lưu file sau lên đĩa với tên vd1.php và chạy thử:

    Mã:
    <html><head><title>Testing page</title></head>
    <body><?php echo "Hello, world!"; ?></body>
    </html>
    Bạn sẽ nhận được 1 trang HTML mà khi view source bạn xẽ nhận được nội dung như sau:

    Mã:
    <html><head><title>Testing page</title></head>
    <body>Hello, World!</body>
    </html>
    Ví dụ 2: lưu file sau lên đĩa với tên vd2.php và chạy thử:

    Mã:
    <?php echo "<html><head><title>Testing page</title></head>
    <body>Hello, world!</body>
    </html>"; ?>
    Bạn cũng nhận được 1 trang HTML có source là:

    Mã:
    <html><head><title>Testing page</title></head>
    <body>Hello, World!</body>
    </html>
    Như vậy có thể nhận xét rằng 1 trang PHP cũng chính là 1 trang HTML có nhúng mã PHP ở bên trong và có phần mở rộng là .php. Phần mã PHP được đặt trong thẻ mở <?php và thẻ đóng ?>. Khi trình duyệt truy cập vào 1 trang PHP, server sẽ đọc nội dung file PHP lên, lọc ra các đoạn mã PHP, thực thi các đoạn mã đó, lấy kết quả xuất ra của các đoạn mã PHP thay thế vào chỗ ban đầu của chúng trong file PHP, cuối cùng server trả về kết quả cuối cùng là 1 trang nội dung HTML về cho trình duyệt.
    Ở ví dụ 1 bên trên, server thực thi đoạn mã <?php echo "Hello, world!"; ?>, đoạn mã này sẽ xuất ra dòng chữ Hello, world!, dòng chữ này sẽ được server thay thế ngược lại vào vị trí của đoạn mã PHP và trả về kết quả cuối cùng cho trình duyệt:

    Mã:
    <html><head><title>Testing page</title></head>
    <body>Hello, World!</body>
    </html>
    Như vậy thì ta hoàn toàn có thể tạo ra 1 file vd3.php với nội dung như sau:

    Mã:
    <html><head><title>Testing page</title></head>
    <body>Hello, World!</body>
    </html>
    Và file này vẫn chạy được ngon lành, không có vấn đề gì hết!

    Lệnh echo dùng để xuất 1 chuỗi văn bản về trình duyệt
    Ở các ví dụ bên trên, ta đã dùng 1 lệnh của PHP là lệnh echo. Lệnh này dùng để xuất 1 chuỗi văn bản về cho trình duyệt.

    Ví dụ câu lệnh echo "Hello, world!"; trình duyệt sẽ nhận được chỗi văn bản Hello, world!.
    Câu lệnh echo 1+2; sẽ trả về cho trình duyệt chỗi văn bản 3.
    Và câu lệnh echo 1+2, "Hello, world!"; sẽ trả về trình duyệt chỗi 3Hello, world!.

    Phân cách các lệnh bằng dấu chấm phảy (;)
    Tương tự như các ngôn ngữ lập trình C hoặc Pascal, 1 câu lệnh của PHP được kết thúc bằng dấu chấm phảy (;). Ví dụ:
    echo 1+2;
    echo "Hello, world!";

    Chú thích trong chương trình
    Các chú thích không phải là mã chương trình, nhưng nó giúp ta ghi chú về 1 đoạn chương trình nào đó. Khi lập trình, bạn nên để các ghi chú vào trong chương trình để sau này khi đọc lại code, bạn sẽ nhanh chóng nắm bắt được nội dung và ý nghĩa của đoạn chương trình đã biết.
    PHP cho phép ta ghi 2 loại chú thích: chú thích trên 1 dòng (chú thích loại này chỉ có thể ghi trên 1 dòng mà thôi), và chú thích nhiều dòng (chú thích loại này có thể ghi dài bao nhiêu cũng được).
    Chú thích 1 dòng được bắt đầu bằng // hoặc #, và những gì được ghi từ đó về sau là chú thích. Chú thích nhiều dòng được bắt đầu bằng /* và kết thúc bằng */, những gì ở giữa là chú thích. Ví dụ:

    Mã:
    <?php
    //Đây là chú thích 1 dòng, đoạn chương trình sau sẽ in ra chuỗi 123
    echo 123;
     
    #Đây cũng là chú thích 1 dòng, đoạn chương trình sau sẽ in ra chuỗi abc
    echo "abc";
     
    /*
    Đây là chú thích nhiều dòng
    Đoạn chương trình sau sẽ in ra chuỗi abc123
    */
    echo "abc123";
    ?>
     
  7. Nguyen_Kain

    Nguyen_Kain Quậy hết mình Moderator

    Tham gia ngày:
    28/5/04
    Bài viết:
    1,299
    Tiếp tục điều cần biết thứ hai của PHP :

    KIỂU DỮ LIỆU

    PHP hỗ trợ 8 kiểu dữ liệu chính:

    * 4 kiểu dữ liệu vô hướng: boolean, integer, float (double), string.
    * 2 kiểu dữ liệu tổ hợp: array, object.
    * 2 kiểu dữ liệu đặt biệc: resource, NULL.

    Kiểu Boolean
    Kiểu boolean mang 1 trong 2 giá trị TRUE (đúng) hoặc FALSE (sai). Ví dụ:

    Mã:
    <?php
    $a = TRUE;
    $b = FALSE;
     
    //phép toán == kiểm tra xem 2 biểu thức có giá trị bằng nhau hay không
    $c = (1==2); //vì 1 khác 2 nên $c mang giá trị FALSE
    $d = ("abc" == "def"); //$d mang giá trị TRUE
    ?>
    "Ép" kiểu sang boolean: một số giá trị được chuyển đổi thành FALSE trong các biểu thức boolean nếu như giá trị đó là:

    * số nguyên 0,
    * số thực 0.0,
    * chuỗi rỗng "", hoặc chuỗi "0",
    * mảng rỗng (không chứa phần tử nào) Array(),
    * đối tượng không chứa phần tử nào (chỉ đúng với PHP4),
    * giá trị NULL

    Các giá trị còn lại sẽ được chuyển đổi thành TRUE.

    Kiểu Integer
    Kiểu integer mang các giá trị số nguyên ..., -2, -1, 0, 1, 2, ...Trên hầu hết các hệ thống, kiểu số nguyên có kích thước 32 bit, mang giá trị từ -2147483647 cho đến 2147483648. Ví dụ:
    Mã:
    <?php
    $a = 1234;
    $b = -123;
    $c = 0123; //giá trị 123 ở hệ cơ số 8, tương đương với 83 ở hệ cơ số 10
    $d = 0x1F; //giá trị 1F ở hệ cơ số 16, tương đương với 31 ở hệ cơ số 10
    ?>
    
    Kiểu Float (Double)
    Kiểu float (hoặc double) là kiểu số thực, có thể mang bất cứ giá trị số thực nào. Trên hầu hết các hệ thống, kiểu số thực có kích thước 64 bit. Ví dụ:

    Mã:
    <?php
    $a = 1.234;
    $b = 1.2e3; //= 1.2*10^3 = 1200
    $c = 7E-10; //= 7*(10^-10) = 0.0000000007
    $d = -1.23;
    ?>
    
    Kiểu String
    Kiểu string lưu giữ 1 chuỗi ký tự, mỗi ký tự có kích thước 1 byte. Nội dung string được đặt giữa 2 dấu nháy, nháy đơn (') hoặc nháy kép ("). Ví dụ

    Mã:
    <?php
    $a = 'Đây là 1 chuỗi được đặt giữa dấu nháy đơn';
    $b = "Đây là 1 chuỗi được đặt giữa dấu nháy kép";
    $c = 'Đây là 1 chuỗi được đặt giữa dấu nháy đơn với "vài dấu nháy kép ở giữa"';
    $d = "Đây là 1 chuỗi được đặt giữa dấu nháy kép với 'vài dấu nháy đơn ở giữa'";
    ?>
    Nếu bạn muốn sử dụng dấu nháy đơn ở trong 1 chuỗi được bọc bởi dấu nháy đơn, hoặc sử dụng dấu nháy kép đặt giữa chuỗi được bọc bởi dấu nháy kép thì bạn để thêm ký tự \ (gọi là ký tự escape) ở phía trước. Ví dụ:

    Mã:
    <?php
    $a = 'Dấu \'nháy đơn\' ở giữa chuỗi'; //$a mang giá trị: Dấu 'nháy đơn' ở giữa chuỗi
    $b = "Dấu \"nháy kép\" ở giữa chuỗi";  //$b mang giá trị: Dấu "nháy kép" ở giữa chuỗi
    $c = "Dùng ký tự \\ ở giữa câu \\ thì sao?";  //$c mang giá trị: Dùng ký tự \ ở giữa câu \ thì sao?
    ?>
    Khi sử dụng dấu nháy đôi để bọc chuỗi, ngoài \', \" và \\, PHP có thể nhận dạng thêm một số chuỗi ký tự escape đặt biệc nữa:

    * \n: ký tự xuống hàng LF (ký tự có mã 10 trong bảng mã ASCII)
    * \r: ký tự về đầu dòng CR (ký tự có mã 13 trong bảng mã ASCII)
    * \t: ký tự tab (ký tự có mã 9 trong bảng mã ASCII)
    * \$: ký tự $
    * \ooo: (với o là 1 chữ số từ 0 đến 7) biểu thị 1 ký tự có mã ASCII ooo trong hệ cơ số 8.
    Ví dụ \101 sẽ là ký tự 'A' (101 trong hệ cơ số 8 tương đương 65 trong hệ cơ số 10, ký tự ASCII có mã 65 chính là ký tự 'A').
    * \xhh: (với h là 1 chữ số từ 0 đến 9 hoặc 1 chữ cái từ A tời F) biểu thị 1 ký tự có mã ASCII hh trong hệ cơ số 16.
    Ví dụ \0x41 sẽ là ký tự 'A' (41 trong hệ cơ số 16 chính là 65 trong hệ cơ số 10).

    Ngoài ra, nếu bạn để 1 biến vào giữa 1 chuỗi được bọc với dấu nháy kép, giá trị của biến sẽ được thay thế vào trong chuỗi. ví dụ:

    Mã:
    <?php
    $a = 1;
    $b = 2;
    $c = 3;
    $d = "$a $b $c"; //$d sẽ mang giá trị là chuỗi "1 2 3"
    ?>
    Kiểu Array
    Array là một mảng gòm nhiều phần tử. Array được tạo qua lệnh Array. Ví dụ:

    Mã:
    <?php
    $a = Array(1,2,3);
    Lúc này $a sẽ là 1 mảng gồm 3 phần tử số nguyên là 1, 2 và 3
     
    Các phần tử trong mảng $a được tạo ở trên sẽ được đánh số thứ tự từ 0, 1 cho đến 2
    Để truy cập tới từng phần tử của $a
    echo $a[0]; //in ra giá trị 1
    echo $a[2]; //in ra giá trị 3
     
    $a[1] = 5; //giờ đây $a = Array(1,5,3)
    ?>
    Mảng còn có thể được tạo thành bởi các cặp (khoá, giá trị). Ví dụ:

    Mã:
    <?php
    $a = Array(
    	"khoá 1" => "giá trị 1",
    	"khoá 2" => "giá trị 2",
    	"khoá 3" => "giá trị 3"
    );
    echo $a["khoá 1"]; //in ra: giá trị 1
     
    $b = Array(
    	"a" => "Nguyễn",
    	"b" => "Bá",
    	"c" => "Thành"
    );
    echo $b["a"]; //in ra: Nguyễn
     
    $b["a"] = "Nguyen";
    $b["b"] = "Ba";
    $b["c"] = "Thanh";
    //giờ đây $b = Array("a" => "Nguyen", "b" => "Ba", "c" => "Thanh")
    ?>
    Kiểu Object
    Kiểu object (đối tượng) lưu giữ 1 bản thể (instance) của 1 lớp (class). Ta sẽ tìm kiểu kỹ thêm về kiểu object trong phần Lập trình hướng đối tượng với PHP.

    Kiểu Resource
    Kiểu resource (tài nguyên) được sử dụng bởi các hàm đặt biệc của PHP (ví dụ hàm mysql_connect sẽ trả về kiểu resource). Ta sẽ tìm hiểu kỹ hơn về kiểu resource trong các bài viết khác.

    Kiểu NULL
    Đây là 1 giá trị đặt biệc, báo cho PHP biết rằng 1 biến nào đó chưa/không mang giá trị nào cả. Ví dụ:

    Mã:
    <?php
    $a = 1; //$a mang giá trị 1
     
    $a = NULL; //bây giờ $a không mang giá trị nào cả
     
    $a = 2; //giờ đây $a mang giá trị 2
     
    //hàm unset sẽ làm cho 1 biến có giá trị là NULL
    unset($a); //giừo $a lại là NULL
    ?>
     
  8. Nguyen_Kain

    Nguyen_Kain Quậy hết mình Moderator

    Tham gia ngày:
    28/5/04
    Bài viết:
    1,299
    BIẾN

    Có lẽ hơi muộn khi tới tận bây giờ ta mới tìm hiểu tới biến trong PHP. Một biến trong PHP được bắt đầu bằng ký tự $ và đi theo ngay sau đó là tên của biến. Ví dụ:
    $a: biến có tên là a
    $abc123: biến có tên là abc123

    Tuy nhiên vẫn còn nhiều điều thú vị về biến đang chờ ta khám phá.

    * Biến trong PHP phân biệt chữ hoa và chữ thường. Tức $Abc và $abc là 2 biến hoàn toàn khác nhau.
    * Tên biến chỉ được bao gồm các ký tự chữ cái (a..z hoặc A...Z), chữ số (0...9) và ký tự gạch dưới (_); nhưng tên biến không được bắt đầu bằng ký tự gạch dưới hoặc chữ số. Các tên biến sau là không hợp lệ!
    $_abc Không hợp lệ! bắt đầu bằng ký tự gạch dưới
    $1abc Không hợp lệ! bắt đầu bằng chữ số
    $nguyễn Không hợp lệ! tên biến có ký tự đặt biệc (ễ)

    Tầm vực (scope) của biến
    Tầm vực của biến là ngữ cảnh mà ở trong đó biến được định nghĩa. Ví dụ:

    Mã:
    <?php
    $a = 1; //tầm vực của biến $a bắt đầu từ đây
     
    include 'b.php'; trải dài tới bên trong file b.php
     
    //tới cuối file vẫn còn hợp lệ
    ?>
    Tuy nhiên khi gặp 1 hàm do người dùng định nghĩa, bên trong hàm, biến cục bộ sẽ được dùng thay vì biến toàn cục. Ví dụ:

    Mã:
    <?php
    $a = 1; //biến toàn cục
     
    //hàm do tự tạo
    function test() {
    	echo $a;
    } //end test
    ?>
    Ở ví dụ trên, câu lệnh echo $a sẽ không in ra giá trị nào hết vì câu lệnh này nằm bên trong hàm test nên $a ở đây được hiểu là biến cục bộ $a của hàm (mà hàm này ta chưa khai báo biến cục bộ nào cả).

    Để truy cập tới các biến toàn cục ở bên trong 1 hàm do người dùng định nghĩa, ta có thể dùng 1 trong 2 cách sau: Cách 1:

    Mã:
    <?php
    $a = 1; //biến toàn cục
     
    //hàm do tự tạo
    function test() {
    	//từ khoá global báo cho php biết là bên trong hàm test
    	//bây giờ ta sẽ dùng biến toàn cục $a
    	global $a;
    	
    	echo $a; //in ra giá trị: 1
    } //end test
    ?>
    Cách 2:

    Mã:
    <?php
    $a = 1; //biến toàn cục
     
    //hàm do tự tạo
    function test() {
    	echo $GLOBALS['a']; //in ra giá trị: 1
    } //end test
    ?>
     
  9. Nguyen_Kain

    Nguyen_Kain Quậy hết mình Moderator

    Tham gia ngày:
    28/5/04
    Bài viết:
    1,299
    CÁC CÂU LỆNH ĐIỂU KHIỂN

    Câu lệnh if
    Cú pháp đơn giản nhất của câu lệnh if có dạng như sau:
    Mã:
    if ( biểu thức )
    	câu lệnh;
    Câu lệnh if trên được diễn giải như sau: nếu biểu thức trả về giá trị TRUE (hoặc tương đương với TRUE sau khi chuyển đổi) thì câu lệnh sẽ được thực thi; ngược lại (khi biểu thức trả về giá trị FALSE) thì bỏ qua không thực thi câu lệnh nữa.

    Cú pháp nâng cao của câu lệnh if có dạng như sau:
    Mã:
    if ( biểu thức )
    	câu lệnh 1;
    else
    	câu lệnh 2;
    
    Câu lệnh if trên được diễn giải như sau: nếu biểu thức trả về giá trị TRUE thì câu lệnh 1 sẽ được thi hành, ngược lại thì câu lệnh 2 sẽ được thi hành.

    Các lệnh if có thể được lồng vào nhau để tạo ra câu lệnh if phức tạp hơn:

    Mã:
    if ( biểu thức 1 )
    	if ( biểu thức 2 )
    		câu lệnh 1;
    	else
    		câu lệnh 2;
    else
    	câu lệnh 3;
    Nếu biểu thức 1 trả về giá trị FALSE thì câu lệnh 3 sẽ được thực hiện, ngược lại xét tiếp biểu thức 2: nếu biểu thức 2 trả về giá trị TRUE thì thực hiện câu lệnh 1, ngược lại nếu biểu thức 2 trả về giá trị FALSE thì thực hiện câu lệnh 2.

    Mã:
    if ( biểu thức 1 )
    	câu lệnh 1;
    else if ( biểu thức 2 )
    	câu lệnh 2;
    else if ( biểu thức 3 )
    	câu lệnh 3;
    else
    câu lệnh 4;
    Nếu biểu thức 1 trả về TRUE thì thực hiện câu lệnh 1 (các câu lệnh 2,3,4 không thực hiện), nếu biểu thức 1 trả về FALSE và biểu thức 2 trả về TRUE thì câu lệnh 2 được thực hiện, nếu biểu thức 1 trả về FALSEm biểu thức 2 trả về FALSE và biểu thức 3 trả về TRUE thì câu lệnh 3 được thực hiện. Nếu cả 3 biểu thức 1,2,3 đều trả về FALSE thì thực hiện câu lệnh 4.

    Ngoài ra PHP còn cung cấp từ khoá elseif, chính là ghép giữa từ khoá else và if.

    Câu lệnh while

    Câu lệnh while dùng để tạo 1 vòng lặp, cú pháp của câu lệnh này như sau:
    Mã:
    while ( biểu thức )
    	câu lệnh;
    Được diễn giải như sau: trong khi biểu thức còn trả về giá trị TRUE thì tiếp tục thực hiện câu lệnh, sau khi thực hiện câu lệnh thì kiểm tra lại biểu thức, nếu vẫn còn trả về giá trị TRUE thì lại tiếp tục thực hiện câu lệnh...cứ tiếp tục như vậy cho tới khi nào biểu thức trả về giá trị FALSE thì ngưng.

    Một ví dụ in ra các số từ 1 tới 10 với câu lệnh while:

    Mã:
    <?php
    $i = 1;
    while ( $i <= 10 ) {
    	echo $i, "\n";
    	$i++;
    } //end while
    ?>
    Ghi chú: Câu lệnh $i++ tương đương với $i = $i+1;, câu lệnh này sẽ tăng giá trị của $i lên 1 qua mỗi lần lặp.

    Câu lệnh do-while

    Câu lệnh do-while cũng tương tự như câu lệnh white, chỉ khác một điểm là câu lệnh được thực hiện trước rồi biểu thức mới được kiểm tra sau, nếu biểu thức còn trả về giá trị TRUE thì tiếu tục thực hiện câu lệnh. Cú pháp của câu lệnh do-while như sau:

    Mã:
    do {
    	câu lệnh;
    } while ( biểu thức );
    Một ví dụ in ra các số từ 1 tới 10 với câu lệnh do-while:

    Mã:
    <?php
    $i = 1;
    do {
    	echo $i, "\n";
    	$i++;
    } while ( $i < 10 );
    ?>

    Câu lệnh for

    Câu lệnh for cũng dùng để tạo vòng lặp. Đây là một trong những câu lệnh phức tạp nhất của PHP, cú pháp của nó như sau:
    Mã:
    for ( biểu thức 1; biểu thức 2; biểu thức 3 )
    	câu lệnh;
    Được diễn giải như sau:

    * Đầu tiên biểu thức 1 được thực hiện,
    * Tiếp theo biểu thức 2 được kiểm tra
    o Nếu trả về TRUE thì câu lệnh được thực hiện và sau đó thực hiện biểu thức 3.
    o Nếu trả về FALSE thì kết thúc câu lệnh for.
    * Kiểm tra lại biểu thức 2 và lặp lại quá trình như trên.

    Một ví dụ in ra các số từ 1 tới 10 với câu lệnh for:

    Mã:
    <?php
    for ( $i = 0; $i < 10; $i++ ) {
    	echo $i, "\n";
    } //end for
    ?>

    Câu lệnh foreach

    Câu lệnh foreach chỉ làm việc với array. Câu lệnh foreach có 2 dạng cú pháp như sau:

    Mã:
    foreach ( $array as $value )
    	câu lệnh;
    
    foreach ( $array as $key => $value )
    	câu lệnh;
    Ta sẽ hiểu rõ hơn 2 dạng cú pháp này qua 2 ví dụ sau:

    Ví dụ 1:

    Mã:
    <?php
    $a = array('a' => 1, 'b' => '2', 'c' => '3');
     
    foreach ( $a as $value ) {
    	echo $value, "\n";
    } //end foreach
    ?>
    Chương trình trên sẽ in ra 3 số 1, 2 và 3.

    Ví dụ 2:

    Mã:
    <?php
    $a = array('a' => 1, 'b' => '2', 'c' => '3');
     
    foreach ( $a as $key => $value ) {
    	echo $key, "=", $value, "\n";
    } //end foreach
    ?>
    Chương trình trên sẽ in ra 3 chuỗi a=1, b=2 và c=3.

    Câu lệnh switch

    Câu lệnh switch hoạt động như là 1 loạt câu lệnh if ghép lại với nhau. Ta hãy xem câu lệnh if sau:

    Mã:
    if ( $a == "abc" )
    	echo "Giá trị của a là abc";
    } elseif ( $a == "def" )
    	echo "Giá trị của a là def";
    } elseif ( $a == "123" ) {
    	echo "Giá trị của a là 123";
    } else {
    	echo "Giá trị khác";
    } //end if
    3 câu lệnh if ở trên có thể được viết lại bằng câu lệnh switch như sau:

    Mã:
    switch ( $a ) {
    case "abc";
    	echo "Giá trị của a là abc";
    	break;
    case "def";
    	echo "Giá trị của a là def";
    	break;
    case "123";
    	echo "Giá trị của a là 123";
    	break;
    default:
    	echo "Giá trị khác";
    } //end switch
    Câu lệnh break
    Câu lệnh break sẽ dừng việc thực thi của các vòng lặp for, foreach, while, do-while và switch. Ở phần trước ta đã thấy câu lệnh break được sử dụng trong câu lệnh switch. Nếu không có break, câu lệnh switch ở phần trước sẽ thành:

    Mã:
    switch ( $a ) {
    case "abc";
    	echo "Giá trị của a là abc";
    case "def";
    	echo "Giá trị của a là def";
    case "123";
    	echo "Giá trị của a là 123";
    default:
    	echo "Giá trị khác";
    } //end switch
    Nếu giá trị của $a là "abc" thì cả 4 chuỗi "Giá trị của a là abc", "Giá trị của a là def", "Giá trị của a là 123" và "Giá trị khác" sẽ được in ra.; nếu $a mang giá trị "def" thì 3 chuỗi "Giá trị của a là def", "Giá trị của a là 123" và "Giá trị khác" sẽ được in ra.
    Ở đây ta muốn chỉ có 1 dòng duy nhất in ra tương ứng với giá trị của biến $a, nên ta thêm các câu lệnh break vào các phần case, để khi in ra chuỗi tương ứng với giá trị $a thì ta thoát ra khỏi câu lệnh switch.

    Một ví dụ sử dụng câu lệnh break trong vòng lặp for:

    Mã:
    for ( $i=1; $i<=10; $i++ ) {
    	echo $i;
    	if ( $i == 5 ) break;
    }
    Vòng lặp for ở trên thay vì in ra 10 số từ 1 đến 10, vòng lặp chỉ in ra 5 số từ 1 đến 5 mà thôi vì khi $i đạt giá trị 5, vòng lặp sẽ kết thúc do câu lệnh break.

    Cách dùng câu lệnh break trong các vòng lặp foreach, while và do-while cũng tương tự.

    Câu lệnh continue

    Câu lệnh continue áp dụng lên các vòng lặp, lệnh continue sẽ bỏ qua lần lặp hiện thời và tiếp tục thực hiện các lần lặp tiếp theo. Để hiểu rõ hơn ta hãy xem ví dụ sau:

    Mã:
    for ( $i=1; $i<=5; $i++ ) {
    	if ( $i == 2 ) continue;
    	echo $i;
    }
    Khi $i đạt giá trị 2, câu lệnh echo $i; sẽ được bỏ qua không thì hành nữa do câu lệnh continue. Và như vậy, đoạn lệnh trên khi chạy sẽ in ra các giá trị 1,3,4,5 (không có giá trị 2).

    Cách dùng của câu lệnh continue trong các vòng lặp foreach, while, do-while cũng tương tự.
     
  10. tttlovely

    tttlovely Mr & Ms Pac-Man

    Tham gia ngày:
    22/11/05
    Bài viết:
    121
    hey, cho mình hỏi 1 câu nha Nguyen_kain. Mặc dù nó ko liên quan tới IBP, nó là phpBB. M2inh up lên sever rồi. Phải Chmod những thư mục, tập tin nào? Mình đang dùng phpBB 2.0.11.
    Mình cũng chưa có lang Việt hóa nữa. Nếu bạn có, share cho mình nha.
     
  11. Nguyen_Kain

    Nguyen_Kain Quậy hết mình Moderator

    Tham gia ngày:
    28/5/04
    Bài viết:
    1,299
    Chà , bạn hỏi hơi khó đấy nhé , vì bây giờ hiếm có ai dùng phpBB nữa , cái Forum đấy bây giờ chỉ dành cho những người nào dùng nukeviet thôi , vì nukeviet đính kèm với phpbb , nói chung là nó không còn thân thuộc với người Việt nam nữa .

    Nhưng về những gì bạn cần biết thì mình có biết sơ qua : Upload các file và thư mục vừa mới bung ra lên server. Chmod các file và thư mục thành 0755 (thường server sẽ tự động chmod cho bạn).

    Các file php và các file text khác phải được upload ở chế độ ASCII, các file khác ở chế độ binary (chương trình upload đa phần sẽ tự động làm việc này cho bạn, bạn không phải lo lắng lắm về điều này).

    Còn file lang phpBB thì mình có giữ (nhưng từ lâu lắm rồi , ko biết nó còn xài được với phiên bản của bạn không ?
    :D ) Hình như là mình giữ nó từ năm ngoái :cool:
     

    Các file đính kèm:

  12. Incomplete

    Incomplete Donkey Kong

    Tham gia ngày:
    19/7/05
    Bài viết:
    455
    Rất cảm ơn Nguyen_Kain,bây giờ thì không thể học vội vì còn 5 ngày nữa là mìhn bắt đầu thi môn đầu tiên,tuy nhiên đã save hết vào máy rồi.Những gì bác post tôi đã đọc sơ qua,nếu còn bài nào mới thì mong bác post tiếp,tôi sẽ save hết vào máy,đến khi nào thi xong thì sẽ bắt đầu học
     
  13. Nguyen_Kain

    Nguyen_Kain Quậy hết mình Moderator

    Tham gia ngày:
    28/5/04
    Bài viết:
    1,299
    Đấy là những điều cần học về php rồi , nó có thê giúp bạn hiểu hơn về PHP , tuy nhiên chỉ hiểu về PHP thôi chưa đủ , các Forum ngày nay đều sử dụng PHP kết hợp MySQL , mình có vài tài liệu hướng dẫn học PHP với MySQL đây , nó sẽ giúp được bạn phần nào nếu muốn học nâng cao ::)
     

    Các file đính kèm:

    • php01.pdf
      Kích thước:
      242.4 KB
      Đọc:
      12
    • php02.pdf
      Kích thước:
      235.2 KB
      Đọc:
      15
    • php03.pdf
      Kích thước:
      188.5 KB
      Đọc:
      11
  14. tttlovely

    tttlovely Mr & Ms Pac-Man

    Tham gia ngày:
    22/11/05
    Bài viết:
    121
    à, Nguyen_kain ơi. U có cái host nào hỗ trợ Php ko? (Có cái 4rum VBB mới lụm được tại 1 site của thằng bạn thân (nhưng qua thư) định up lên) Site nào hỗ trợ VBB tốt nhất nhỉ?

    U có biết cách fake IP để đăng ký ở 100webspace không? (Mình đang dùng song song IE và FF)
     
  15. Nguyen_Kain

    Nguyen_Kain Quậy hết mình Moderator

    Tham gia ngày:
    28/5/04
    Bài viết:
    1,299
    Nếu bạn không ngại quảng cáo thì có trang http://byethost.com/ , đây là trang có nhiều chức năng và có nhiều loại host thích hợp cho nhiều người :hug:
    Nếu bạn muốn đăng ký ở 100Webspace thì vào thử xem sao ? Hôm qua mình vào thử vẫn thấy nó cho đăng ký mà .
    Còn nếu bạn không đăng ký mà muốn fake IP đơn giản thì có trang http://anonymouse.org/anonwww.html đây , điều tên trang Web bạn muốn vào , thế thôi :D
     
  16. Ice Dragon

    Ice Dragon Mega Man

    Tham gia ngày:
    6/9/04
    Bài viết:
    3,101
    Nơi ở:
    none
    http://byethost.com/ mình res xong ko nhận được email báo
    Mà có ai share bản IPB 2.1.4 ko? ^_^
    Hướng dẫn chi tiết luôn cách cài nha (giới thiệu lun 1 host càng tốt ^_^)
     
  17. tttlovely

    tttlovely Mr & Ms Pac-Man

    Tham gia ngày:
    22/11/05
    Bài viết:
    121
    @ Nguyen_Kain: ko được u ơi. 100webspace.com đâu có cho Ip ViệtNam đăng ký. Anonymouse.org thì chỉ hiện 1 trang đầu, trang sau tự nhiên mất.
     
  18. Nguyen_Kain

    Nguyen_Kain Quậy hết mình Moderator

    Tham gia ngày:
    28/5/04
    Bài viết:
    1,299
    @Ice Dragon : Mình vẫn reg tốt mà, bạn kiểm tra lại xem sao ? Hoặc đăng ký = 1 địa chỉ email khác xem sao . IPB cùng cách hack MOD mình sẽ cố đưa lên trong thời gian gần nhất .

    @tttlovely : Anonymouse.org nó tự động fake IP cho tất cả các trang của trang Web mình cần vào , đâu thể nào đến trang sau là nó mất được :'>
     
  19. tttlovely

    tttlovely Mr & Ms Pac-Man

    Tham gia ngày:
    22/11/05
    Bài viết:
    121
    ko được mà. không tin anh cứ thử đi thì bít. Không bít phải máy em hư ko nữa.
     
  20. Nguyen_Kain

    Nguyen_Kain Quậy hết mình Moderator

    Tham gia ngày:
    28/5/04
    Bài viết:
    1,299
    Mình đâu cần thử , vì mình vẫn vào tốt kể cả không dùng trang annonymouse mà ;;)
    nhưng mình thử cái annonymouse với nhiều trang rồi , trang nào nó cũng để lnk tới annonymouse tới cùng , không bao giờ có chuyện nó chỉ hiện ra trang đầu tiên đâu :cool:
     

Chia sẻ trang này