2011-10-25 91 views
2

我需要在PHP擴展中向超全局$ _SERVER數組添加條目。我相當肯定php_register_variable()會做這項工作,把關鍵和價值作爲論據;但我不知道要傳遞什麼作爲第三個參數。不幸的是關於這個主題的文檔相當稀少。

回答

2

這是我通常使用:

zval** arr; 
if (zend_hash_find(&EG(symbol_table), "_SERVER", 8, (void**)&arr) != FAILURE) { 
    add_assoc_string(*arr, "foo", "bar", 1); 
} 

可能的值類型見Extension Writing Part II: Parameters, Arrays, and ZVALs

+0

謝謝,這看起來不錯;並再次感謝那個鏈接,我無法找到這種恥辱;) – wonk0

0

您可以使用mod_env模塊通過Apache的SetEnv指令進行設置。

參見Setting a Php $_SERVER value ($_SERVER['something']) using Apache .htaccess以供參考。

+0

呃...他正在用C語言編寫PHP擴展,而不是PHP支持的網站。 –

+0

的確如此。我的錯。我沒有仔細閱讀。無論如何,AFAIK $ _SERVER數組包含服務器軟件提供的環境變量,所以我認爲不可能以任何其他方式添加它們。 – budwiser

+0

所有PHP superglobals都是可寫的。即使從PHP代碼! –