2009-12-27 36 views

Trả lời

11

Tùy thuộc vào môi trường gọi điện thoại, bạn nên có một cái nhìn tại debug_backtrace, và $_SERVER['PHP_SELF']

debug_backtrace() sẽ cung cấp cho bạn một chồng dấu vết của bao gồm và chức năng gọi cho đến nay, và $_SERVER['PHP_SELF'] sẽ cho bạn biết kịch bản hiện đang thực hiện, đó là dễ dàng hơn và có thể làm việc chỉ là tốt cho những gì bạn muốn. $_SERVER['PHP_SELF'] sẽ luôn là kịch bản được gọi từ trình duyệt, ví dụ: nếu bạn có blah.com/admin.phpblah.com/articles.php cả hai được gọi là /pages.php để có danh sách các trang được lưu trong blog hoặc nội dung nào đó sẽ cho bạn biết liệu admin.php hoặc articles.php có đang gọi tập lệnh hay không. Nhưng nếu pages.php bao gồm functions.php bao gồm libs.php và libs.php không thành công và bạn muốn biết rằng functions.php bao gồm nó, điều này sẽ không hoạt động - nhật ký vẫn hiển thị tập lệnh bắt đầu bao gồm (admin.php hoặc articles.php). Trong trường hợp này, bạn sẽ sử dụng debug_backtrace().

+0

Cảm ơn 'debug_backtrace()'. Thật tuyệt vời! – neoDev

3

Bạn có thể có một cái nhìn tại debug_backtrace chức năng: trong đó là đầu ra, bạn nên tìm những gì bạn đang tìm kiếm ;-)

Bạn có thể có một cái nhìn để this answer tôi đăng một vài ngày trước đây, để biết thêm thông tin và một ví dụ.

+0

xem xét tất cả 'thông tin' trong liên kết đó! Tôi đang đào bới thông tin! lol – pythonian29033

0

Sử dụng debug_backtrace() để nhận mảng liên kết chứa toàn bộ callstack và kiểm tra mảng để lấy chi tiết bạn quan tâm.

0

Ngoài các câu trả lời đã đưa ra một câu trả lời công nghệ rất thấp sẽ là hoặc thêm _ _ FILE _ _ hoặc basename() vào một chuỗi đang được ghi lại. (phải thêm dấu cách để tăng gấp đôi dấu gạch dưới trong FILE để hiển thị nó)

Các vấn đề liên quan