PHP
Duyệt các bài viết được gắn thẻ PHP
58 bài viết

10 PHP Instagram Scripts & Widgets tốt nhất
Dù bạn có dùng Instagram cho công việc hay giải trí thì nó vẫn là một công cụ tuyệt vời để kết nối bạn bè, khách hàng và cả người hâm mộ. Tuy vậy, quá trình tạo ra một tài khoảng với hàng trăm kết nối trở lên có thể sẽ rất tốn thời gian. Vì vậy mà bất kì tool nào có thể rút ngắn thời gian cũng đều trở nên vô cùng giá trị trong mắt người dùng. Hôm nay, tôi sẽ liệt kê ra 10 PHP Instagram scripts và widgets tốt nhất trên CodeCanyon , với những tính năng như tự động hóa function, giúp download hình ảnh và nhiều task khác nữa. Nextpost Instagram Automation tools sẽ là những trợ thủ vô cùng đắc lực giúp tiết kiệm rất nhiều thời gian cho người dùng. Trong đó, phải kể đến Nextpost Instagram . Trước hết, nó cho phép bạn quản lí một hoặc nhiều tài khoản khác nhau trong cùng một trang. Hơn nữa, Nextpost Instagram còn có thể xếp lịch đăng bài vô cùng tiện lợi. Phần mềm rất dễ cài đặt với thiết kế tập trung cho người dùng mobile. VTGram VTGram cũng là một tool cực kì tuyệt vời khác với nhiều tính năng hơn Nextpost. Với VTGram, người dùng có thể tự động đăng và chia sẻ photos, videos, status cũng như là câu truyện của mình lên tài khoản Instagram nhờ vào tính năng xếp lịch. Bạn cũng có thể dùng hashtags, vị trí và cả tên người dùng để tìm những bài mà bạn thích cũng như auto-like hoặc auto bình luận chỉ với một nút click. Đồng thời, VTGram cũng cho phép bạn tự động follow các người dùng dựa trên hashtag mà họ dùng, vị trí họ ở...

PHP & MySQL: Novice to Ninja, 5th Edition
Dưới đây là tài liệu về PHP & MySQL mà Station D đã tham khảo được trên diễn đàn. Người mới làm quen với Ninja là một hướng dẫn thực hành thực tế để tìm hiểu tất cả các công cụ, nguyên tắc và kỹ thuật cần thiết để xây dựng một trang web hướng cơ sở dữ liệu đầy đủ chức năng bằng cách sử dụng PHP & MySQL Tải tại đây Tham khảo thêm việc làm php nhiều ngành nghề tại đây

PHP 8: match hay là switch?
Bài viết được sự cho phép của tác giả Nguyễn Trần Chung PHP 8 sẽ giới thiệu một biểu thức mới “ match “. Một tính năng mạnh mẽ và sẽ là sự lựa chọn tốt hơn so với “ switch “. Vậy chính xác sự khác biệt là gì? 10 PHP Instagram Scripts & Widgets tốt nhất 10 Frameworks tốt nhất hiện nay cho PHP Hãy bắt đầu bằng cách so sánh cả hai. Đây là một ví dụ về “ switch ” cổ điển: switch ( $statusCode ) { case 200 : case 300 : $message = null ; break ; case 400 : $message = 'not found' ; break ; case 500 : $message = 'server error' ; break ; default : $message = 'unknown status code' ; break ; } Đoạn code ở dưới đây sẽ tương đương với ở trên khi dùng biểu thức “ match “: $message = match ( $statusCode ) { 200 , 300 = > null , 400 = > 'not found' , 500 = > 'server error' , default = > 'unknown status code' , } ; Trước hết, biểu thức khớp ngắn hơn đáng kể: nó không yêu cầu break statement nó có thể kết hợp các trường hợp giống nhau thành một bằng dấu phẩy nó trả về một giá trị, vì vậy bạn chỉ phải gán giá trị một lần Nhưng thậm chí còn nhiều hơn thế! Không ép kiểu match sẽ kiểm tra loại nghiêm ngặt thay vì kiểm tra lỏng lẻo. Giống như sử dụng === thay vì ==. Mọi người có thể sẽ không đồng ý liệu đó có phải là điều tốt hay không, nhưng đó là một chủ đề riêng chúng ta sẽ bàn sau. $statusCode = '200' ; $message = match...

