Tải bản đầy đủ (.doc) (61 trang)

Tìm hiểu về quy trình quản lý nội dung

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 (495.67 KB, 61 trang )

Báo cáo thực tập chuyên ngành
Giáo viên hướng dẫn:TS.Quách Tuấn Ngọc
Sinh viên:Vũ Đình Bổng
Đề tài:Tìm hiểu về quy trình quản lý nội dung.
Mục lục
Phần I. Mở đầu 2
Phần II. Tìm hiểu CMS 3
1.Tổng quan CMS 3
2.Các khái niệm 3
3. Yêu cầu của một hệ thống CMS 4
4. Các thành phần cơ bản của hệ thống CMS 5
5.Các quy trình của CMS 7
Phần III. Tìm hiểu PHP
1.PHP Cơ bản 15
2.Tìm hiểu về Biến 17
3.Cấu trúc Điều khiển 21
4.Tìm hiểu hàm trong PHP 26
5.Làm việc với Số 28
6. Làm việc với Chuỗi ký tự 33
7.Làm việc với Mảng 34
8. Làm việc với Ngày và Thời gian 41
9.Sử dụng LỚP 47
10.PHP & MySql 51
11.Truy nhập cơ sở dữ liệu SQL 53
12.Truy nhập file trong PHP 54
Phần IV. Lựa chọn một CMS cài đặt 55
1.Cấu trúc trang web 55
2.Kết quả 60
Phần V. Tổng kết 60
1
Phần I. Mở đầu


Ngày nay khi phát triển các trang web(như các trang tin tức…) việc quản lý
nội dung của những trang web này rất quan trọng.Thông tin của các trang
này phải được quản lý một cách chặt chẽ cả về nội dung cũng như hình
thức.Việc quản lý nội dung đẫn đến không thể sử dụng các trang html thuần
tùy với mỗi lần đưa nội dung lên lại phải sửa một trang html rồi lại đưa lên
server.Việc này đòi hỏi người sử dụng phải có một kĩ năng khá tốt về tin
học mới có thể làm được.Việc sử dụng các ngôn ngữ lập trình web động để
xây dựng các ứng dụng quản lý nội dung là một giải phần giúp cho việc
quản lý nội dung các trang web trở nên đơn giản và linh hoạt hơn.
Vì vậy trong đợt thực tập này em quyết định chọn đề tài CMS để có
thể hiểu thêm về quản lý nội dung.Đồng thời qua đây em muốn nâng cao
kiến thức của mình về lập trình web.
Em xin chân thành cám ơn TS.Quách Tuấn Ngọc đã tận tình giúp đỡ
hướng dẫn em hoàn thành bài thực tập này.
2
Phần II. Tìm hiểu CMS
1.Tổng quan CMS
CMS(Content Manage System) được tạm dịch là hệ thống quản lý
các thành phần nội dung.Như vậy một hệ CMS gồm các yếu tố cấu thành
nên nội dung và các quy trình quản lý nội dung của thống đó
2.Các khái niệm
a.CMS:
Như đó trình bày ở trên CMS là một hệ thống quản lý các thành phần nội
dung.Bao gồm các yếu tố cấu thành nên nội dung,các quy trình quản lý nội
dung của hệ thống đó
b.Nội dung:
Đối với các website nội dung bao gồm :
-Thông tin được hiển thị trên các website khi truy cập ví dụ các hình
ảnh,các đoạn văn bản
-Các phần mềm chạy trên các server để hiển thị thông tin trên các Site.

Vậy quản lý nội dung (CMS) là quản lý thông tin trên các trang web hay
quản lý cả các ứng dụng?
Có thể nói việc quản lý thông tin sẽ mang đầy đủ ý nghĩa hơn nếu nó là
quản lý cả các ứng dụng chạy trên server.Nhưng việc quản lý ứng dụng như
thế nào có cần thiết phải quản lý các ứng dụng như quản lý thông tin
không.Câu trả lời là không bởi lẽ :
Các nội dung hiển thị là phần quyết định cái gì sẽ được đưa ra còn
các ứng dụng thì quyết định nó được đưa ra như thế nào.Vì vậy cần phát
triển hai hệ thống quản lý đó là quản lý nội dung thông tin và quản lý ứng
dụng.Ngoài ra những người sử dụng của hai hệ thống này cũng hoàn toàn
khác nhau.Trên thực tế những người làm về thông tin thường có khuynh
hướng sáng tạo hơn,những người phát triển ứng dụng thì thường có kĩ thuật
tốt hơn.Như vậy nếu ta xây dựng lồng gộp cả hai việc quản lý trên vào làm
một sẽ gây ra một sự khó chịu khi sử dụng hệ thống.Do những người làm
về thông tin sẽ không hiểu gì về kĩ thuật lắm khi sử dụng họ cần các thao
tác đơn giản chứ không phải làm các công việc liên quan nhiều đến các kĩ
năng kĩ thuật.
Việc phát triển một CMS hoạt động bất kể là nội dung gì đều yêu cầu khả
năng bảo trì theo luồng của hai hệ quản lý trên tại cùng một thời điểm.Thực
tế thì cả hai hệ quản lý thông tin và ứng dụng có những sự tương
đồng:Cùng được tạo ra thay đổi phê chuẩn kiểm thử và triển khai bảo
trì.Tuy nhiên chúng cũng có những điểm rất khác nhau:Việc tạo ra thông
tin và việc tạo ra các ứng dụng là hoàn toàn cần các kĩ năng khác nhau.Khi
đến giai đoạn triển khai thì sự khác nhau càng bộc lộ rõ hơn.
3
Các luồng công việc của quản lý nội dung thông tin và quản lý ứng dụng
không giống nhau.Trong quản lý ứng dụng cần có thêm các luồng công
việc và các công cụ sử dụng để phát triển.
c.Các thành phần của nội dung
Như đó trình bày ở trên nội dung cần quản lý được tạo thành từ các thành

phần đơn lẻ và dạng của chúng cũng rất khác nhau:ví dụ với một website
nó bao gồm:Âm thanh,hình ảnh,các đoạn text,các video…Khi quản lý nội
dung ta cũng chia nội dung đó thành các thành phần riêng biệt và quản lý
từng thành phần đó.Làm như vậy thì quản lý nội dung sẽ đơn giản hơn là
quản lý tất cả chúng cùng một lúc đồng thời khi quản lý ứng dụng việc
quản lý cũng sẽ linh hoạt và dễ dàng hơn.Một lý do rất quan trọng cần phải
quản lý nội dung thành các thành phần nhỏ đó là nó sẽ cho phép sử dụng
các công cụ thiết kế khác nhau tốt nhất đối với từng thành phần.Như vậy
việc thiết kế các thành phần sẽ có chất lượng tốt.Ví dụ một chuyên gia vẽ
hình minh họa thì chỉ cần lo đến việc nội dung hình ảnh của anh ta mà
không cần quan tâm đến viết câu chuyện…
Như vậy các CMS quản lý tổng thể các phần nhỏ của nội dung,các phần
nhỏ này được gọi là các thành phần nội dung.Ta có thể hiểu được thành
phần nội dung là dạng thể hiện một mảnh nhỏ hình thành nên một câu
chuyện một bài báo,một thông tin đưa ra trên website.
3.Yêu cầu của một hệ thống CMS
a.Các chức năng cơ bản của một hệ thống CMS phải có:
• Cung cấp công cụ phục vụ quá trình soạn thảo, biên tập, chỉnh lý nội
dung
• Có hệ thống quản lý lưu trữ nội dung
• Kiểm soát phiên bản tài liệu, giám sát sự thay đổi,cho phép tìm lại nội
dung thay tài liệu trước và sau khi thay đổi biên tập.
• Cung cấp hệ thống quản lý quy trình xử lý nội dung thông tin
• Có khả năng kết xuất thông tin đầu ra tự động từ hệ thống quản lý
lưu trữ nội dung chung
• Cung cấp khả năng cá nhân hóa thông tin cho người dùng
• Cung cấp cho người dùng những công cụ tìm kiếm tra cứu theo thuộc
tính, tìm kiếm toàn văn giúp nhanh chóng tìm kiếm và định vị được nội
dung thông tin
b.Yêu cầu đối với các hệ thống CMS chuyên nghiệp hiện nay

