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!");