Những câu hỏi thường gặp khi đi phỏng vấn lập trình php
Bài viết được sự cho phép của tác giả Võ Quang Huy Phỏng vấn lập trình php – Lang thang trên facebook thì đọc được bài viết của bạn “Anh Hùng Thời Loạn” Viết về những câu hỏi thường gặp khi phỏng vấn lập trình viên, thấy cũng khá hay nên mình lấy về chia sẽ cho những ai cần Câu hỏi về PHP thuần: (dành cho cấp độ cơ bản) 1- PHP có mấy cách khai báo ?. Những cách nào được xem là chính thống và không ảnh hưởng khi các phiên bản update sau này? – Có 3 cách là <? ? > và <?php ?> <% %>…cách 2 là chính thống 2- Hằng trong PHP khác gì so với biến ? Nếu 1 hằng được định nghĩa 2 lần, thì liệu có bị lỗi không ?. Cho ví dụ minh họa. Hằng có thể nội suy như biến hay không ? – Khác nhau : hằng không thay đổi trong suốt chương trình, biến thì có – Nếu định nghĩa hăng 2 lần thì sẽ có thông báo hằng đã tồn tại, chương trình vấn chạy với hằng được định nghĩa đầu tiên – Không hiểu nội suy là cm gì luôn 3- Có bao nhiêu biến môi trường ?. $_REQUEST có thể nhận được giá trị từ form hay không ? – Có 4 bến môi trường là : $_GET, $_POST, $_REQUEST,$_SERVER – $_REQUEST nhận được, dùng nó trong trường hợp không biết dữ liệu nên là post hay get Xem thêm các chương trình tuyển dụng PHP trên Station D 4- Phân biệt sự khác nhau giữa $_POST và $_GET – $_GET : gửi dl lên server thông qua URL, thông tin hiển thị lên url , kích thước url giới hạn – $_POST...

Code PHP làm sao cho sạch (Phần 1)
Giới thiệu Đây là những nguyên lý kỹ thuật phần mềm, được trích từ cuốn sách Clean Code của tác giả Robert C. Martin (thường gọi là Uncle Bob) rất thích hợp cho ngôn ngữ PHP. Tài liệu này không phải là sách hướng dẫn về phong cách viết code, mà là hướng dẫn cách làm thế nào để viết phần mềm dễ đọc, dễ sử dụng lại, và dễ cải tiến trong PHP. Bạn không cần phải tuân theo tất cả các nguyên tắc trong tài liệu này. Đây chỉ đơn giản là những hướng dẫn, nhưng dù sao nó cũng là đúc kết từ nhiều năm kinh nghiệm của tác giả. Repository này lấy cảm hứng từ clean-code-javascript Lưu ý: Dù nhiều lập trình viên còn sử dụng PHP 5, nhưng nhiều ví dụ trong đây chỉ chạy được trên PHP 7.1+. Biến Sử dụng tên biến có ý nghĩa và dễ hiểu Chưa tốt: $ymdstr = $moment->format('y-m-d'); Tốt: $currentDate = $moment->format('y-m-d'); Sử dụng cùng từ vựng cho cùng ột loại biến Chưa tốt: getUserInfo(); getUserData(); getUserRecord(); getUserProfile(); Tốt: getUser(); Đặt tên sao cho dễ tìm kiếm (phần 1) Thường thì chúng ta sẽ đọc code nhiều hơn viết code. Nên điều quan trọng là code chúng ta viết ra phải dễ đọc và dễ tìm kiếm. Nếu không đặt tên biến có ý nghĩa và làm chương trình dễ hiểu, chúng ta sẽ gây khó cho những lập trình viên khác. Do đó mỗi khi đặt tên biến, hàm thì hãy đặt có ý nghĩa. Chưa tốt: // Oh man, 448 là cái giề vậy? $result = $serializer->serialize($data, 448); Tốt: $json = $serializer->serialize($data, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); Đặt tên sao cho dễ tìm kiếm (phần 2) Chưa tốt: // Lại nữa, 4 nghĩa là cái giề...