• Cần có sự trao đổi thông tin với hệ thống bên ngoài.
• Yêu cầu trong quá trình khởi tạo nội dung
Độc lập nội dung và các lớp giao diện thể hiện
Cho phép nhiều người sử dụng làm việc trên một tài liệu
Một nội dung chỉ có một nguồn duy nhất
Cung cấp khả năng quản lý các thuộc tính khác liên quan đến nội
dung thông tin như tác giả, tiêu đề,từ khóa
4
Sử dụng không cần các kĩ năng đặc biệt về công nghệ và cụ thể là sử
dụng các công cụ biên tập và xử lý nội dung.
Dễ sử dụng
• Yêu cầu trong quá trình quản lý nội dung:
Kiểm soát phiên bản làm việc và lưu trữ
Quản lý quy trình biên tập phê duyệt nội dung
Đảm bảo tính bảo mật
Có khả năng tích hợp với hệ thống khác
Cung cấp dữ liệu báo cáo về tình trạng hoạt động đa dạng
• Xuất thông tin:
Đồng nhất về khả năng trình bày với những loại dữ liệu giống nhau.
Cung cấp các mẫu, khuôn dạng giúp xuất bản nội dung nhanh chóng
thuận lợi.
Có khả năng cá nhân hóa thông tin
• Về công nghệ:
Hệ thống phải tiện dụng và thân thiện với người dùng.
Công nghệ giúp hệ thống có khả năng tương thích và dễ dàng thích hợp mở
rộng
Hệ thống phải tuân theo các chuẩn dữ liệu xuất bản thông tin trực tuyến.
4.Các thành phần cơ bản của hệ thống CMS:
a.Ứng dựng quản lý nội dung CMA:
Nói một cách đơn giản hệ thống quản lý nội dung CMA quản lý đầy đủ

vòng đời của các thành phần nội dung.CMA tạo ra các thành phần nội dung
trong kho lưu trữ,bảo trì chúng trong thời gian tồn tại và loại bỏ các thành
phần nội dung này khi không cần thiết.CMA được coi là phần quản trị của
một hệ thống CMS.
Các chức năng chính của một hệ thống CMA đối với quản lý nội dung các
thành phần:
• Thiết kế:
Đây là giai đoạn các thành phần nội dung sẽ được đưa lên Website
được xác định và mô tả.Trong một hệ thống CMS, các thành phần
nội dung trong giai đoạn này chỉ được nhập vào tựa đề,chú thích và
mô tả rồi sau này tác giả mới hoàn tất việc tập hợp nội dung
Giai đoạn này thường không được xây dựng trong hệ thống CMS hỗ
trợ bởi các công cụ của hãng thứ 3.Thông thường chỉ cần các trình
vẽ và soạn thảo bình thường cũng là đủ.
• Soạn hợp :
Là quá trình thu được các thành phần nội dung cho một website . Nó
bao gồm cả viết một thành phần nội dung hoặc lấy từ các nguồn
khác đưa vào.Vì các thành phần này có nội dung cần phải được kiểm
duyệt và chỉnh sửa nên chúng lưu trong các kho dữ liệu để có thể
chỉnh sửa và xuất bản.
5
• Chỉnh sửa
Sau khi một thành phần nội dung được tạo ra nó thường phải đi qua
nhiều vòng chỉnh sửa và viết lại cho đến khi tất cả những người có
thẩm quyền liên quan đều cho rằng chính xác,hoàn chỉnh và sẵn
sàng chuyển sang giai đoạn tiếp theo.
• Xắp xếp
Sau khi các thành phần nội dung được kiểm duyệt chỉnh sửa hoàn tất
chúng sẽ được xắp xếp lên website để quan sát
• Kiểm thử

Bây giờ các thành phần nội dung của ta sẵn sàng cho việc quan sát
nên ta cần kiểm tra chúng.Việc kiểm thử đó để đảm bảo nó sẽ xuất
nội dung theo ý muốn của ta.
• Dàn dựng
Sau khi kiểm thử nội dung sẽ được dàn dựng lên server để chờ được
hiển thị.Mục đích của server dàn dựng là để chuyển dữ liệu càng
nhanh càng tốt để tránh những ảnh hưởng không tốt.
• Khai triển
Đây là giai đoạn đưa nội dung ra công chúng thủ tục triển khai khá
phức tạp phụ thuộc vào server ta có cho phép sự truy cập 24/7 hay
không.
• Bảo trì
Đây là giai đoạn cập nhật thông tin bổ xung,hoặc thông tin
mới,chỉnh sửa lỗi phát sinh.
• Lưu trữ:
Khi một nội dung đó quá thời hạn hiển thị thì nó được lưu trữ.Lưu
trữ không có nghĩa ló người dùng không thể truy cập được.Mà thông
tin người dùng vẫn có thể truy cập thông qua chức năng tìm kiếm.
• Xóa bỏ
Khi một nội dung đó quá lỗi thời quá hạn và không thể update được
nữa thì thành phần nội dung này có thể được xóa bỏ.Tuy nhiên có
thể xóa và lưu vào thựng rác như vậy khi cần ta vẫn có thể khôi phục
lại được,hoặc cũng có thể được xóa hoàn toàn.
b.Ứng dụng quản lý nội dung thông tin MMA:
MMA quản lý vòng đời đầy đủ nội dung thông tin.Ta có thể định
nghĩa nội dung thông tin là các thông tin về thành phần nội dung đặc biệt là các
thành phần nội dung được hiện thị trên các website như thế nào.
MMA khác với CMA ở chỗ MMA quản lý việc sinh ra nội dung
thông tin thay vì các thành phần nội dung. Cũng giống CMA sau mỗi giai
đoạn các nội dung thông tin ở trạng thái ổn định hơn.

• Phê chuẩn
Trước khi mỗi giai đoạn hoàn tất và giai đoạn tiếp theo bắt đầu một
người có thẩm quyền cần phê chuẩn nội dung thông tin.Việc phê
6
chuẩn các thay đổi quan trọng ở MMA thường do nhiều người thực
hiện chứ không phải một người như ở CMA.
• Phân tích
Trước khi tạo ra sự thay đổi,một vài nghiệp vụ phân tích cần được
tiến hành .Công việc phân tích thường được tiến hành ngoài CMS vì
vậy có rất nhiều công cụ tốt thực hiện công việc này
• Thiết kế
Quá trình này mô tả nội dung thông tin được hiển thị trên
website,thường là ở mức độ chi tiết cao vì thiết kế này phải qua một
ủy ban phê chuẩn.Giai đoạn này cũng thực hiện ngoài CMS
• Khởi tạo
Đây là việc tạo ra nội dung thông tin luôn dựa vào việc phân tích
thiết kế trước đó.
• Xây dựng
Một khi các thành phần nội dung đó được tạo thành hoàn tất thì
chúng cần được nối lại với nhau
Đây là giai đoạn khác nhau giữa CMA và MMA vì giai đoạn này
thường cần dựng đến công cụ của các hãng thứ ba.
• Kiểm thử
Sau khi nội dung thông tin được tạo ra và xây dựng chúng cần được
qua giai đoạn kiểm thử
Không giống như quản lý thành phần nội dung,việc kiểm thử ở đây
đặc biệt nghiêm ngặt và không thể lơ là.
• Stage,Deployment,Maintenance,Removal tương tự như ở CMA
5.Các quy trình của CMS
a.Kiểm soát phiên bản:

Một trong những vấn đề quan trọng trong quản lý nội dung là kiểm
soát phiên bản,nó quyết định chất lượng của một hệ quản lý nội dung là tốt
hay dở.
Chức năng này giúp người sử dụng lưu trữ và khôi phục các phiên
bản của trang thông tin kiểm soát phiên bản bao gồm Theo dõiphiên
bản(version tracking) và cơ chế phục hồi(rollback) và nó là nền tảng để trên
đó ứng dụng quản lý nội dung CMS và ứng dụng quản lý nội dung thông
tin MMA hoạt động.Không có chức năng kiểm soát phiên bản CMS sẽ rất
khó khăn trong việc đảm bảo tính nhất quán, toàn vẹn của nó. Quá trình
thêm ngẫu nhiên các thành phần nội dung và nội dung thông tin của các site
sẽ thay đổi làm cho các trang web thay đổi giúp người dùng không nhàm
chán khi truy cập vào.
Không có chức năng quản lý phiên bản thì các thành phần dữ liệu
hoặc nội dung rất dễ mất tính đồng bộ.Ví dụ:
Một người đưa nội dung thông tin lên,một người khác thấy một
thành phần nội dung này không hợp lý sửa đổi lại và cập nhật.Tác giả của
7
nội dung này cập nhật thành phần đó được phê duyệt lên.Tuy nhiên nếu
thành phần nội dung này có lỗi xảy ra như sai chính tả,tin tức sai lệch…Thì
quản lý phiên bản sẽ chỉ ra ai là người chỉnh sửa nội dung và còn cho phép
phục hồi lại nội dung cũ.
Có nhiều cách để kiểm soát phiên bản:
CMS có thể tích hợp các gói kiểm soát phiên bản được cung cấp bởi các
công ty thứ ba.
CMS cũng có thể xây dựng kiểm soát phiên bản trực tiếp gắn vào quy trình
quản lý nội dung.
Quản lý phiên bản mang lại rất nhiều lợi ích không chỉ đối với việc
quản lý một site có nhiều nhà thiết kế,viết phần mềm, các tác giả mà cả đối
với các trang web chỉ được quản lý bởi một người cũng mang lại lợi ích rất
to lớn

Các phương pháp tiếp cận quản lý phiên bản:Có hai phương pháp
tiếp cận đó là phương pháp tiếp cận đơn giản và phương pháp tiếp cận phức
tạp.Hầu hết các CMS sử dụng phương pháp tiếp cận đơn giản,ngay cả các
CMS sử dụng phương pháp tiếp cận phức tạp thì vẫn có chứa phương pháp
tiếp cận đơn giản.Phương pháp tiếp cận phức tạp phải sử dụng các gói quản
lý phiên bản của các công ty thứ ba.Ta xem xột cả hai phương pháp tiếp
cận này qua các hoạt động quản lý phiên bản.
-Cơ chế quản lý tính duy nhất-kiểm tra vào ra(Check in,check out)
của một hệ thống CMS.Đây là cơ chế khóa ở cấp độ tệp tin và cơ chế log
các tác động của người sư dụng của CMS nhằm giải quyết xung đột giữa
các người dùng tránh người này ghi đố lên phần làm việc của người kia
hoặc nếu có thì dễ dàng tìm được nguyên nhân và khôi phục lại. Đây cũng
là một trong các tính năng quan trọng và cao cấp của CMS, hỗ trợ tối đa
cho người dùng, đảm bảo tính toàn vẹn của dữ liệu.Đó là việc thông báo
đên người quản lý các tác động liên quan đến thông tin như:việc xóa bài
sửa bài bài bị gửi trả… để cố giúp người dùng luôn có thể Theo dõikiểm tra
chặt chẽ nội dung sẽ được xuất bản.
Đối vớiphương pháp tiếp cận đơn giản:
Phương pháp này hoạt động với giả thiết tại một thời điểm chỉ có thể
có một người sử dụng được phép tác động lên dữ liệu. Dạng này hoạt động
dựa vào cơ chế khóa đối với nội dung: đơn giản một người muốn sửa đổi
dữ liệu thì phải check out dữ liệu nếu người khác đang checkout thì phải
chờ để người đó chỉnh sửa xong cập nhật lại rồi mới check out được.Sau
khi chỉnh sử xong cần check in để mở khóa dữ liệu cho phép người khác
chỉnh sửa.Thật ra trong thực tế quy trình của việc quản lý nội dung là liên
tiếp nhau do đó rất ít trường hợp tồn tại hai người cùng muốn chỉnh sử nội
dung một lúc
Sơ đồ hoạt động của quy trình:
8
Quản lý phiên bản phức tạp: Hướng tiếp cận này giả thiết rằng tại

một thời điểm có thể có nhiều người được phép truy cập sửa đổi nội
dung ,miễn sao tồn tại một bản sao chính của thành phần nội dung.Mọi hoạt
động check out đều thực hiện trên thành phần được sao chộp ra và đế khi
check in nội dung thay đổi được gộp vào bản copy chính
Như vậy nhiều người có truy cập vào nội dung tại một thời điểm
chỉnh sửa các thành phần cần thiết sau đó cập nhật lại.Ví dụ hệ thống trợ
giúp trực tuyến của microsoft là một Ví dụ quản lý phiên bản phức tạp.
Như đó phân tích ở trên một hệ thống CMS chỉ cần tiếp cận quản lý phiên
bản theo hướng đơn giản là đó đủ rồi không cần thiết phải theo hướng phức
tạp.Tuy nhiên thì một số CMS vẫn để tùy chọn quản lý phiên bản phức tạp
do các CMS vẫn luôn cho phép tích hợp hệ thống quản lý phiên bản của
công ty thứ ba.
Sơ đồ hoạt động:
Tiến trình kiểm soát phiên bản và lưu trữ dữ liệu:
9
Mọi nội dung văn bản trước khi được đưa vào kho chứa sẽ được lưu
trữ dưới dạng những phần nhỏ delta.Mọi thay đổi được tạo ra giữa thời
điểm nội dung được đưa ra kho chứa với các tác động kiểm tra thời điểm
nội dung được đưa trở lại kho chứa cũng có kiểm tra.Cách lưu trữ như vậy
rất hiệu quả khi xột đến vấn đề không gian lưu trữ vì không cần lưu trữ
nhiều bản sao của nội dung ngay cả khi có nhiều phiên bản của nội dung đó
do không phải lưu trữ một bản sao của nội dung đầy đủ nên phần thông tin
nho như vậy một cách một cách logic ta có thể lấy ra phiên bản bất kì nào
ta muốn.Tất cả những mà phần mền kiểm soat phiên bản cần làm là sắp xếp
các thông tin theo đúng trình tự để có được phiên bản theo yêu cầu.
Nội dung nhị phân trước khi được đưa vào các kho chứa của các hệ CMS
cũng đôi khi sử dụng cơ chế delta,nhưng do sự phức tạp của file nhị phân
nội dung nhị phân được lưu dưới file hoàn chỉnh tương ứng với các phiên
bản mà không cần thiết một phép xử lý delta nào.
Theo dõi phiên bản(version tracking):

Theo dõi phiên bản là bước tiến xa hơn của quản lý phiên bản.Có thể
coi nó là quá trình công chứng phiên bản của nội dung được đưa vào hoặc
lấy ra khỏi kho chứa.Mục đích chính của Theo dõi phiên bản là Theo dõi
Mọi thông tin liên quan đến những thay đổi của nội dung trong suốt vòng
đời của nó.Tiến trình này bao gồm việc ghi chép lại khi nào có sự thay đổi
ai thay đổi,thay đổi gì,và có thể cả tại sao lại có những thay đổi đó
nữa.Theo dõi phiên bản cung cấp một cơ chế bảo vệ nghiêm ngặt,mà ta có
thể tưởng tượng như sau:Khi một người dùng đăng nhập vào hệ thống thì
mã của người đó sẽ tự động được ghi lại.Như vậy bất kĩ tác động xấu nào
của anh ta lên hệ thống đều có thể được Theo dõi và chúng ta có thể thay
đổi mật khẩu của anh ta hoặc xóa account của anh ta.
Cơ chế phục hồi(rollback):
Cơ chế phục hồi cho phép thay đổi phiên bản hiện tại trở về phiên
bản trước đó.Cơ chế này thường được thực hiện trên các thành phần nội
dung hoặc những nội dung thông tin,còn đối với cấp độ website cơ chế này
đưa website trở lại nội dung trước khi nó được update.
Tiến trình phục hồi này thường rất an toàn vì nó lấy toàn bộ nội dung hiện
tại thay thế bởi phiên bản ổn định trước đó.Khi phục hồi một website
thường ở trạng thái tạm thời ngừng làm việc nên không có cơ hội cho người
dùng gây tổn họi cho hệ thống.Ví dụ khi người dùng đăng nhập dữ liệu vào
một form khi quá trình phục hồi bắt đầu khi đó nếu form đó thay đổi thì rất
có thể khi người dùng submit dữ liệu lên thì có thể làm hỏng hệ thống.
-Vai trò của quản lý phiên bản:
Tại sao phải phục hồi lại hệ thống để làm gì?Phục hồi hệ thống để kiểm tra
một điều gì đó,hoặc có thể do nhầm lẫn bên làm cho hệ thống bị mắc lỗi
bên muốn quay lại trạng thái ổn định trước đó của hệ thống.Quản lý phiên
bản còn có rất nhiều lợi ích đối với một hệ thống CMS như cho phép hợp
10
tác theo nhóm tăng cường công tác quản lý website làm tăng tốc độ phát
triển nội dung…

