Nov
14
2010

Bài 2 – Lập trình web bằng PHP là gì?

(Bài học lên mạng ngày 14/11/2010) Tôi mất gần 2 tiếng để đọc và comment bài tập 1 cho các bạn. Tôi cố gắng comment hết (nhưng không comment lặp đi lặp lại những vấn đề đã nói trước đó) các bài tập gửi về, vì tôi cho rằng biết đúng ở đâu, biết sai ở đâu để sửa sẽ giúp các bạn không bị hoang mang. Hơn nữa, các bạn đã nghiêm túc trong việc làm bài, thì tôi sẽ nghiêm túc trong việc sửa lỗi đúng sai cho các bạn. Ở các bài sau, chúng ta cũng cam kết với nhau thực hiện tốt việc này như bài đầu tiên nhé mọi người.

Thực ra, các bài tập trong bài 1 chưa liên quan gì nhiều đến việc học lập trình, nó chỉ là cách giúp tôi có một hình dung sơ lược xem các bạn đang nắm kiến thức thế nào, cái gì thiếu, cái gì thừa, cái gì cần bổ sung. Vì, như mọi người cũng biết, “đụng” tới lập trình web là chúng ta phải đụng tới một khối lượng khổng lồ kiến thức tổng hợp, từ HTML, CSS, JavaScript cho tới SQL, WebServer, tối ưu, bảo mật, thậm chí cả thiết kế Photoshop và Flash. Nên nhớ, để trở thành “chuyên gia” của bất cứ một môn học nào được liệt kê ở trên, bạn cũng phải mất rất nhiều thời gian và cần tích luỹ nhiều kinh nghiệm trong quá trình làm việc (hay học tập, thực hành).

Nên bắt đầu từ đâu?

PHP không khó, lập trình web không khó, cái khó là không biết phải học những kiến thức bổ trợ nào, học tới đâu, học bao nhiêu cho đủ? Chữ đủ ở đây được hiểu là đủ dùng, không thiếu và cũng đừng “thừa”.

Để trả lời câu hỏi đó, chúng ta sẽ lấy việc “Lập trình web bằng PHP” làm trung tâm, các kiến thực bổ trợ khác như CSS, HTML, JS, SQL, v.v… sẽ được đề cập khi cần thiết.

  • Lập trình là gì?
  • Lập trình web là gì?
  • Lập trình web bằng PHP là gì?

Như ở một comment trong phần bài tập, tôi có nói, diễn giải theo một cách dễ hình nhung nhất thì lập trình tức là bạn đang cố gắng diễn đạt một mong muốn nào đó của bạn theo cách mà máy tính hiểu được, thông qua một ngôn ngữ trung gian.

Bạn có thể lập trình để làm nhiều việc, phục vụ cho nhiều mục đích khác nhau. Lập trình web được hiểu là lập trình phục vụ thường trực cho các công việc liên quan đến web. Nhưng không có nghĩa rằng các “ngôn ngữ lập trình web” (như PHP, ASP, JSP…) chỉ làm được những gì liên quan đến web. Vì một “ngôn ngữ lập trình web” trước hết phải là một ngôn ngữ lập trình.

Tôi lấy ví dụ, các bạn có thể dùng Pascal/C++ để lập trình tính toán cộng trừ nhân chia, giai thừa, tính lim, log, cộng trừ mảng, tạo ma trận, quản lý sinh viên, xử lý dữ liệu dạng tệp / dạng văn bản… Thế thì bạn cũng có thể dùng PHP để làm toàn bộ những việc đó (dù rằng mỗi ngôn ngữ sẽ có điểm mạnh yếu riêng, và trong một giới hạn nào đó, một vài điểm rất nhỏ ở ngôn ngữ này có thể không / khó thực hiện được ở ngôn ngữ kia).

Trong ít nhất là 2 bài tới, bạn phải thay đổi ngay suy nghĩ rằng “PHP là ngôn ngữ lập trình web nên để học PHP nhất thiết phải có webserver, hosting; nhất thiết phải có trình duyệt, nhất thiết phải rành, hoặc phải biết chút ít về HTML…”

