Hiểu Sâu Về Nhân PHP (Phần 12): Hàm - Cách Định Nghĩa, Truyền Tham Số và Trả Về Giá Trị
1. Quá trình định nghĩa hàm
Hàm người dùng được bắt đầu bằng từ khóa function. Ví dụ:
function bar($param) {
echo $param;
}
a. Phân tích từ vựng
Trong file Zend/zend_language_scanner.l, dòng mã sau xác định từ khóa function:
<ST_IN_SCRIPTING>"function" {
return T_FUNCTION;
}
Ký hiệu T_FUNCTION được tạo ra khi gặp từ khóa này, bắt ...
Đăng vào ngày 5 tháng 8 lúc 07:27
Khắc phục Sự cố Mã hóa Ký tự trong PHP với polyfill-iconv
polyfill-iconv là một thư viện PHP cung cấp triển khai thuần PHP cho các hàm iconv gốc của PHP. Khi tiện ích mở rộng iconv không khả dụng trên hệ thống, công cụ này hoạt động như một giải pháp thay thế liền mạch, cho phép các nhà phát triển xử lý nhiều yêu cầu chuyển đổi mã hóa ký tự. Nó giúp giải quyết các vấn đề tương thích mã hóa trong các d ...
Đăng vào ngày 4 tháng 8 lúc 21:56
Hướng dẫn cài đặt MantisBT với Apache Tomcat
Bài viết này hướng dẫn chi tiết các bước cài đặt MantisBT, một công cụ quản lý lỗi mã nguồn mở, trên môi trường Apache Tomcat.
Môi trường cài đặt
Hệ điều hành: Windows 8.1 Update 1 64-bit
Máy chủ web: Apache Tomcat 9.0.0 64-bit
Ngôn ngữ kịch bản: PHP 7.1.7 (nts-Win32-VC14-x64)
Cơ sở dữ liệu: PostgreSQL 9.5.3-1
Ứng dụng: Ma ...
Đăng vào ngày 2 tháng 8 lúc 17:40
Hướng dẫn chuyên sâu về cơ chế ChromiumResult và ImageManipulations trong Browsershot
Tổng quan về Browsershot
Browsershot là một thư viện PHP nổi tiếng giúp chuyển đổi nội dung HTML hoặc các trang web trực tuyến thành hình ảnh và PDF. Thư viện này hoạt động dựa trên Puppeteer để điều khiển trình duyệt Chromium ở chế độ không đầu (headless). Để khai thác tối đa sức mạnh của công cụ này, các nhà phát triển cần nắm vững hai thành ...
Đăng vào ngày 30 tháng 7 lúc 19:51
PHP và Composer: Xây dựng công cụ chuyển đổi cú pháp
Địa chỉ gốc: https://www.mengze2.cn/post/5/
Gần đây tôi đã chuyển đổi một số bài viết trên blog từ HTML sang Markdown, vì trước đây khi chuyển sang WordPress là HTML, nhưng các bài viết này không thể được phân tích cú pháp trong Typecho, vì vậy tôi đã quyết định phát triển một công cụ Markdown2HTML.
Dưới đây là ghi chú phát triển của tôi, có ...
Đăng vào ngày 29 tháng 7 lúc 16:27
CVE-2017-5223: Lỗ hổng Tiết lộ Tệp cục bộ trong PHPMailer phiên bản dưới 5.2.21
Giới thiệu về Lỗ hổng CVE-2017-5223
Bài viết này trình bày chi tiết về lỗ hổng tiết lộ tệp cục bộ (Local File Disclosure) được định danh là CVE-2017-5223, ảnh hưởng đến các phiên bản thư viện PHPMailer trước 5.2.21. Lỗ hổng này cho phép kẻ tấn công đọc các tệp tùy ý trên máy chủ nơi ứng dụng PHPMailer đang hoạt động, bằng cách lừa thư viện nhún ...
Đăng vào ngày 27 tháng 7 lúc 06:22
Xử lý vấn đề CORS trong webman
Để xử lý vấn đề CORS (Cross-Origin Resource Sharing) trong webman, bạn cần thực hiện một số bước tùy thuộc vào việc có tắt tính năng tự động định tuyến hay không.
Tắt tự động định tuyến
Nếu bạn muốn tắt tự động định tuyến, hãy sử dụng lệnh sau:
Route::disableDefaultRoute();
Cấu hình Middleware cho CORS
Nếu không tắt tự động định tuyến, bạn chỉ ...
Đăng vào ngày 25 tháng 7 lúc 04:57
Kỹ thuật khai thác lỗ hổng Deserialization và SSTI trong môi trường CTF
Phân tích chuỗi POP Chain trong PHP Deserialization
Trong thử thách này, chúng ta đối mặt với một kịch bản Deserialization phức tạp yêu cầu xây dựng một chuỗi POP (Property Oriented Programming) chain để thực thi hành động ghi tệp tin. Cấu trúc mã nguồn cung cấp các class với các magic method như __destruct, __set, và __call.
<?php
class Ma ...
Đăng vào ngày 23 tháng 7 lúc 21:46
Công cụ tái cấu trúc tự động Rector: Cách mạng hóa nâng cấp PHP
Bạn có đang mất hàng giờ để sửa đổi hàng trăm tệp PHP nhằm tương thích với phiên bản mới? Bạn có gặp khó khăn với sự không nhất quán về phong cách mã trong nhóm của mình không? Rector sẽ biến những điều này thành dĩ vãng. Với một vài cấu hình đơn giản, nó có thể hỗ trợ bạn nâng cấp phiên bản PHP, cải thiện chất lượng mã và thực hiện tái cấu trú ...
Đăng vào ngày 19 tháng 7 lúc 19:41
Đẩy mạnh trải nghiệm người dùng với hệ thống tải lên nhiều ảnh không làm mới trang bằng PHP, jQuery và AJAX
Trong các ứng dụng web hiện đại, việc tải lên nhiều tệp hình ảnh một cách mượt mà — mà không gây gián đoạn giao diện — đã trở thành tiêu chuẩn thiết yếu. Giải pháp dưới đây xây dựng một hệ thống tải lên đa ảnh hoàn chỉnh dựa trên ba thành phần cốt lõi: HTML5 <input type="file" multiple>, thư viện jQuery để xử lý sự kiện và gửi yêu cầu, cù ...
Đăng vào ngày 16 tháng 7 lúc 12:20