Cho phép sự cộng tác nhóm: Đây là vai trò quan trọng chủ yếu của quản lý
phiên bản trong CMS cung cấp một nền tảng tốt cho cộng tác làm việc theo
nhóm.Với vô số thành phần nội dung và các nội dung thông tin tạo nên
website thì không một ai có đủ khả năng để xây dựng cả một website,mà
công việc này đòi hỏi nhiều kĩ năng con người.
Nâng cao quản lý các Website:Một điều đó không được nói đến trong quá
trình nói về quản lý phiên bản và Theo dõi phiên bản.Đó là sự xếp hạng các
báo cáo mà quản lý phiên bản cung cấp.Một vài báo cáo tập chung vào một
dãy thông tin mà một người quản lý biên tập site hoặc chủ site có thể sử
dụng để quản lý nhân sự trong site.
Tăng tốc phát triển nội dung:Bên không thể bắt các tác giả và biên tập viên
làm việc nhanh hơn khả năng mà họ có nhưng có thể làm giảm thời gian
Mà nội dung ở trong tình trạng không tích cực như là chờ được biên tập
chỉnh sửa phê duyệt,kiểm thử triển khai.Công việc đó được thực hiện do
sinh tự động một sự kiện cho hệ thống,thông báo cho CMS thời khắc mà
nội dung được đưa trở lại kho chứa.Sự kiện này có thể khởi phát để sinh ra
một thư điện tử để thông báo cho người kế tiếp có trách nhiệm phê duyệt
trong quy trình quản lý nội dung.Không có hệ thống tự động này người
phát triển nội dung có thể phải bỏ ra nhiều thời gian để chờ đợi một người
trong hệ thống để làm việc tiếp với nội dung.
Nâng cáo sự giao tiếp:Theo dõi phiên bản cho phép tự động quá trình giao
tiếp giữa tất cả các bộ phận liên đới với một phần nội dung.Sự tự động tạo
ra và định tuyến thư điện tử khi tổng hợp thành phần nội dung hoặc nội
dung thông tin kết hợp với tham gia tất cả các liên lêc được yêu cầu trong
hệ thống Theo dõi phiên bản khiến chuyển giao trôi chảy giữa các trạng
thái trong vòng đời của nội dung.
Nâng cao hiệu quả của quy trình làm việc:Mỗi giai đoạn của trình làm việc
có thời điểm bắt đầu và thời điểm kết thúc khác nhau vì chức năng khóa
được cung cấp bởi hệ thống kiểm soát phiên bản. Vì chỉ có một người làm
việc với nội dung trong một thời điểm cụ thể,không có sự chồng chéo trong

quá trình phát triển và do đó không có sự phục hồi để một bộ phận,một
phần của nội dung được đồng bộ.
Kho chứa được bảo vệ:Sử dụng quá trình kiểm tra vào ra do có quản lý
phiên bản bên có thể chắc chắn rằng nội dung được chia sẻ không bị ghi đố
một cách vô tình trong môi trường làm việc nhóm là một yêu cầu của phát
triển website.
Cấu trúc hóa hệ thống:Môi trường để phát triển nội dung được cấu trúc hóa
và ổn định đối với tất cả các giai đoạn trong quy trình làm việc quản lý nội
dung.Có mẫu kiểm tra nội dung ra kho chứa cố định cố định, thực hiện thay
đổi kiểm tra nội dung vào rồi đưa nó trở lại kho chứa.Không có sự lựa chọn
nội dung bừa bói không chấp nhận ngẫu nhiên nội dung vào trong hệ thống.
11
Giảm thiểu các khuyết điểm:Đó là kết quả của môi trường được cấu trúc tốt
do có sự hoạt động của hệ thống quản lý phiên bản dùng cho cập nhật nội
dung,các lỗi vô ý do ghi đố lên nội dung ghộp nội dung,thiếu liên lêc giữa
các bộ phận bảo trì nội dung sẽ được giảm thiểu nếu như không phải nói là
hoàn toàn bị loại trừ.
b.Quy trình làm việc(Work flow)
Quy trình làm việc là quy trình nội dung đưa lên trên web.Quy trình này
thường được phân chia thành nhiều công đoạn từ khâu mới tạo tới khâu
xuất bản.Tất cả các CMS đều có một quy trình làm việc.Một CMS tốt khi
quy trình làm việc của nó đơn giản linh hoạt.Nhiều CMS cung cấp cho ta
khả năng tạo ra các quy trình làm việc tự người dùng định nghĩa,số còn lại
cung cấp một quy trình làm việc chuẩn:Tạo,chỉnh sửa, phê duyệt,xuất
bản…
• Ta hãy xem hệ thống phát triển nội dung website của ta, những điều nào
dưới đây là đúng?
-Vẫn phải phụ thuộc nhiều vào giấy tờ.
-Hệ thống này cần nhiều người tham gia.
-Thường xuyên nhiều thành phần nội dung bị mất mát do đặt nhầm

chỗ.
-Khi nội dung cần phải cần phải sửa chữa cách duy nhất để biết được
cần phải sửa chữa những gì là yêu cầu người dùng đưa nội dung đó
giải thích vấn đề.
-Không có cách nào để Theo dõi các thành phần nội dung của ta.
-Và khi một nhân viên biết các quy tắc luân chuyển thành phần nôi
dung anh ta phải được đào tạo.
-Quá trình tạo ra các thành phần nội dung không bao giờ được thực
hiện như nhau hai lần.
-Không có cách nào Theo dõi được chi phí phải bỏ ra là bao nhiêu
và trong bao lâu thì sẽ xây dựng được một thành phần nội dung.
• Nếu một vài tình huống trên xảy ra thì đó là do CMS của ta chưa có một
hệ thống quy trình làm việc hoặc chưa sử dụng đúng đắn quy trình làm
việc của ta.Giải pháp rõ ràng là ta cần có một hệ thống quy trình làm
việc tốt.
• Quy trình làm việc là gì:
Để hiểu quy trình làm việc là gì, ta chia từ quy trình làm việc ra hai
thành phần work-flow.Work cho ta liên tưởng tới đến một nhóm những
người đang cố gắng hoàn thành một loại tác vụ hay hoạt động nào đó và
mỗi người thường được phân công một tác vụ hoặc một tập các tác vụ.Còn
từ flow cho ta một hoạt động thẳng tiến,ổn định mà hình ảnh đầu ta nghĩ tới
đó là luồng chảy.Như vậy work flow có thể hiểu như là một nhóm người
làm việc cùng nhau mỗi người phụ trách các thao tác và công việc của họ
cứ tiến hành xuôn xẻ để đạt được mục tiêu chung.
• Các thành phần của luồng công việc:
12
Phần lớn luồng công việc của CMS được chia thành hai thành phần:
Thành phần quản lý hành chính xác định luồng
Engine thực hiện luồng công việc cho hệ thống quản lý nội dung.
Tên các thành phần đó sẽ khác nhau ở mỗi loại CMS nhưng chức năng

là như nhau và sẵn sàng ở một dạng nào đó.
o Trình ứng dụng xác định luồng làm việc:
Trình xác định luồng công việc là thành phần của hệ thống luồng
công việc của CMS cho phép người dùng tạo ra sửa đổi và xóa
các luồng công việc đó có. Các thành phần này có thể có thêm rất
nhiều sức Mạnh cho CMS vì nó cho phép cấu hình CMS khả
năng tùy biến cách tạo các thành phần được tạo ra của người biên
tập hay tác giả.Vì luồng công việc có thể cấu hình theo cách mà
bên thích luồng công việc được xác định rõ ràng trước khi thực
hiện.Sẽ có ít sự cản trở cho luồng công việc được xắp xếp tốt
theo cách đó. Ngườii dùng sẽ thấy hệ thống luồng công việc là
một công cụ hữu ích.
13
o Engine của luồng công việc:
Engine của luồng công việc là trung tâm của Mọi hoạt động
trong các hệ thống quản lý nội dung. Nó thường cung cấp phần
lớn,nếu như không phải tất cả,các chức năng đề cập đến trong
phần sau:
Hệ thống kiểm tra vào/ra:Bất cứ khi nào nội dung được sử
dụng bởi engine của luồng công việc nó cần được kiểm tra
ra.Quá trình kiểm tra thực hiện một trong hai việc,phụ thuộc vào
hệ thống quản lý phiên bản.Quá trình kiểm tra ra xảy ra ngay cả
khi hệ thống giới thiệu một phần nội dung ban đầu.Việc đầu tiên
của engine luồng công việc là tạo ra một không gian chứa nội
dung và kiểm tra một phần rỗng của nội dung khi Mọi sự thay
đổi được hoàn tất,nội dung cần được kiểm tra vào.Một lần nữa
quá trình kiểm tra phụ thuộc vào hệ thống quản lý phiên bản.Nội
dung vào sẽ được ghi đố phiên bản hiện tại hoặc được ghộp với
nội dung chính trong kho chứa.
Giao diện đầu vào cho nội dung:Giai đoạn đầu tiên của Mọi

luồng công việc là tạo bản nháp ban đầu cho thành phần nội dung
hay nội dung thông tin.Một phần nội dung thường được tạo ra
bằng cách nhập các thông tin thích hợp vào một mẫu web do
engine của hệ thống luồng công việc tạo ra.Thường thì mẫu web
đầu tiên mà một tác giả thấy khi tham gia luồng công việc là một
danh sách tất cả nội dung anh ta đó tạo và trạng thái của nó.Từ
đó,tác giả có thể chọn lựa hoặc tiếp tục nhập thông tin cho nội
dung dang dở hoặc tạo ra phần nội dung mới.
Phần III. Tìm hiểu PHP
1.PHP Cơ bản
• PHP là gì?
PHP là ngôn ngữ dựng để lập trình phát triển mạng và được viết bởi những
người phát triển mạng. PHP là từ viết tắt của PHP: Hypertext Preprocessor,
trước đây nó đó từng có tên là Personal Home Page Tool và nhiều người
vẫn còn nghĩ là được viết tắt từ những từ đó. Hiện tại, PHP đó ra đời phiên
bản thứ 5, được gọi là PHP5 hoặc cũng có thể gọi là PHP cũng được. PHP
là 1 ngôn ngữ server-side, mà có thể được nhúng vào trang HTML hoặc
như một chương trình mã nhị phân chuẩn (mặc dự nó chỉ được phổ biến
vào thời kì trước kia). Những sản phẩm tương tự như PHP có thể kể tới là:
Microsoft’s Active Server Pages (ASP), Macromedia’s ColdFusion và
Sun’s Java Server Pages (JSP). Một vài nhà báo kĩ thuật đó gọi PHP “the
open source ASP” bởi vì các thuộc tính của nó rất tương tự với sản phẩm
của Microsoft. Nhưng PHP lại có những đặc tính riêng biệt và độc đáo hơn
các ngôn ngữ khác.
• PHP là Free!!!
14
Bên không cần phải trả tiền cho bất cứ ai để dựng PHP (trừ tiền net và tiền
mua CD). Sẽ không có chi phí cấp giấy phép, những chi phí hỗ trợ, chi phí
bóo dưỡng…
• PHP là một dự án mã nguồn mở, PHP có thể cho bất cứ ai xem mã nguồn của

nó. Nếu bên muốn tìm hiểu cách hoạt động hay làm sao người ta viết
ra được PHP, bên có thể xem thoải mái nhân của PHP để biết được
những thứ mà bên muốn (nó được viết bằng ngôn ngữ C).
• PHP rất nhanh và dễ dàng
Tốc độ thì sao? Có 3 điểm để đánh giá tốc độ của một ngôn ngữ lập trình
web. Thứ nhất, ứng dụng được viết bằng C sẽ là nhanh nhất. Thứ hai, lập
trình bằng C quả là khá khó và cần nhiều thời gian hơn bất kì ngôn ngữ nào
khác. Thứ ba, để so sanh giữa các ngôn ngữ thật chính xác là một công việc
vô cùng khó. Từ những kinh nghiệm, có thể nói PHP là nhanh nhất. Thông
thường, việc chọn ngôn ngữ lập trình không giống như việc chọn mua đôi
giày. Bên sẽ muốn đi với những cái tiện nghi đang hiện hành. Bên sẽ thấy,
PHP là sự kết hợp giữa sức Mạnh, cấu trúc và rất dễ sử dụng. Một lần nữa,
xin nhắc rằng, việc chọn lựa chỉ là dựa trên quan điểm nhưng chúng ta tin
tưởng rằng cú pháp của PHP cao cấp hơn ASP và JSP. Và tin tưởng rằng nó
mạnh hơn ColdFusion và không khó học như Perl. Cuối cùng, chúng ta tin
tưởng rằng việc lựa chọn PHP để phát triển ứng dụng web là rất đựng đắn.
Mạnh và nhanh chóng, đó là PHP!
• PHP là đa hệ điều hành
Bên có thể sử dụng PHP với 1 máy chủ cài hệ điều hành Windows, Mac OS
X, Linux, Solaris, và những phiên bản khác của Unix. Nếu bên muốn thay
đổi hệ điều hành của máy chủ sang hệ điều hành khác thì bên không cần
phải sửa đổi gì thêm trong chương trình PHP cả. Hãy chộp chúng từ máy
chủ Windows tới máy chủ Unix, và chúng vẫn sẽ làm việc.
Hiện nay Apache (được sử dụng trên 60% các máy chủ trên thế giới) đang
là một chương trình web server được sử dụng nhiều nhất với PHP, bên
cũng có thể sử dụng Microsoft Internet Information Server và các web
server khác có hỗ trợ chuẩn CGI. PHP cũng làm việc với phần lớn các
chương trình CSDL như MySQL, Oracle, Microsoft SQL Server, Sybase,
and PostgreSQL. Ngoài ra, nó cũng hỗ trợ chuẩn cơ sở dự liệu ODBC.
• PHP truy cập được Mọi thứ

Bên cần truy cập gì trong quá trình tạo ra một ứng dụng web? LDAP,
IMAP mail server, Oracle, Informix, DB2 hoặc có thể cần truy xuất XML
hay các hàm WDDX… PHP có rất nhiều hàm để giúp bên có thể truy cập
những thứ đó một cách nhanh nhất và tối ưu nhất!
• PHP được sử dụng một cách rộng rãi
15
Tính đến tháng 3 năm 2004, PHP đó được cài đặt trên 15 triệu web sites, từ
những trang cá nhân nhỏ đến những trang của các đại gia như Google,
Yahoo!. Có rất nhiều sách, tạp chí, và web sites dạy PHP để bên có thể
khám phá nó. Cũng đó có trường, công ty hỗ trợ và huấn luyệt bên về PHP.
Tóm lại, nếu bên là người dùng PHP, bên sẽ không lẻ loi đâu.
• PHP – Nơi chứa đựng Web World
PHP là một ngôn ngữ lập trình để xây dựng web sites. Ngoài việc chương
trình PHP có thể chạy trên máy để bàn, nó còn có thể chạy được trên các
máy chủ và có thể cho người khác truy cập thông tin bằng trình duyệt trên
máy của họ. Mục này sẽ giải thích sự tương tác giữa trình duyệt và máy chủ
thông qua PHP.
• Thẻ lệnh PHP
Đây là một câu lệnh kết hợp PHP để hiển thị ngày tháng trên trang web:
Hôm nay là <?php echo date('j F Y');?>
Thẻ <?php là thẻ cho chúng ta biết phần giới hạn của mã PHP đối với
HTML, và được kết thúc bằng thẻ ?>. Trong Ví dụ này, câu lệnh echo báo
cho PHP hiển thị nội dung nào đó; lệnh thực thi (thực chất đây là một hàm
có sẵn trong PHP) tiếp theo date là định dạng hiển thị ngày tháng, bao gồm
ngày, tháng, và năm.
Các thẻ mở đầu và kết thúc của PHP được qui ước là <?php ?>. Bên
cũng có thể sử dụng những thẻ khai báo khác, Ví dụ như những thẻ sau
đây: <??<% (thẻ dạng ASP) hoặc <SCRIPT LANGUAGE="php"> (thẻ
script). Tuy nhiên, vào thời điểm này, theo qui ước của các lập trình viên
PHP thì chúng ta nên dựng <?php ?> là chuẩn nhất, và nên hạn chế dựng