Không. PHP là PHP, nó là một ngôn ngữ lập trình, và chúng ta sẽ học những bài đầu tiên của ngôn ngữ lập trình này mà không cần quan tâm tới bất cứ kiến thức bổ trợ nào như HTML, CSS, JavaScript hay MySQL. Chúng ta cũng không cần trình duyệt hay máy chủ. Tất cả những gì cần có là một phần mềm soạn thảo văn bản (notepad cũng đủ xài) và trình thông dịch lệnh PHP.

Phần mềm PHP.EXE

Nếu đã từng học qua / đọc qua các tài liệu giáo khoa liên quan đến lập trình, các bạn sẽ biết khái niệm về trình thông dịch và trình biên dịch. Tôi đề nghị các bạn xoá bỏ 2 khái niệm này và đồng nhất chúng thành “diễn dịch” cho dễ hiểu và dễ trình bày. Tôi sẽ cố gắng che lấp đi tất cả những gì có thể làm các bạn khó hiểu hay nản chí, và việc này đôi khi đòi hỏi một số định nghĩa “không đúng đắn” lắm, nhưng tôi cam kết sẽ quay lại nói lại cho rõ, cho đúng vào một thời điểm thích hợp, khi mà điều đó thực sự cần thiết cho các bạn. Vậy nên, từ bây giờ chúng ta sẽ gọi chung PHP là trình thông dịch.

Trình thông dịch, trước hết là một phần mềm. Tức là một file cụ thể trên đĩa cứng trong máy tính, có đuôi là .EXE. Để có trình thông dịch PHP, các bạn phải đi “đao lột” ở đâu đó về một file PHP.EXE (tất nhiên, đôi khi file PHP.EXE này đòi hỏi phải có nhiều file khác đi kèm thì mới hoạt động đúng đắn được). Sau khi có file PHP.EXE này rồi, bạn chỉ cần “chạy” nó, sử dụng nó, nhập dữ liệu cho nó, truyền tham số cho nó… thế là đủ để học lập trình PHP… phe phé!

Ví dụ, bạn có thư mục PHP ở ổ đĩa C, và trong C:\PHP có file PHP.EXE, thì bạn chỉ cần khởi động dòng lệnh MSDOS (bằng cách vào Window / Run, gõ lệnh CMD và nhấn Enter). Sau đó, tại con nháy C:\>, hãy gõ lệnh C:\>PHP\PHP.EXE để chạy phần mềm PHP.

Phần mềm PHP này cho phép bạn khởi chạy kèm theo một vài tham số. Và tham số đơn giản nhất là đường dẫn tới file mã nguồn PHP. Ví dụ, khi bạn gõ “C:\>PHP\PHP.EXE C:\PHP\MaNguon\Bai1.php” thì phần mềm PHP.EXE sẽ được thực thi, nó tìm tới file Bai1.PHP (tại thư mục MaNguon, trong thư mục PHP ở ổ đĩa C) để đọc nội dung, thực hiện các câu lệnh trong file Bai1.PHP và trả về kết quả.

Tất nhiên, ở đây chúng ta đang gọi thực thi PHP.EXE từ dòng lệnh – cửa sổ MS DOS nên kết quả trả về cũng sẽ là những dữ liệu hiển thị trong cửa sổ MS DOS. Không có trình duyệt, không có HTML hay CSS gì ở đây hết! Các bạn xem thêm hình minh hoạ ở dưới đây.

Bài số 2 của chúng ta ngưng tại đây. Kiến thức phải nhớ không nhiều, tôi chỉ đòi hỏi các bạn phải nắm thật chắc một câu “khẩu quyết” sau đây “PHP là một ngôn ngữ lập trình, nó thực thi file mã nguồn và trả lại kết quả dưới dạng văn bản text thuần tuý, không liên quan gì đến HTML, CSS hay JavaScript”.

Đơn giản vậy thôi :-)

Bài tập

