cuốn sách gpt4 ai đã làm

php - Làm cách nào để phân tích khối nhận xét kiểu phpDoc bằng PHP?

In lại Tác giả: Hồ Xil Thời gian cập nhật: 2023-10-31 22:49:20 25 4
mua khóa gpt4 Nike

Hãy xem xét đoạn mã sau, mà tôi đang cố gắng phân tích cú pháp nhận xét kiểu phpDoc đầu tiên trong một tệp (không sử dụng bất kỳ thư viện nào khác) (nội dung tệp được đưa vào biến $data cho mục đích thử nghiệm):

dữ liệu $ = "
/**
* @file Rất nhiều thông tin về file này
* Thậm chí có thể tiếp tục ở dòng tiếp theo
* @tác giả me@example.com
* @version 2010-05-01
* @todo làm việc...
*/

/**
* Bình luận bij functie bar()
* @param Mảng gặp dingen
*/
thanh chức năng($baz) {
echo $baz;
}
";

$data = Trim(preg_replace('/\r?\n *\* */', ' ', $data));
preg_match_all('/@([az]+)\s+(.*?)\s*(?=$|@[az]+\s)/s', $data, $matches);
$info = array_combine($matches[1], $matches[2]);
print_r($thông tin)

Điều này gần như hoạt động, ngoại trừ sau @todotất cả(bao gồmthanh() khối nhận xét và mã) được xem xétGiá trị của @ việc cần làm:

Mảng (
[file] => Rất nhiều thông tin về tập tin này thậm chí có thể tiếp tục ở dòng tiếp theo
[tác giả] => me@example.com
[phiên bản] => 2010-05-01
[việc cần làm] => làm việc gì đó... /

/** Comment bij functie bar()
[param] => Mảng gặp dingen /
thanh chức năng() {
tiếng vọng ;
}
)

Mã của tôi cần thay đổi như thế nào để nó chỉ phân tích khối nhận xét đầu tiên (nói cách khác: quá trình phân tích cú pháp sẽ dừng sau khi gặp "*/" đầu tiên?

câu trả lời hay nhất

Viết trình phân tích cú pháp bằng PCRE sẽ khiến bạn gặp rắc rối. Tôi khuyên bạn nên dựa vào mã thông báohoặc sự phản xạĐầu tiên. Sau đó, sẽ an toàn hơn nếu thực sự triển khai trình phân tích cú pháp cho khối tài liệu, khối này có thể xử lý phpdoc Tất cả các trường hợp được hỗ trợ. định dạng (tất cả các thư viện cũng đã kết thúc).

Giới thiệu về php - Làm cách nào để phân tích khối nhận xét kiểu phpDoc bằng PHP? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/2749301/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress