$_REQUEST是怎么获得get,post,cookie的值?  原理是什么? 1 数组合并 ?2 指针, 指向所在位置 ?其它 ... ?

解决方案 »

  1.   

    太底层了,应该是apache之类web server的工作
      

  2.   


    我就知道$_REQUEST $_GET $_POST 是干嘛用的 。原理就不知道了!
      

  3.   


    我看不出那里有下载的, 那个Complete Source Code下来的是dll库 
      

  4.   


    /* $Id: php_variables.c 272374 2008-12-31 11:17:49Z sebastian $ */#include <stdio.h>
    #include "php.h"
    #include "ext/standard/php_standard.h"
    #include "ext/standard/credits.h"
    #include "php_variables.h"
    #include "php_globals.h"
    #include "php_content_types.h"
    #include "SAPI.h"
    #include "php_logos.h"
    #include "zend_globals.h"/* for systems that need to override reading of environment variables */
    void _php_import_environment_variables(zval *array_ptr TSRMLS_DC);
    PHPAPI void (*php_import_environment_variables)(zval *array_ptr TSRMLS_DC) = _php_import_environment_variables;PHPAPI void php_register_variable(char *var, char *strval, zval *track_vars_array TSRMLS_DC)
    {
        php_register_variable_safe(var, strval, strlen(strval), track_vars_array TSRMLS_CC);
    }/* binary-safe version */
    PHPAPI void php_register_variable_safe(char *var, char *strval, int str_len, zval *track_vars_array TSRMLS_DC)
    {
        zval new_entry;
        assert(strval != NULL);    /* Prepare value */
        Z_STRLEN(new_entry) = str_len;
        if (PG(magic_quotes_gpc)) {
            Z_STRVAL(new_entry) = php_addslashes(strval, Z_STRLEN(new_entry), &Z_STRLEN(new_entry), 0 TSRMLS_CC);
        } else {
            Z_STRVAL(new_entry) = estrndup(strval, Z_STRLEN(new_entry));
        }
        Z_TYPE(new_entry) = IS_STRING;    php_register_variable_ex(var, &new_entry, track_vars_array TSRMLS_CC);
    }
    .................一共892行,我就不贴完整的了