PHP 8.0 có những tính năng gì mới?
Bài viết được sự cho phép của tác giả Lê Chí Dũng PHP 8.0 là một bản cập nhật lớn của ngôn ngữ PHP. Nó chứa nhiều tính năng và tối ưu hóa mới bao gồm JIT, named arguments, union types, attributes, constructor property promotion, match expression, nullsafe operator và các cải tiến trong kiểu hệ thống, xử lý lỗi và tính nhất quán. JIT (Just in Time) JIT được cải tiến hơn và trong PHP 8 giới thiệu hai công cụ biên dịch JIT. Và Tracing JIT, hứa hẹn nhất vì cho thấy hiệu suất tốt hơn khoảng 3 lần trên các điểm chuẩn tổng hợp và cải thiện 1,5–2 lần trên một số ứng dụng chạy dài cụ thể. Hiệu suất ứng dụng ngang bằng hoặc tốt hơn với PHP 7.4. Đối số được đặt tên ( Named arguments ) Chỉ xác định các thông số bắt buộc, bỏ qua các thông số tùy chọn. Các lập luận không phụ thuộc vào trật tự và tự ghi lại. /*** PHP 7 ***/ htmlspecialchars($string, ENT_COMPAT | ENT_HTML401, 'UTF-8', false); /*** PHP 8 ***/ htmlspecialchars($string, double_encode: false); Ứng tuyển ngay các vị trí PHP tuyển dụng mới nhất trên Station D Thuộc tính ( Attributes ) Thay vì chú thích PHPDoc, giờ đây bạn có thể sử dụng siêu dữ liệu có cấu trúc với cú pháp gốc của PHP. /*** PHP 7 ***/ class PostsController { /** * @Route("/api/posts/{id}", methods={"GET"}) */ public function get($id) { /* ... */ } } /*** PHP 8 ***/ class PostsController { #[Route("/api/posts/{id}", methods: ["GET"])] public function get($id) { /* ... */ } } Khuyến cáo thuộc tính hàm dựng ( Constructor property promotion ) Tiết kiệm viết mã hơn để xác định và khởi tạo thuộc tính. /*** PHP 7 ***/ class Point...

Lập trình PHP và những câu hỏi thường gặp khi phỏng vấn
Câu 1: PHP có mấy cách khai báo? Những cách nào được xem là chính thống và không ảnh hưởng khi các phiên bản update sau này? PHP có 4 cách khai báo, tuy nhiên chỉ có 2 cách được xem là hợp lệ và thống nhất trên toàn thế giới: <?php…?> → Là cách chính thống. <script language=”PHP”>…</script> → Cũng được xem là cách chính thống không ảnh hướng tới update của các phiên bản PHP sau này. <?…?> → (“Cần phải setting trên hệ thống mới sử dụng được” không nhất thiết phải nói.) <%…%> → (“Cần phải setting trên hệ thống mới sử dụng được” không nhất thiết phải nói.) Câu 2: Hằng trong PHP khác gì so với biến? Nếu 1 hằng được định nghĩa 2 lần, thì liệu có bị lỗi không? Hằng và biến trong PHP là khái niệm khác nhau: Đầu tiên khác nhau là cách khai báo: Biến thì chỉ cần dùng ký tự $ để gắn hoặc lấy giá trị. Hằng dùng hàm define() gắn giá trị và dùng constant() để lấy giá trị. Điểm khác biệt lớn nhất là hằng là không thể thay đổi trong suốt quá trình chạy chương trình, biến thì có. Nêu 1 hằng được định nghĩa 2 lần thì chương trình vẫn chạy được bình thường tuy nhiên hằng chỉ có giá trị của lần định nghĩa đầu tiên. Xem tin tuyển lập trình viên PHP đãi ngộ tốt trên Station D Câu 3: Phân biệt $_POST và $_GET trong php? Cả $_GET và $_POST đều được dùng để gửi dữ liệu lên server. $_GET: Gửi dữ liệu lên server thông qua URL, nên thông tin dữ liệu hiển thị lên url vì thế bảo mật kém, dữ liệu gửi lên bị giới hạn 1024...

Câu chuyện trước khi PHP có composer
Bài viết được sự cho phép của tác giả Phạm Bình Chào các bạn, Ngày nay khi làm việc với các PHP framework như laravel , hay với các dự án sử dụng nodejs, chúng ta thường tích hợp thư viện bên thứ 3 thông qua composer , npm hoặc yarn. Nhưng bạn có bao giờ từng hỏi “chuyện gì xảy ra trước khi thế giới này có composer, npm hay yarn” không? Nhiều bạn developer “đời mới” từ lúc học lập trình đã được làm quen với khải niệm “trình quản lý gói”, nhưng mình thì kém may mắn hơn vậy, cái thời mà mình học PHP thì composer còn chưa ra đời (composer ra đời năm 2012, còn mình thì bắt đầu học năm 2009 – 2010 gì đó). Với tư cách một “người cũ”, hôm nay mình sẽ kể cho bạn nghe chuyện gì xảy ra trước khi thế giới có trình quản lý gói composer nhé. 5 sai lầm thường thấy khi viết react component Composition là cái chi chi npm thì ra đời cùng lúc với nodejs, sau đó thì có yarn. Do vậy chỉ có composer là ra đời khá muộn so với PHP, nên trong bài viết này mình sẽ chỉ đề cập tới composer thôi nhé. Lưu ý: Bài viết này sẽ không đem đến cho bạn kiến thức về một công nghệ mới mẻ nào cả, thay vào đó chủ yếu là mình đi kể khổ. Giải thích một chút thì composer là trình quản lý các thư viện bên thứ ba của PHP, tương tự như npm của nodejs. I. DOWNLOAD BẰNG TAY EVERYTHING Vì chưa có công cụ quản lý gói, nên việc tích hợp thư viện bên thứ ba được thực hiện bằng cách: Bước 1: Lên trang...

Kỹ thuật phân trang với PHP và MySQL
Bài viết được sự cho phép của tác giả Mai Đông Giang Áp dụng kỹ thuật phân trang là một phần quan trọng với bất kỳ ngôn ngữ lập trình web nào. Phân trang với PHP và Mysql có nhiều cách làm. Thế nhưng, với các bạn mới tiếp xúc thì chắc chắn đôi lúc gặp khó khăn về cách xử lý. Trong bài này mình sẽ hướng dẫn các bạn một cách đơn giản nhất của kỹ thuật phân trang trong php kết hợp với mysql. Phân trang giúp giảm thời gian tải cho website, nâng cao hiệu suất. Từ đó, giúp website đạt thứ hạng cao hơn về tính thân thiện người dùng. Trong bài này, mình sẽ thao tác với table `students` có 40 dòng dữ liệu. Mỗi trang ta sẽ lấy ra và hiển thị 10 dòng dữ liệu. Để thực hiện phân trang trong PHP chúng ta cần xác định 2 giá trị quan trọng sau: – Số lượng bản ghi bạn mong muốn hiển thị trên 1 trang là bao nhiêu ($limit). Bài này, mình sử dụng `$limit = 10` – Chúng ta đang có tổng cộng bao nhiêu bản ghi trong bảng dữ liệu. Từ đó ta có thể tính toán xem bao nhiêu trang sẽ hiển thị. Cách sử dụng hàm isset trong PHP Lộ trình học MySQL từ A đến Z Câu lệnh SQL để lấy ra tổng số bản ghi trong bảng như sau: SELECT count(*) FROM `students` Ta sẽ lấy ra được 40 dòng. Tính số trang sẽ hiểu thị: $total = 40; $limit = 10; $pages = ceil($total / $limit); Ở đây, mình dùng hàm `ceil` để làm tròn lên. Vì có những trường hợp `40 < $total < 50` thì ta hiển thị là 5 page. Đúng...

Tìm hiểu về lập trình hướng đối tượng trong PHP
Vào đầu những năm 2000, phiên bản PHP 5.0 được team phát triển ra mắt với việc giới thiệu các tính năng lập trình hướng đối tượng và duy trì cấu trúc đó cho đến những phiên bản mới nhất hiện nay. Điều này có ý nghĩa rất lớn và cho thấy sự đúng đắn của nó khi mà PHP vẫn đang là một trong những ngôn ngữ phổ biến nhất hiện tại; đồng thời các framework PHP được ưa chuộng cũng đang sử dụng hướng đối tượng để triển khai source code của nó. Trong bài viết này chúng ta cùng nhau tìm hiểu về cách để thực hiện lập trình hướng đối tượng trong PHP để giúp bạn tự tin hơn trong khi làm việc với ngôn ngữ này nhé. Lập trình hướng đối tượng Trước tiên chúng ta cùng nhắc lại một chút về lập trình hướng đối tượng nhé. Object-Oriented Programming (OOP) là một kỹ thuật lập trình cho phép chúng ta tạo ra các đối tượng trong code trừu tượng hóa các đối tượng trong thực tế. Ví dụ như ở hình dưới đây ô tô, xe đạp hay tàu thủy đều là những đối tượng (object) phương tiện giao thông nên chúng ta có thể xếp nó vào chung 1 lớp (class) là Vehicle. Trong đó, xe đạp và ô tô lại có chung đặc điểm là có bánh xe, nên chúng ta xếp chúng vào 1 lớp là Wheeled Vehicle. Việc gom nhóm thành các lớp giúp chúng ta dễ dàng mô tả đặc điểm của từng đối tượng trong nhóm thông qua việc gán cho nó các thuộc tính ( properties ) và các phương thức ( methods ); tạo ra một cấu trúc phân cấp có khả năng kế thừa, tái...

PHPExcel – Import và Export xử lý Excel
Đôi lúc chúng ta sẽ cần phải truy – xuất dữ liệu bằng file Excel như: xuất dữ liệu thống kê ra cho người dùng, hoặc import nhiều dữ liệu từ file excel vào Database. Thư viện được sử dụng nhiều nhất hiện nay là PHPOffice/PHPExcel . Đọc và ghi file excel bằng PHP thuần Đọc file excel Các bạn tải file data mẫu excel này mà mình đã tạo sẵn, có nội dung hình dưới và đặt nó nằm cùng cấp với thư mục Classes : Tiếp theo, bạn sẽ tiến hành đọc file này bằng cách tạo thêm 1 file mới tên là docfile.php cùng cấp với thư mục Classes , và gõ theo nội dung bên dưới: <?php // Include thư viện PHPExcel_IOFactory vào include 'Classes/PHPExcel/IOFactory.php'; $inputFileName = 'product.xlsx'; // Tiến hành đọc file excel try { $inputFileType = PHPExcel_IOFactory::identify($inputFileName); $objReader = PHPExcel_IOFactory::createReader($inputFileType); $objPHPExcel = $objReader->load($inputFileName); } catch(Exception $e) { die('Lỗi không thể đọc file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage()); } // Lấy thông tin cơ bản của file excel // Lấy sheet hiện tại $sheet = $objPHPExcel->getSheet(0); // Lấy tổng số dòng của file, trong trường hợp này là 6 dòng $highestRow = $sheet->getHighestRow(); // Lấy tổng số cột của file, trong trường hợp này là 4 dòng $highestColumn = $sheet->getHighestColumn(); // Khai báo mảng $rowData chứa dữ liệu // Thực hiện việc lặp qua từng dòng của file, để lấy thông tin for ($row = 1; $row <= $highestRow; $row++){ // Lấy dữ liệu từng dòng và đưa vào mảng $rowData $rowData[] = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE,FALSE); } //In dữ liệu của mảng echo "<pre>"; print_r($rowData); echo "</pre>"; Tiếp theo bạn tiến hành thực thi file docfile.php này, sẽ thấy kết quả in ra màn hình là một mảng chứa tất...