Bài 2.1 – Hãy lên trang chủ PHP tại địa chỉ http://php.net tìm kiếm và tải về bộ thông dịch PHP được phân phối dưới dạng file ZIP. Bạn đừng tải file setup tự động nhé. Sau khi tải về, giải nén file ZIP vào một thư mục bất kì, kiểm tra trong đó để thấy file PHP.EXE.

Bài 2.2 – Tạo thư mục C:\HocPHPOnline , tạo file bai1.php, soạn nội dung file bai1.php bằng notepad. Nhập vào đó dòng chữ “Hello World”. Theo hướng dẫn trong bài học để chạy file PHP.EXE trong máy tính của bạn kèm theo tham số là đường dẫn C:\HocPHPOnline\bai1.php để PHP thông dịch và hiển thị kết quả trả về. Chụp lại màn hình này và gửi về báo cáo hoàn thành bài tập 2.1 và 2.2.

Bài 2.3 – Có nhất thiết phải đặt tên file mã nguồn là .php (ví dụ bai1.php) hay không? Tại sao? Hãy chứng minh?

Bài 2.4 – Tải file TuHoc.zip này về, giải nén ra lấy mã nguồn. Cho PHP thông dịch nó và cho biết, bạn rút ra được những bài học / kiến thức gì?

Hạn gửi bài: trước 12h trưa thứ 3, ngày 16/11/2010. Các lưu ý khác giống bài tập số 1.

About the Author:

15 Comments + Add Comment

  • lần đâu tiên em thao tác PHP trên CMD và phát hiện nó khác hơn là trên trình duyệt web,
    mấy thể trong html mình hay xài nhưng vô CMD thì nó chỉ hiểu mõi câu lện PHP thui nên em thấy thực chất PHP và html ko có liên hê gì cả,chẳn qua trình duyệt web nó hiểu php lẩn HTML rồi biên dịch cho mình xem (em có nói sai thì thông cảm nha)

    • Đó là điều mấu chốt mà qua bài học này mình muốn các bạn tự “khám phá” và “cảm nhận”.

    • Chính xác là PHP và HTML không có liên hệ gì. Nhưng bạn nên biết là bất cứ trình duyệt nào cũng chỉ hiểu được HTML chứ không hiểu được PHP. Để trình duyệt hiểu được PHP thì phải biên dịch PHP thành HTML do đó mới phải cần phần mềm PHP để biên dịch.

      • Uh, nếu cần hiển thị dữ liệu ra trình duyệt thì chúng ta NÊN gửi về dữ liệu và định dạng nó bằng HTML, nhưng không phải bắt buộc. Bạn có thể trả về dữ liệu dạng text cũng không sao, hoặc sau này khi tìm hiểu về kỹ thuật Ajax, bạn sẽ thấy, chúng ta thường trả về dữ liệu theo định dạng XML, JSON, chứ ít người lập trình cho PHP trả về dữ liệu dạng HTML. Nhớ theo dõi thường xuyên nhé.

  • nhưng sao mình thấy trong cách đặt biến của nó chỉ có mổi var thôi nhỉ.

    • Không hiểu bạn định hỏi gì?

    • Bạn hình như chưa học lập trình hay sao mà hỏi như vậy ? var là cú pháp khai báo biến cơ bản nhất của PHP và một số ngôn ngữ khác như pascal hay c++ còn có một số ngôn ngữ ko cần có cú pháp var đằng trước để khai báo, cái này bạn tự tìm hiểu thêm nhé.

  • em hok hỉu tại sao em không thể chạy được php.exe

    • Em mô tả lỗi này kỹ hơn? Hoặc chụp màn hình, upload gửi link lê để mọi người cùng xem và trợ giúp?

  • tum lum file . zip khong biet tai o dau

  • co phai file php 5.3.4 khong thay

  • Mới bước đầu học PHP. Hôm nay học tới bài này thấy hay ghê. Chạy trên CMD mới Pro chứ. hehee.

  • Hic khổng hiểu sao mình làm cả đêm mà ko có được! chết mất

  • cho m hỏi vs.m cài đặt bộ tích hợp wamp.h muốn tạo bảng CSDL thì m phải tạo ở đâu.ntn?

Leave a comment