2010-12-29 19 views
10

Tại sao các thông báo lỗi PHP chứa một liên kết, chẳng hạn như lỗi này:Tại sao thông báo lỗi PHP chứa liên kết tới tên của hàm trong biểu diễn HTML của chúng?

<b>Warning</b>: preg_match_all() [<a href='function.preg-match-all'>function.preg-match-all</a>]: Delimiter must not be alphanumeric or backslash in <b>/home/www/test.php</b> on line <b>93</b><br />

với liên kết này ?:

[<a href='function.preg-match-all'>function.preg-match-all</a>]

là giả định rằng PHP sẽ được cấu hình để đặt một http://www.php.net/ ở phía trước URL đó? Hoặc một người sẽ có một bản sao của tài liệu PHP trên máy chủ web của họ và bằng cách nhấp vào liên kết đó họ sẽ có thể truy cập thông tin về chức năng này?

Đây chỉ là điều tôi đã tò mò vì có vẻ như trừ khi lỗi xảy ra trên php.net, một liên kết như vậy sẽ vô ích.

Tôi biết có thể thiết lập trình xử lý lỗi tùy chỉnh, v.v. Câu hỏi của tôi là: Tại sao đây là hành vi mặc định của PHP?

Cảm ơn.

+1

Hey, đây thực sự là một câu hỏi khá hay. Tôi luôn tự hỏi bản thân mình. – BoltClock

Trả lời

2

Nó thực sự phải liên kết đến php.net, nhưng hầu hết các cấu hình mặc định có nó tắt. Và bạn có nghĩa vụ phải chuyển hướng nó đến một bản sao thủ công địa phương. (Tôi có/phpmanual /, nơi mà gói hướng dẫn sử dụng php có lẽ sẽ đặt nó; và tôi tin rằng người quản lý gói sẽ bỏ chọn tùy chọn đó.)

Tùy chọn docref_root trong php.ini có thể được sử dụng để đặt nó.

10

Bạn có thể đặt docref_root để thêm URI vào. nó được dự định sẽ được sử dụng với một bản sao địa phương của sổ tay nhưng có thể được sử dụng với một bản sao bên ngoài.

Để tắt lỗi html hoàn toàn, thiết html_errors để 0.

+0

iirc, cấu hình mặc định có các liên kết này bị tắt và chúng tôi khuyên bạn nên tắt một trang web công cộng. – Nathan

+0

Theo hướng dẫn, mặc định cho 'html_errors' là" 1 "http://www.php.net/manual/en/errorfunc.configuration.php và chỉ ảnh hưởng đến sự hiện diện của thẻ neo, không phải thông báo lỗi nói chung . Trang web sản xuất phải có tất cả các thông báo lỗi, điều này làm cho việc thiết lập 'html_errors' trở thành hiện thực. – webbiedave

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