các thẻ kia, cũng như thẻ <? để tránh nhầm lẫn khi PHp xử lý!
Mọi thứ nằm trong thẻ của PHP sẽ được thực hiện thẳng tới Trình duyệt. Vì
vậy, trong Ví dụ trên, câu Hôm nay là sẽ xuất hiện trước khi câu lệnh tạo
ngày tháng hiển thị.
2. Tìm hiểu về Biến
• Hiểu thế nào là Biến
Biến chức đựng những giá trị mà có thể lưu trữ và có thể sử dụng sau đó và
là một phần không thể thiếu trong bất kỳ ngôn ngữ lập trình nào.
Để thay thế, bên hãy khai báo biến có tên là number có giá trị là 5 hoặc
biến có tên gọi là name và giá trị là Vietnam. Sau đây là mã PHP có khai
báo các biến với tên và giá trị của biến đó:
$number = 5;
$name = "Vietnam";
16
Trong PHP, tên biến luôn được thêm ở đâu ký tự đô-la. Nếu bên nhớ điều
đó, thì việc khai báo biến là rất dễ dàng: Bên chỉ cần đánh ký tự đôla và gì
đó ở sau kí tự và cho nó bằng một cái gì đó là có thể khai báo một biến
trong PHP rồi.
Khai báo Biến Không giống như một vài ngôn ngữ lập trình khác, biến của
PHP không cần phải khai báo trước khi có thể sử dụng. Bên có thể đặt giá
trị cho biến đó bất cứ lúc nào bên muốn sử dụng tới nó.
Biến có thể sử dụng để đặt ở bất cứ đâu trong mã lệnh PHP. Ví dụ bên dưới
sử dụng câu lệnh echo để hiển thị giá trị được lưu trữ trong biến là cách để
bên có thể dựng biến lưu trữ những gì mà bên muốn và có thể cho giá trị đó
hiển thị ra nếu bên muốn:
$name = "Vietnam";
echo "Xin chào, ";
echo $name;
Kết quả xuất ra sẽ là:
Xin chào, Vietnam

• Đặt tên Biến
Làm cách nào để đặt tên biến đúng cách và dễ nhớ, thuận tiện cho việc lập
trình. Mục này sẽ hướng dẫn bên làm điều đó.
Sẽ không tốt lắm khi bên đặt những tên biến đại loại như $a, $b, hoặc
những cái gì quá ngắn gên. Và chắc rằng bên sẽ khó lòng mà nhớ được
những tên biến quá là ngắn và chả gợi một cái gì cho giá trị mà nó lưu trữ.
Một tên biến tốt theo đúng nghĩa của nó là phải thể hiện được ngắn gên và
liên quan tới giá trị mà nó lưu trữ (Ví dụ như, $price hay $name).
Phân biệt chữ hoa và thường Tên biến trong PHP có phân biệt chữ hoa và
thường. Ví dụ, $name thì khác với biến tên là $Name, và hai biến này sẽ có
thể chứa 2 giá trị khác nhau trong script.
Tên biến chỉ được khai báo với chữ cái, số, và dấu gêch dưới, và nó chỉ
được bắt đầu với chữ cái và dấu gêch dưới. Bảng 2.1 cho thấy một vài Ví
dụ về tên biến hợp lệ và không hợp lệ.
Bảng 2.1. Ví dụ về tên biến hợp lệ và không hợp lệ Tên biến hợp lệ
Tên biến không hợp lệ
$percent $pct%
$first_name $first-name
$line_2 $2nd_line
$percent
$pct%
$first_name
$first-name
$line_2
$2nd_line
17
Sử dụng dấu gêch dưới Sử dụng dấu gêch dưới là cách rất tốt để đặt tên
biến và cũng là cách để dễ phân biệt tên biến. Ví dụ $first_name và
$date_of_birth là những tên biến sử dụng dấu gêch dưới.
Một qui ước đặt tên biến khác là viết hoa những chữ cái đầu của từ, Ví dụ,

$FirstName và $DateOfBirth. Nếu bên thích thì có thể sử dụng kiểu đặt tên
biến này, nhưng nên nhớ là tránh nhầm lẫn giữa những kí tự viết hoa và
thường.
• Biểu Thức
Khi một tên biến được khai báo ở đâu đó, giá trị của nó không phải là một
giá trị cố định. Nó có thể sử dụng trong biểu thức với hai hay nhiều giá trị
được nối với nhau bằng toán tử để thực thị ra một kết quả nào đó. Sau đây
là một Ví dụ đơn giản về một biểu thức sử dụng toán tử:
$sum = 16 + 30;
echo $sum;
Biến $sum lấy giá trị bằng cách sử dụng dấu bằng. Giá trị 16 và 30 được
nối bằng phép cộng (+) và kết quả sẽ trả về giá trị của 2 giá trị được cộng
lại. đúng vậy, kết quả hiển thị ra sẽ là 46.
Để thấy rằng biến có thể sử dụng để thay cho những giá trị cố định, bên có
thể thực hiện toán tử đối với 2 biến:
$a = 16;
$b = 30;
$sum = $a + $b;
echo $sum;
Giá trị của biến $a và $b được cộng lại với nhau, và kết quả cũng cho là 46.
Biến chứa Chuỗi ký tự
Bên sẽ thấy được sự khác nhau giữa việc chứa các chuỗi ký tự trong dấu
nháy đơn và dấu nháy kép.
Sự khác nhau là tên của biến nắm trong câu lệnh sẽ báo cho câu lệnh biết
rằng giá trị của biến đó là một phần của chuỗi. Còn khi sử dụng dấu nháy
đơn, thì tên của biến không được nhận ra mà xem nó như là một kí tự nào
đó, vì vậy giá trị của biến sẽ không được hiện ra.
Ví dụ sau đây sẽ nói rừ hơn về điều đó. trong Ví dụ bên dưới, giá trị của
biến $name được bao gồm trong chuỗi và sẽ được hiển thị ra:
$name = "Vietnam";

echo "Xin chào, $name";
Kết quả hiển thị Xin chào, Vietnam.
Còn trong Ví dụ sau đây, biến sẽ không được nhận ra và kết quả hiển thị là
tên của biến chứ không phải là giá trị của biến:
$name = 'Vietnam';
echo 'Xin chào, $name';
Kết quả hiển thị Xin chào, $name.
18
Lúc này, bên cần phải chỉ cho PHP biết đâu là bắt đầu và kết thúc của biến.
Bên có thể làm điều này bắt cách sử dụng dấu ngoặc mốc ({}). Sau đây là
một Ví dụ:
echo "The total weight is {$weight}lb";
Nếu bên không sử dụng dấu ngoặc mốc $weight, PHP sẽ nghĩ rằng bên đó
dựng biến $weightlb, nhưng biến này lại không tồn tại, nói đúng hơn là
không có giá trị trong script.
Bên cũng có thể làm cách khác đó là sử dụng toàn tử ghộp nối, đó là dấu
chấm, bên có thể sử dụng nó để ghộp 2 chuỗi với nhau và giữa đó là một
biến nào đó, bên dưới là Ví dụ:
echo 'The total weight is ' . $weight . 'lb';
Trong câu lệnh trên, biến $weight đó được nhận ra và kết quả sẽ là giá trị
của biến chứ không phải tên biến. Chuỗi đó được tách ra làm 3 phần, một
phần trong đó có chứa biến $weight.
Nếu $weight có giá trị là 99, câu lệnh sẽ xuất ra như sau:
The total weight is 99lb
• Kiểu Dữ liệu
Mỗi biến có giá trị và mỗi giá trị của biến đều có kiểu riêng của nó và kiểu
dữ liệu đó định nghĩa cho biến theo kiểu nào đó. Các kiểu dữ liệu cơ bản
trong PHP được liệt kệ trong Bảng 2.2.
Kiểu Dữ liệu Chú thích
Boolean A truth value; trả về giá trị TRUE hoặc FALSE.

Integer Giá trị số nguyên; có thể xác thực hoặc phủ nhận số.
Double (or float) Số giá trị số floating-point; có thể cho giá trị thập phân.
String Một giá trị ký tự; có thể bao gồm các ký tự của ASCII
Bảng 2.2. Kiểu Dữ liệu trong PHP Kiểu Dữ liệu
Chú thích
o Boolean
A truth value; trả về giá trị TRUE hoặc FALSE.
o Integer
Giá trị số nguyên; có thể xác thực hoặc phủ nhận số.
o Double (or float)
Số giá trị số floating-point; có thể cho giá trị thập phân.
o String
Một giá trị ký tự; có thể bao gồm các ký tự của ASCII.
Khi bên gán một giá trị tới biến, thì kiểu giá trị của biến cũng được thiết
đặt. PHP xác định kiểu giá trị tự động, dựa trên giá trị mà bên gán. Nếu bên
muốn kiểm tra giá trị mà bên đó gán, bên có thể sử dụng hàm gettype.
Chạy đoạn mã dưới để thấy kiểu giá trị của số thập phân là double:
19
$value = 7.2;
echo gettype($value);
Hàm bổ sung cho hàm gettype là settype, nó cho phép bên đố lên kiểu giá
trị của biến. Nếu giá trị lưu trữ trong biến không thích hợp với kiểu giá trị
mới mà bên muốn gán cho nó, nó sẽ được sửa đổi tới giá trị gần nhất có thể.
éoên mã sau chuyển đổi một giá trị string (chuỗi) thành giá trị integer (số
nguyên):
$value = "29 January 2006";
settype($value, "integer");
echo $value;
Trong trường hợp này, chuỗi bắt đầu với số, nhưng chuỗi lại không phải là
số nguyên. Sự chuyển đổi này số bỏ đi những phần không hợp lệ ở phần

sau của chuỗi, vì vậy khi xuất ra, giá trị sẽ là 29.
Phân tích Kiểu Dữ liệu Trong phần này, bên sẽ không sử dụng settype và
gettype thường xuyên bởi vì sẽ hiếm khi bên cần thay dổi kiểu dữ liệu của
biến.
• Kiểu "Ngẫu hứng"
éôi khi PHP sẽ thực hiện chuyển đổi kiểu dữ liệu nào đó nếu giá trị đó là một
kiểu đặc biệt. Đó được xem là kiểu ngẫu hứng.
Ví dụ, thêm toán tử cộng vào giữa 2 số. Giá trị kiểu chuỗi sẽ được chuyển đổi
thành double hay integer trước khi toán tử được thực thi, vì vậy mà kết quả sẽ
cho ra là một giá trị integer:
echo 100 + "10 inches";
Biểu thức này cộng 100 và 10, và kết quả là 110.
Điều tương tự xảy ra khi một toán tử kiểu chuỗi được sử dụng với dữ liệu số.
Nếu bên thực hiện chuỗi toán tử với kiểu số, giá trị số sẽ được chuyển tới chuỗi
đầu tiên.
Kết quả của một thao tác chuỗi sẽ luôn là kiểu dữ liệu chuỗi, mặc dự ta trông
thấy nó là một số nào đó. Ví dụ sau đây sẽ cho kết quả là 69, nhưng gettype
cho thấy rằng nội dung biến $number là một giá trị chuỗi:
$number = 6 . 9;
echo $number;
echo gettype(6 . 9);
Chúng ta sẽ tìm hiểu sâu hơn về cách dựng giữa chuỗi và số trong Bài học 5,
"Làm việc với Số," và 6, "Làm việc với Chuỗi."
• Biến của Biến
éầy là cách để chúng ta cất giữ giá trị của một biến tới biến khác bằng tên
của biến đó. Nếu bên cảm thấy khó hiểu, có thể xem qua thử Ví dụ sau:
$my_age = 17;
$varname = "my_age";
echo "Giá trị của biến $varname là ${$varname}";
Kết quả xuất ra sẽ là

20
Giá trị của biến my_age là 17
Vì chuỗi được chứa trong dấu nháy kép, nên tên của biến được PHP hiểu
rằng đó là lấy giá trị của biến trong chuỗi, giá trị đó là thành phần của
chuỗi. Cấu trúc ${$varname} chỉ ra rằng giá trị của biến có tên là $varname
trở thành một phần của chuỗi và nó được gọi là biến của biến.
Dấu ngoặc mốc quanh $varname được sử dụng để chỉ ra rằng nó phải được
lấy giá trị đầu tiên; nó yêu cầu phải dựng dấu nháy kép nhưng bên có thể
dựng cách khác. Ví dụ sau đây sẽ cho thấy rừ điều đó, sử dụng toán tử xâu
chuỗi:
echo 'Giá trị của biến ' . $varname . ' là ' . $$varname;
3. Cấu trúc Điều khiển
• Câu Lệnh Điều Khiển
Một câu lệnh điều khiển trong PHP bắt đầu với từ khóa if, đi theo đó là các
điều kiện trong dấu ngoặc đơn. Ví dụ sau sẽ kiểm tra xem có đúng hay không
giá trị của biến $number là nhỏ hơn 10, và khi đó với hiển thị bằng câu lệnh
echo, nó chỉ được hiển thị khi đúng với điều kiện đó:
$number = 5;
if ($number < 10) {
echo "$number là nhỏ hơn Mười";
}
Điều kiện $number < 10 là thỏa mãn nếu giá trị bên trái của kí tự < là nhỏ
hơn giá trị bên phải. Nếu điều kiện trả về giá trị đúng, khi đó mã lệnh trong
dấu ngoặc mốc mới được thực thi; mặc khác, script sẽ chuyển tới câu lệnh
tiếp theo sau dấu ngoặc mốc đóng.
Boolean Values Mỗi biểu thức điều kiện đều trả về giá trị Boolean value, và
một câu lệnh khai báo if thực hiện về giá trị TRUE hay FALSE để quyết định
khối mã lệnh tiếp theo có nên được thực hiện hay không. Mỗi giá trị zero
trong PHP là biểu thị giá trị FALSE, còn số không phải là zero thì trả về giá
trị TRUE.

Trở lại Ví dụ, Ví dụ sẽ thực thi giá trị là TRUE vì 5 nhỏ hơn 10, vì vậy câu
lệnh trong dấu ngoặc mốc sẽ được thực thi, và tương ứng sẽ có kết quả hiển
thị ra trên trình duyệt. Bây giờ, nếu thay đổi giá trị của biến $number thành
10 hoặc lớn hơn trong script, đều kiện sẽ có giá trị sai, và sẽ không có kết quả
được hiển thị.
Dấu ngoặc mốc trong PHP sử dụng để nhóm các câu lệnh lại. Trong một câu
lệnh điều kiện, các câu lệnh nằm trong dấu ngoặc mốc sẽ được thực thi khi
kết quả trả về đúng với điều kiện đó định.
Dấu ngoặc và ngoặc mốc Bên sẽ gặp 3 kiểu dấu ngoặc khi biết PHP scripts.
Thường sử dụng cho các kiểu dấu ngoặc là dấu ngoặc đơn (()), ngoặc mốc
({}), và ngoặc vuông ([]).
Dấu ngoặc mốc không yêu cầu sau một câu lệnh if. Nếu chúng bị bỏ xót, biểu
thức sẽ được thực hiện nếu trả về giá trị đúng. Bất kỳ câu lệnh nào sau đó đều
được thực hiện mà không chú ý đến trạng thái của câu lệnh điều kiện.
21
• Toán Tử Điều Kiện
PHP cho phép bên thực hiện một số so sánh khác nhau, để kiểm tra sự cần
bằng hoặc cần xứng giữa 2 giá trị. Bên có thể sử dụng các Toán tử Điều kiện
trong PHP, nó được liệt kê trong Bảng 3.1.
Bảng 3.1. Toán tử Điều kiện trong PHP Toán tử
Toán tử Tên Chú thích
! a
NOT đúng nếu a không đúng (không bằng a)
a && b
AND đúng nếu cả a và b là đúng
a || b
OR đúng nếu hoặc a hoặc b là đúng
a and b
AND đúng nếu cả a và b là đúng
a xor b

XOR đúng nếu a hoặc b là đúng, nhưng không phải cả hai
a or b
OR đúng nếu hoặc a hoặc b là đúng
Chú thích
==
Có bằng với
===
Có giống với (có bằng nhau và có giống kiểu dữ liệu)
!=
Không bằng với
!==
Không giống với
<
Nhỏ hơn
<=
Nhỏ hơn hoặc bằng với
>
Lớn hơn
>=
Lớn hơn hoặc bằng với
= hay ==? hãy cẩn thận khi so sánh sự bằng nhau bằng cách sử dụng 2 dấu
bằng (==). Một dấu = cũng là một toán tử gán (chỉ định), trừ khi giá trị gán
là zero, điều kiện sẽ luôn trả về giá trị đúng và nhớ rằng TRUE là giá trị
nào đó không phải zero. Luôn sử dụng == so sánh hai giá trị để tránh bị lỗi
chương trình.
• Toán Tử Logical
22
Bên có thể nối nhiều biểu thức để kiểm tra hai hoặc nhiều tiêu chuẩn trong
một dòng câu lệnh điều kiện. Ví dụ, câu lệnh bên dưới kiểm tra xem giá trị
cũa biến $number có nằm giữa 5 và 10 hay không:

$number = 8;
if ($number >= 5 and $number <= 10) {
echo "$number is between five and ten";
}
Từ khóa and là một toán tử logical, mà nó biểu thị rằng điều kiện sẽ đúng
chỉ khi biểu thức kia cũng có giá trị đúng. Đó là, $number phải vừa lớn hơn
hoặc bằng 5 và cũng phải nhỏ hơn hoặc bằng 10.
Bảng 3.2 liệt kê các toán tử logical mà bên có thể sử dụng trong PHP.
Toán tử Tên Chú thích
! a
NOT đúng nếu a không đúng (không bằng a)
a && b
AND đúng nếu cả a và b là đúng
a || b
OR đúng nếu hoặc a hoặc b là đúng
a and b
AND đúng nếu cả a và b là đúng
a xor b
XOR đúng nếu a hoặc b là đúng, nhưng không phải cả hai
a or b
OR đúng nếu hoặc a hoặc b là đúng
Bảng 3.2. Toán Tử Logical trong PHP Toán tử
Chú thích
! a
NOT
đúng nếu a không đúng (không bằng a)
a && b
AND
đúng nếu cả a và b là đúng
a || b

OR
đúng nếu hoặc a hoặc b là đúng
a and b
AND
đúng nếu cả a và b là đúng
a xor b
XOR
đúng nếu a hoặc b là đúng, nhưng không phải cả hai
a or b
OR
23
đúng nếu hoặc a hoặc b là đúng
Có hai cách để thực hiện toàn tử logical AND và OR trong PHP. Sự khác
nhau giữa and và && (và giữa or và ||) là do thứ tự thực hiện của biểu thức.
Bảng 3.2 liệt kê những thao tác được ưu tiên trước. Với điều kiện bên dưới,
mà xuất hiện giống nhau, nhưng lại có sự khác nhau:
a or b and c
a || b and c
Trong điều kiện trước, từ khóa and được ưu tiên trước. Toàn bộ điều kiện là
đúng nếu a là đúng hoặc nếu cả b và c là đúng.
Trong điều kiện sau, toán tử || được ưu tiên, vì vậy c phải đúng, và hoặc a
hoặc b, để thỏa mãn điều kiện.
Kí tự Toán tử Ghi nhớ rằng toán tử logical AND và OR là hai kí tự && và
||, theo thứ tự định sẵn. Những kí tự đó, khi sử dụng một cách khác thường
thì có ý nghĩa khác nhau, bên sẽ thấy điều đó trong Bài học 5, "Làm việc
với Số."
• Điều kiện nhiều nhánh
Bằng cách sử dụng mệnh đề else với câu lệnh if, bên có thể chỉ rừ một hành
động luân phiên để nắm bắt nếu đều kiện không thể tìm đúng giá trị đúng
để thực hiện. Ví dụ bên dưới kiểm tra giá trị của $number và hiện thông

báo nói rằng nó nhỏ hoặc lớn hơn 10:
$number = 16;
if ($number < 10) {
echo "$number is less than ten";
}
else {
echo "$number is more than ten";
}
Mệnh đề else đưa ra nhưng cơ chế cho câu lệnh điều kiện khi điều kiện trả
về giá trị sai. Để thêm nhiều nhánh hơn vào câu lệnh điều kiện, từ khóa
elseif có thể sử dụng để thêm vào một điều kiện nữa mà nó sẽ kiểm tra nếu
điều kiện ở trước trả về giá trị sai.
Ví dụ sau đây sử dụng hàm date để tìm giờ hiện tại trong ngày date("H")
cho một số giữa 0 và 23 mà nó mô tả trên đồng hồ và hiển thị câu chào
thích hợp:
$hour = date("H");
if ($hour < 12) {
echo "Good morning";
}
elseif ($hour < 17) {
echo "Good afternoon";
}
else {
echo "Good evening";
24
}
Mã sẽ hiển thị Good morning nếu giờ máy chủ ở giữa mười hai giờ đêm và
11:59, Good afternoon từ buổi trưa đến 4:59 p.m., và Good evening từ 5
p.m. trở đi.
Ghi chú rằng điều kiện elseif chỉ kiểm tra khi $hour nhỏ hơn 17 (5 p.m.).

Nó không cần kiểm tra giá trị giữa 12 và 17 bởi vì lúc đầu điều kiện if đảm
bảo rằng PHP sẽ không lấy xa hơn elseif nếu $hour nhỏ hơn 12.
Mã trong mệnh đề else sẽ thực thi nếu tất cả điều kiện đề không đúng. Cho
giá trị của $hour lúc này là 17 hoặc cao hơn, thì cả điều kiện if hay elseif sẽ
không trả về giá trị đúng.
elseif Versus else if Trong PHP bên cũng có thể viết elseif thành hai từ:
else if. Chương trình biên dịch PHP sẽ nhận ra khác đi chút ít, nhưng cuối
cùng thì kết quả vẫn giống nhau
• Câu lệnh switch
Một câu lệnh if có thể chứa nhiều mệnh đề elseif nếu bên cần, và việc bao
gồm quá nhiều sẽ làm cho mã lệnh trở nên cồng kềnh, và một sự thay thế
đó có sẵn. switch là một câu lệnh điều kiện mà khuông mẫu của nó gên
hơn.
Ví dụ sau đây là Ví dụ về cách dựng cầu lệnh switch để kiểm tra $name
xem nó thuộc trường hợp nào:
switch ($name) {
case "Damon":
case "Shelley":
echo "Welcome, $name, you are my friend";
break;
case "Adolf":
case "Saddam":
echo "You are no friend of mine, $name";
break;
default:
echo "I do not know who you are, $name";
}
Mỗi câu lệnh case định nghĩa một giá trị cho khối lệnh tiếp theo được thực
thi. Nếu bên gán tên của bên tới $name và chạy script, bên sẽ được chào hỏi
như một người bên nếu tên của bên là Damon hay Shelley, và ngược lại nếu

bên có thể là Adolf hoặc Saddam. Nếu bên có tên khác thì sẽ hiển thị không
biết bên là ai.
Ở đây có thể có một số câu lệnh case có trước PHP code mà nó liên quan.
Nếu giá trị được kiểm tra bởi câu lệnh switch (trong trường hợp này là
$name) phự hợp với giá trị đó, mã PHP ở phía sau sẽ được thực thi khi đến
câu lệnh break thì dừng lại.
25

×