Note that there are some explanatory texts on larger screens.

plurals
  1. POLog the REQUEST_URI variable when php is set to log to syslog
    text
    copied!<p>This is the source code of php_log_err. I would like to modify it to be able to log the variable <code>_SERVER["REQUEST_URI"]</code></p> <pre><code>/* {{{ php_log_err */ PHPAPI void php_log_err(char *log_message TSRMLS_DC) { FILE *log_file; char error_time_str[128]; struct tm tmbuf; time_t error_time; /* Try to use the specified logging location. */ if (PG(error_log) != NULL) { #ifdef HAVE_SYSLOG_H if (!strcmp(PG(error_log), "syslog")) { php_syslog(LOG_NOTICE, "%.500s", log_message); return; } #endif log_file = VCWD_FOPEN(PG(error_log), "ab"); if (log_file != NULL) { time(&amp;error_time); strftime(error_time_str, sizeof(error_time_str), "%d-%b-%Y %H:%M:%S", php_localtime_r(&amp;error_time, &amp;tmbuf)); fprintf(log_file, "[%s] ", error_time_str); fprintf(log_file, "%s", log_message); fprintf(log_file, "%s", PHP_EOL); fclose(log_file); return; } } /* Otherwise fall back to the default logging location, if we have one */ if (sapi_module.log_message) { sapi_module.log_message(log_message); } } /* }}} */ </code></pre> <p>I've got this which shouldn't be far from the solution but I can't get it to work:</p> <pre><code>char key[] = "REQUEST_URI"; int key_size = sizeof(key); zval **hsv; zval **var; if (SUCCESS != zend_hash_find(&amp;EG(symbol_table), "_SERVER", sizeof("_SERVER"), (void **) &amp;hsv)) { if (SUCCESS != zend_hash_find(Z_ARRVAL_PP(hsv), (char *) key, key_size, (void **) &amp;var)) { if (!(Z_STRVAL_PP(var) &amp;&amp; Z_STRLEN_PP(var))) { } } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload