Categories
PHP

Chỉ số TIOBE – Tín hiệu khả quan cho sự phát triển PHP

php-trend

Hôm nay đọc được một bài viết thông báo là chỉ số TIOBE đã cho thấy trong tháng 9/2009, PHP đã vươn lên vị trí thứ 3(sau Java và C) trong bảng xếp hạng.

Chỉ số TIOBE là một chỉ số đánh giá do công ty TIOBE dựa trên số lần click sau khi tìm kiếm thông qua các công cụ tìm kiếm. Các công cụ được tính toán để ra được chỉ số này gồm: Google, Google Blogs, MSN, Yahoo!, Wikipedia và Youtube. Trong đó có sử dụng Alexa để đánh giá công cụ tìm kiếm nào phổ biến nhất để thêm vào kết quả tính toán. Cũng khá là khó hiểu, muốn tìm hiểu kỹ về chỉ số này thì vào đây.

Categories
PHP Web Design

Smarty : Một công cụ thiết yếu cho người làm web

smarty-logo-orange

Hôm nay mình giới thiệu tới các bạn một bộ thư viện được coi là một trong những thư viện tốt nhất hiện nay khi sử dụng PHP để làm web, đó là Smarty.

Mình đã sử dụng cái này lâu rồi, sáng nay rảnh rỗi đọc cái document mới của nó, thấy bổ sung nhiều cái thú vị quá, thấy phấn khởi nên viết bài này giới thiệu Smarty đến mọi người.

Categories
PHP

Người thứ 6 có chứng chỉ ZCE – PHP 5 ở Việt Nam

Thế là bao nhiêu mong đợi, hồi hộp, lo lắng suốt 3 tuần qua đã kết thúc bằng một kết quả tốt đẹp. Mình đã có chứng chỉ ZCE về PHP5 và trở thành người thứ 6 ở Việt Nam có chứng chỉ này.

Thi xong cách đây 1 tiếng, tâm trạng vẫn còn hưng phấn nên viết blog ngay kẻo quên. Hôm qua ngủ sớm, hôm nay 6h sáng đã dậy chuẩn bị tinh thần rồi. tới 8h15 thì lên chiến mã của mình tới cung điện saigonctt, tại đó gặp mí nàng công chúa rất là dễ thương và hiếu khách. Sau một số thủ tục cần thiết trước khi ra chiến trường (ký tên, đọc luật lệ của bá tước Pearson VUE), mình tiến hành đi cùng 1 tiểu thư xinh đẹp vào phòng thi, tất nhiên tiểu thư đó nói vài lời giả dối rồi bỏ mình lại chiến trường.

Sau 70 phút quyết chiến, và 20 phút xem xét lại kết quả chiến đấu, mình đã cảm thấy cồn cào trong bụng, và con ma đói bắt đầu hoành hành. Mình quyết định nhấn kết thúc để giải quyết trận chiến đã chuẩn bị từ lâu này. Theo binh pháp Tôn tử thì không nên kéo dài trận chiến, chỉ hao quân lương và làm khổ bá tánh.

Categories
Miscellaneous

Tản mạn chuyện cafe cuối tuần

cafe vietnam

Stress quá đi, trong đầu lúc nào cũng lãng vãng PHP. Ăn PHP, ngủ PHP, nói PHP..nên đúi. Mà cũng phải cố gắng thôi, hy vọng cái ngày vinh quang đó sẽ đến sớm để bớt áp lực.

Tự nhiên thèm 1 ly càfe gì đâu. Cứ mãi ngồi luyện võ công, mà không biết đã qua ngày thứ 7, thế là đã cuối tuần rồi. Nhớ cách đây vài tháng, cứ mỗi sáng thứ 7 là cùng với mí chiến hữu ra cafe sáng sớm ngồi tán dốc để thư giãn, giờ mỗi đứa một nơi, chán gì đâu. Nói về cafe, tui thấy tùm lum thứ, nhưng thiết nghĩ dù uống các loại cafe thượng hạng “ngoại quốc” hay cafe quê nhà thì quan trọng là mình uống với ai thôi, chứ uống 1 mình thì cũng chán lắm. Cũng cuối tuần rồi, bà con cố gắng thư giãn đi hen. Hôm nay mình đi dạy học, cũng có thể coi là thư giãn, vì được làm cái mình thích..haha

Categories
PHP

Tìm hiểu về PHP Language Construct

php-language-construct

Nếu các bạn lập trình trên PHP, thì chắc đã làm việc rất nhiều với khái niệm hàm (Function). Tuy nhiên, không biết các bạn có từng nghe về Language Construct trong PHP chưa. Có lẽ các bạn đã sử dụng hoài mà không biết thôi ^^. Nói 1 cách đơn giản, Language Construct là một dạng hàm đặc biệt, các hàm này được khai báo kèm với core của PHP, tức là không thông qua một thư viện hay extension nào cả. Số lượng Language Construct của PHP không nhiều.

Vậy lợi ích của Language Construct là gì? Sau đây mình liệt kê 1 số ích lợi khi sử dụng Language Construct:
– Tốc độ thực hiện rất nhanh
– Được tối ưu cùng với trình phiên dịch của PHP, nên yên tâm về hiệu suất.
– Không có overhead khi sử dụng các Language Construct vì chúng không cần gọi thêm 1 thư viện hay 1 hàm nào thêm để thực thi cả.

Categories
Miscellaneous PHP

Mình đã trở thành giáo viên dạy PHP

athena-php-trainer

Sau gần 5 năm làm việc trong lĩnh vực thiết kế & lập trình web, tự nhiên mình có niềm hứng thú là thích đi dạy học, chia sẽ những kinh nghiệm mình học được và cũng như những kỹ thuật mình biết đến cho mọi người, nhằm hi vọng vào 1 thế hệ website hoàn hảo sau này. Với mục tiêu đó, mình đã chủ động xin được đi giảng dạy PHP.

Ngày hôm qua đã chính thức kí hợp đồng giảng dạy PHP tại trung tâm ATHENA. ATHENA là một trong những trung tâm hàng đầu trong lĩnh vực đào tạo nguồn nhân lực CNTT chất lượng cao và mình cũng rất hãnh diện được giảng dạy tại đây.

Chuyên môn mình phụ trách giảng dạy là môn thiết kế website với PHP & MySQL cơ bản và nâng cao. Hy vọng sẽ học hỏi cũng như chia sẽ được nhiều điều hay tới cho các bạn.

Cheer!

Categories
PHP

Website tham khảo PHP

php-revolution

Như các bạn cũng biết, đối với một người lập trình viên, hầu hết người nào cũng có một số website tham khảo thường xuyên trong lĩnh vực làm việc của mình để nắm bắt, tìm hiểu, tra cứu để giúp cho công việc của mình nhanh chóng và cập nhật hơn…và mình cũng không ngoại lệ.

Hôm nay mình chia sẽ với các bạn 1 số website về PHP mà mình thường hay ghé thăm để cập nhật, tra cứu thông tin về PHP.

Categories
PHP Web Programming

PHP :: readfile() và Output Buffering

Hôm nay được một đồng nghiệp report một cái bug thật kỳ quặc…hem biết bà con nào đã bị dính chưa. Số là cái source PHP của mình có một trang cho phép download 1 file bằng cách sử dụng hàm readfile($filename) để tải file về…Cái source lúc đưa ra chạy rất OK và không có trục trặc gì cả..

Cho đến hôm nay, đồng nghiệp này nói là không download được file và download bị lỗi, mình cũng thật ngạc nhiên, chạy vô source thì chẳng có gì thay đổi. Hơi ngạc nhiên, mình debug 1 xíu thì thấy vấn đề ở chỗ hàm readfile(). Sau một hồi điều tra trên http://php.net/readfile, thì thấy có một ghi chú là cái hàm này có trục trặc khi sử dụng kèm với Output Buffering.

Tới đây mình mới chợt nhớ ra là cách đây nửa tháng mình có triển khai nén sử dụng Output Buffering để tiết kiệm Bandwidth nên thành ra bây giờ nó bị bug này.

Cách giải quyết: cũng khá đơn giản, chỉ cần gọi hàm “ob_end_clean()” trước hàm “readfile()” là mọi việc OK.

Mình note lại đây, hi vọng có bạn nào gặp vấn đề tương tự sẽ biết cách giải quyết. Chúc vui.

Categories
Javascript

Vấn đề hàm String.replace() của javascript chỉ replace một lần mà thôi.

Tình cờ phát hiện hàm String.replace() của javascript chỉ replace lần xuất hiện đầu tiên mà thôi. Ví dụ:

var myString = 'my blog of my friend here';

alert(myString.replace('my', 'his')); //output : "his blog of my friend here" . Not "his blog of his friend here".

xem ví dụ cũng đã hiểu, phrase “my” chỉ bị thay thế một lần mà thôi, hix hix..điều này đôi khi bạnkhông muốn vì đã replace thì replace cho hết luôn chứ (ví dụ như hàm str_replace() của PHP sẽ thay thế toàn bộ)

– Để giải quyết vấn đề này trước mắt mình thấy có 2 cách, cách hay sử dụng nhất là sử dụng regex pattern thay cho search string, mình sửa lại như sau thì sẽ có kết quả như ý muốn:

alert(myString.replace(/my/g, 'his')); //output : "his blog of his friend here".

Trong nhiều trường hợp mình không dùng cách sử dụng pattern được, thì có một giải pháp khác, đó là add thêm hàm replaceAll vào String object để sau này dùng. Cái hàm này chôm của một kiếm khách nào đó trên giang hồ. Cách này nên sử dụng cẩn thận, vì có thể sẽ bị infinitive loop nếu dùng không cẩn thận.

Prototype của nó như sau:

// Replaces all instances of the given substring.
String.prototype.replaceAll = function(
strTarget, // The substring you want to replace
strSubString // The string you want to replace in.
){
var strText = this;
var intIndexOfMatch = strText.indexOf( strTarget );

// Keep looping while an instance of the target string
// still exists in the string.
while (intIndexOfMatch != -1){
// Relace out the current instance.
strText = strText.replace( strTarget, strSubString )

// Get the index of any next matching substring.
intIndexOfMatch = strText.indexOf( strTarget );
}

// Return the updated string with ALL the target strings
// replaced out with the new substring.
return( strText );
}

Sau khi khai báo prototype này, thì bạn chỉ cần sử dụng như sau

alert(myString.replaceAll('my', 'his')); //output : "his blog of his friend here".

———-

Hy vọng chút ít kinh nghiệm sẽ giúp các bạn trong tương lai.