background image

                int opt_err = 0, argc = ZEND_NUM_ARGS();
                long erropt = 0;
         
                if (zend_parse_parameters(argc TSRMLS_CC, "s|lss", &message, 
&message_len, &erropt, &opt, &opt_len, &headers, &headers_len) == FAILURE) {
                        return;
                }
         
                if (argc > 1) {
                        opt_err = erropt;
                }
         
                if (opt_err == 3 && opt) {
                        if (strlen(opt) != opt_len) {
                                RETURN_FALSE;
                        }
                }
         
                if (_php_error_log_ex(opt_err, message, message_len, opt, headers 
TSRMLS_CC) == FAILURE) {
                        RETURN_FALSE;
                }
         
                RETURN_TRUE;
        }
  

这个没什么说的,检测传入过来的参数,然后调用_php_error_log_ex 函数。

  看看它的定义
          PHPAPI int _php_error_log_ex(int opt_err, char *message, int message_len, 
char *opt, char *headers TSRMLS_DC) /* {{{ */
        {
                php_stream *stream = NULL;
         
                switch (opt_err)
                {
                        case 1:         /*send an email */
                                if (!php_mail(opt, "PHP error_log message", message, headers, 
NULL TSRMLS_CC)) {
                                        return FAILURE;
                                }
                                break;
         
                        case 2:         /*send to an address */
                                php_error_docref(NULL TSRMLS_CC, E_WARNING, "TCP/IP option 
not available!");