PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Categorizarea extensiilor> <php.ini directives
Last updated: Fri, 02 May 2008

view this page in

Descrierea directivelor de bază ale php.ini

Această listă include directivele de bază ale php.ini, pe care le puteţi stabili pentru a configura PHP. Directivele ce se referă la extensii sunt listate şi detaliate pe paginile de documentare ale extensiilor respective. Informaţii despre directivele de sesiune, spre exemplu, pot fi găsite pe pagina de sesiuni.

Opţiunile Httpd

Opţiunile Httpd
Denumirea Valoarea implicită Poate fi schimbată în Istoria schimbărilor
async_send "0" PHP_INI_ALL  

Opţiunile limbajului

Opţiuni de configurare a limbajului şi opţiuni diverse
Denumirea Valoarea implicită Poate fi schimbată în Istoria schimbărilor
short_open_tag "1" PHP_INI_ALL PHP_INI_ALL în PHP <= 4.0.0. PHP_INI_PERDIR în PHP <= 5.3.0.
asp_tags "0" PHP_INI_PERDIR PHP_INI_ALL în PHP <= 4.0.0.
precision "14" PHP_INI_ALL  
y2k_compliance "1" PHP_INI_ALL  
allow_call_time_pass_reference "1" PHP_INI_PERDIR PHP_INI_ALL în PHP <= 4.0.0.
expose_php "1" numai în php.ini  
zend.ze1_compatibility_mode "0" PHP_INI_ALL Disponibil începând cu PHP 5.0.0. Eliminat în PHP 5.3.0.

Iată o explicaţie pe scurt a directivelor de configurare.

short_open_tag boolean

Indică dacă forma prescurtată (<? ?> ) a etichetei de deschidere a PHP este permisă. Dacă doriţi să utilizaţi PHP în combinaţie cu XML, puteţi dezactiva această opţiune pentru a utiliza <?xml ?> direct în text. În caz contrar, puteţi să le tipăriţi cu PHP, de exemplu: <?php echo '<?xml version="1.0"'; ?> . De asemenea, dacă este dezactivată, trebuie să utilizaţi forma lungă a etichetei de deschidere PHP (<?php ?> ).

Notă: Această directivă de asemenea afectează scurtătura <?= , care este identică cu <? echo . Utilizarea acestei scurtături necesită ca short_open_tag să fie activată.

asp_tags boolean
Permite utilizarea etichetelor de tip ASP <% %> în plus faţă de etichetele obişnuite <?php ?>. Aceasta include şi scurtătura pentru tiparul valorii variabilei <%= $value %>. Pentru mai multe informaţii accesaţi Evadarea din HTML.
precision integer
Numărul cifrelor semnificative afişate în numerele cu virgulă flotantă.
y2k_compliance boolean
Forţează conformarea cu anul 2000 (va cauza probleme cu navigatoarele nonconformante)
allow_call_time_pass_reference boolean

Afişarea avertizării în cazul când argumentele sunt transmise prin referinţă în timpul apelării funcţiei. Această metodă e descurajată şi e posibil să nu mai fie susţinută în versiunile viitoare ale PHP/Zend. Metoda încurajată de specificare a argumentelor ce trebuie transmise prin referinţă este în declaraţia funcţiei. Sunteţi încurajat să încercaţi să dezactivaţi această opţiune şi să aveţi grijă ca scripturile să lucreze în mod normal cu ea, pentru a vă asigura că ele vor funcţiona cu versiunile viitoare ale limbajului (veţi primi o avertizare de fiecare dată când utilizaţi această facilitate).

Transmiterea argumentelor prin referinţă la momentul apelării funcţiei a fost descurajată din motivul curăţeniei codului-sursă. O funcţie poate să-şi modifice argumentul într-un mod nedocumentat dacă nu a declarat că argumentul este transmis prin referinţă. Pentru a evita efecte secundare este mai bine de a specifica care argumente sunt transmise prin referinţă numai în declaraţia funcţiei.

Accesaţi de asemenea explicaţia referinţelor.

expose_php boolean

Decide dacă PHP va expune sau nu faptul că este instalat pe server (de ex. prin adăugarea semnăturii sale la antetul Web server-ului). Nu este nici un fel de pericol de securitate, însă acest lucru permite de a determina dacă utilizaţi sau nu PHP pe server.

zend.ze1_compatibility_mode boolean

Activează modul de compatibilitate cu Zend Engine 1 (PHP 4). Aceasta afectează clonarea, transformarea (obiectele fără proprietăţi se transformă în FALSE sau 0), şi comparaţia obiectelor. În acest mod, obiectele sunt transmise prin valoare, dar nu prin referinţă, cum e stabilit implicit.

Accesaţi de asemenea secţiunea întitulată Migrarea de la PHP 4 la PHP 5.

Limitele resurselor

Limitele resurselor
Denumirea Valoarea implicită Poate fi schimbată în Istoria schimbărilor
memory_limit "128M" PHP_INI_ALL "8M" înainte de PHP 5.2.0, "16M" în PHP 5.2.0

Iată o explicaţie pe scurt a directivelor de configurare.

memory_limit integer

Aceata stabileşte mărimea maximă a memoriei în baiţi, pe care un script o poate aloca. Astfel se evită situaţia când scripturile scrise rău consumă toată memoria disponibilă pe server. Atrageţi atenţia că pentru a dezactiva limita de memorie, trebuie să stabiliţi această directivă la valoarea -1.

Înainte de PHP 5.2.1, pentru a utiliza această directivă, ea trebuia să fi fost activată la momentul compilării indicând --enable-memory-limit în linia de configurare. Aceasta era de asemenea necesar pentru a defini funcţiile memory_get_usage() şi memory_get_peak_usage().

În cazul utilizării unui integer , valoarea este măsurată în baiţi. De asemenea poate fi utilizată notaţia prescurtată, după cum este descris în acest FAQ.

Accesaţi de asemenea: max_execution_time.

Reglarea performanţei

Reglarea performanţei
Denumirea Valoarea implicită Poate fi schimbată în Istoria schimbărilor
realpath_cache_size "16K" PHP_INI_SYSTEM Disponibil începând cu PHP 5.1.0.
realpath_cache_ttl "120" PHP_INI_SYSTEM Disponibil începând cu PHP 5.1.0.

Iată o explicaţie pe scurt a directivelor de configurare.

realpath_cache_size integer

Determină mărimea cache-ului căilor folosite de PHP. Această valoare trebuie mărită pe sistemele unde PHP deschide multe fişiere, pentru a reflecta cantitatea operaţiunilor efectuate cu fişiere.

realpath_cache_ttl integer

Durata de timp (în secunde) pentru a păstra în cache informaţia despre calea unui fişier sau director. Pentru sisteme cu fişiere care se modifică rar, consideraţi mărirea acestei valori.

Manipularea datelor

Opţiunile de configurare pentru manipularea datelor
Denumirea Valoarea implicită Poate fi schimbată în Istoria schimbărilor
track_vars "On" PHP_INI_??  
arg_separator.output "&" PHP_INI_ALL Disponibil începând cu PHP 4.0.5.
arg_separator.input "&" PHP_INI_PERDIR Disponibil începând cu PHP 4.0.5.
variables_order "EGPCS" PHP_INI_PERDIR PHP_INI_ALL în PHP <= 5.0.5.
request_order "" PHP_INI_SYSTEM|PHP_INI_PERDIR Disponibil începând cu PHP 5.3.0
auto_globals_jit "1" PHP_INI_PERDIR Disponibil începând cu PHP 5.0.0.
register_globals "0" PHP_INI_PERDIR PHP_INI_ALL în PHP <= 4.2.3.
register_argc_argv "1" PHP_INI_PERDIR PHP_INI_ALL în PHP <= 4.2.3.
register_long_arrays "1" PHP_INI_PERDIR Disponibil începând cu PHP 5.0.0.
post_max_size "8M" PHP_INI_PERDIR PHP_INI_SYSTEM în PHP <= 4.2.3. Disponibil începând cu PHP 4.0.3.
gpc_order "GPC" PHP_INI_ALL  
auto_prepend_file NULL PHP_INI_PERDIR PHP_INI_ALL în PHP <= 4.2.3.
auto_append_file NULL PHP_INI_PERDIR PHP_INI_ALL în PHP <= 4.2.3.
default_mimetype "text/html" PHP_INI_ALL  
default_charset "" PHP_INI_ALL  
always_populate_raw_post_data "0" PHP_INI_PERDIR PHP_INI_ALL în PHP <= 4.2.3. Disponibil începând cu PHP 4.1.0.
allow_webdav_methods "0" PHP_INI_PERDIR  

Iată o explicaţie pe scurt a directivelor de configurare.

track_vars boolean

Dacă este activat, atunci variabilele Environment, GET, POST, Cookie şi Server pot fi găsite în masivele asociative globale $_ENV, $_GET, $_POST, $_COOKIE şi $_SERVER.

Atrageţi atenţia că începând cu PHP 4.0.3, track_vars este întotdeauna activat.

arg_separator.output string

Separatorul utilizat în URL-urile generate de PHP pentru a separa argumentele.

arg_separator.input string

Lista separator(arelor) folosite de PHP pentru a analiza şi transfera URL-urile de intrare în variabile.

Notă: Fiecare caracter din această directivă este considerat separator!

variables_order string

Stabileşte ordinea prelucrării variabileleor EGPCS ( Environment, Get, Post, Cookie şi Server). Spre exemplu, dacă variables_order este stabilit în "SP", atunci PHP va crea superglobals $_SERVER şi $_POST, dar nu va crea $_ENV, $_GET şi $_COOKIE. Stabilirea valorii "" înseamnă că nici un superglobals nu va fi stabilit.

Dacă directiva dezaprobată register_globals este stabilită (nu mai există începând cu PHP 6.0.0), atunci variables_order de asemenea configurează ordinea în care variabilele ENV, GET, POST, COOKIE şi SERVER sunt populate în domeniul global. Deci, spre exemplu, dacă variables_order este stabilit în "EGPCS", register_globals este activat, şi ambele $_GET['action'] şi $_POST['action'] sunt stabilite, atunci $action va conţine valoarea $_POST['action'] deoarece P urmează după G în valoarea directivei din exemplul dat.

Avertizare

În ambele SAPI-uri CGI şi FastCGI, $_SERVER este de asemenea populat cu valori din mediu; S este întotdeauna echivalent cu ES independent de amplasarea E în această directivă.

Notă: Conţinutul şi ordinea valorilor din variabila $_REQUEST sunt de asemenea afectate de această directivă.

request_order string

Această directuvă descrie ordinea în care PHP PHP înregistrează variabilele GET, POST şi Cookie în masivul _REQUEST. Înregistrarea este efectuată de la stânga la dreapta, valorile noi se suprapun peste cele vechi.

Dacă această directivă nu este stabilită, variables_order este utilizată pentru a umple conţinutul $_REQUEST.

auto_globals_jit boolean

Când este activată, variabilele SERVER şi ENV sunt create prima dată când sunt utilizate (Exact la timp - Just In Time) în loc să fie create la lansarea scriptului. Dacă aceste variabile nu sunt utilizate în script, atunci activarea acestei directive va duce la o creştere a performanţei.

Directivele PHP register_globals, register_long_arrays şi register_argc_argv trebuie să fie dezactivate pentru ca această directivă să aibă efect. Începând cu PHP 5.1.3 nu este necesar de a avea register_argc_argv dezactivat.

register_globals boolean

Indică dacă variabilele EGPCS (Environment, GET, POST, Cookie, Server) trebuie să fie înregistrate ca variabile globale, sau nu.

Începând cu » PHP 4.2.0, această directivă are valoarea implicită off.

Vă rugăm să citiţi capitolul ce ţine de securitate Utilizarea register_globals pentru mai multe informaţii.

Vă rugăm să atrageţi atenţia că register_globals nu poate fi stabilit în timpul execuţiei ( ini_set()). Cu toate acestea puteţi utiliza .htaccess dacă serverul permite aceasta, după cum e descris anterior. Un exemplu de înregistrare .htaccess: php_flag register_globals off .

Notă: register_globals este afectată de directiva variables_order.

Avertizare

Această facilitate este DEZAPROBATĂ şi este ELIMINATĂ începând cu PHP 6.0.0. Utilizarea acestei facilităţi este foarte nerecomandată.

register_argc_argv boolean
Indică PHP dacă trebuie declarate variabilele argv & argc (care ar conţine informaţia GET). Accesaţi de asemenea linia de comandă. De asemenea această directivă a apărut în PHP 4.0.0 şi a fost întotdeauna "on" înainte de aceasta.
register_long_arrays boolean
Indică PHP dacă trebuie înregistrate, sau nu variabilele predefinite lungi învechite de tip $HTTP_*_VARS. Când este stabilită în On (implicit), variabilele PHP predefinite lungi, cumar fi $HTTP_GET_VARS vor fi definite. Dacă nu le utilizaţi, este recomandabil să le dezactivaţi din motivul performanţei. În loc, utilizaţi masivele superglobale, cum ar fi $_GET. Această directivă a devenit disponibilă în PHP 5.0.0 şi a fost anulată în PHP 6.0.0.
post_max_size integer
Stabileţte mărimea maximă permisă a datelor "post". Această mărime de asemenea afectează încărcarea fişierelor. Pentru a încărca fişiere voluminoase această valoare trebuie să fie mai mare decât upload_max_filesize. Dacă limita de memorie e activată de către scriptul de configurare, memory_limit de asemenea afectează încărcarea fişierelor. Vorbind la general, memory_limit ar trebui să fie mai mare decât post_max_size . În cazul utilizării unui integer , valoarea este măsurată în baiţi. De asemenea poate fi utilizată notaţia prescurtată, după cum este descris în acest FAQ. Dacă mărimea datelor post este mai mare decât post_max_size, superglobalele $_POST şi $_FILES sunt vide. Acest fapt poate fi depistat prin diferite metode, de ex. transmiţând o valoare variabilei $_GET în scriptul care procesează datele, de ex. <form action="edit.php?processed=1">, şi apoi verificând dacă $_GET['processed'] este stabilit.
gpc_order string

Stabileşte ordinea analizei şi transferului variabilelor GET/POST/COOKIE. Valoarea implicită a acestei directive este "GPC". Stabilirea acesteia în "GP", spre exemplu, va cauza PHP să ignoreze complet cookie şi să rescrie orice variabilă primită prin metoda GET cu variabilele primite prin metoda POST şi care au acelaşi nume.

Notă: Această opţiune nu este disponibilă în PHP 4. În loc, utilizaţi variables_order.

auto_prepend_file string

Specifică denumirea unui fişier care va fi automat analizat şi executat înainte de fişierul principal. Acest fişier este inclus, ca şi cum ar fi fost apelat cu funcţia require(), deci include_path este utilizat.

Valoarea specială none anulează executarea automată.

auto_append_file string

Specifică denumirea unui fişier care va fi automat analizat şi executat după fişierul principal. Acest fişier este inclus, ca şi cum ar fi fost apelat cu funcţia require(), deci include_path este utilizat.

Valoarea specială none anulează executarea automată.

Notă: Dacă scriptul este terminat cu exit(), executarea automată nu va avea loc.

default_mimetype string

default_charset string

Începând cu 4.0.0, PHP întotdeauna transmite implicit codificarea caracterelor în antetul Content-type: . Pentru a dezactiva trimiterea setului de caractere, pur şi simplu eliminaţi valoarea acestui parametru.

always_populate_raw_post_data boolean

Întotdeauna populează $HTTP_RAW_POST_DATA cu datele crude POST. În caz contrar, variabila este populată numai cu date de tip MIME necunoscut. Oricum, metoda preferată pentru a accesa datele crude POST este php://input. $HTTP_RAW_POST_DATA nu este disponibilă în cazul enctype="multipart/form-data".

allow_webdav_methods boolean

Permite prelucrarea cererilor http WebDAV din scripturile PHP (de ex. PROPFIND, PROPPATCH, MOVE, COPY, etc.). Această directivă nu există începând cu PHP 4.3.2. Dacă doriţi să primiţi datele post a acestor cereri, trebuie să stabiliţi de asemenea şi always_populate_raw_post_data.

Accesaţi de asemenea: magic_quotes_gpc, magic_quotes_runtime, şi magic_quotes_sybase.

Căile şi directoarele

Opţiunile de configurare a căilor şi directoarelor
Denumirea Valoarea implicită Poate fi schimbată în Istoria schimbărilor
include_path ".;/calea/spre/php/pear" PHP_INI_ALL  
doc_root NULL PHP_INI_SYSTEM  
user_dir NULL PHP_INI_SYSTEM  
extension_dir "/calea/spre/php" PHP_INI_SYSTEM  
extension NULL numai în php.ini  
cgi.check_shebang_line "1" PHP_INI_SYSTEM Disponibil începând cu PHP 5.2.0.
cgi.fix_pathinfo "1" PHP_INI_SYSTEM Disponibil începând cu PHP 4.3.0. PHP_INI_ALL prior to PHP 5.2.1.
cgi.force_redirect "1" PHP_INI_SYSTEM Disponibil începând cu PHP 4.2.0. PHP_INI_ALL prior to PHP 5.2.1.
cgi.redirect_status_env NULL PHP_INI_SYSTEM Disponibil începând cu PHP 4.2.0. PHP_INI_ALL prior to PHP 5.2.1.
fastcgi.impersonate "0" PHP_INI_SYSTEM Disponibil începând cu PHP 4.3.0. PHP_INI_ALL prior to PHP 5.2.1.
cgi.rfc2616_headers "0" PHP_INI_ALL Disponibil începând cu PHP 4.3.0.

Iată o explicaţie pe scurt a directivelor de configurare.

include_path string

Specifică o listă de directoare, unde funcţiile require(), include(), fopen(), file(), readfile() şi file_get_contents() vor căuta fişierele. Formatul este ca şi în cazul variabilei de mediu a sistemului PATH: o listă de directoare separate prin două puncte în Unix, sau punct şi virgulă în Windows.

Example #1 include_path în Unix

include_path=".:/php/includes"

Example #2 include_path în Windows

include_path=".;c:\php\includes"

Utilizarea unui . în calea de includere permite includeri relative, deoarece desemnează directorul curent.

doc_root string

"Directorul root" al PHP de pe server. Este utilizat numai dacă nu este vid. Dacă PHP este configurat cu modul securizat, nici un fişier din afara acestui director nu este servit. Dacă PHP nu a fost compilat cu FORCE_REDIRECT, trebuie să stabiliţi doc_root dacă rulaţi PHP în calitate de CGI cu orice web server (în afară de IIS). Alternativa este de a utiliza configuraţia cgi.force_redirect de mai jos.

user_dir string

Denumirea de bază a directorului utilizat într-un director de bază al utilizatorului pentru fişierele PHP, spre exemplu public_html.

extension_dir string

În care director PHP ar trebui să caute extensiile încărcate dinamic. Accesaţi de asemenea: enable_dl, şi dl().

extension string

Care extensie dinamică trebuie încărcată atunci când PHP este lansat.

cgi.check_shebang_line boolean

Controlează dacă CGI PHP verifică existenţa liniei ce începe cu #! (shebang) la începutul scriptului ce va fi rulat. Această linie poate fi necesară dacă script-ul susţine rularea atât în calitate de script independent, cât şi ca PHP CGI. PHP în mod CGI trece peste această linie şi ignoră conţinutul ei dacă această directivă e activată.

cgi.fix_pathinfo boolean

Oferă susţinerea PATH_INFO/PATH_TRANSLATED reale pentru CGI. Comportamentul precedent al PHP era de a stabili PATH_TRANSLATED în SCRIPT_FILENAME şi de a nu analiza care este PATH_INFO. Pentru mai multe informaţii despre PATH_INFO, vedeţi specificările CGI. Stabilirea valorii 1 va cauza PHP CGI să-şi corecteze căile pentru a se conforma specificaţiilor. Stabilirea valorii 0 cauzează PHP să se comporte ca mai înainte. Valoarea implicită este zero. Dumneavoastră ar trebui să vă corectaţi script-urile ca să utilizeze SCRIPT_FILENAME şi nu PATH_TRANSLATED.

cgi.force_redirect boolean

cgi.force_redirect este necesar pentru a oferi securitate la rularea PHP în calitate de CGI cu majoritatea serverelor web. Dacă nu este definită, PHP implicit activează această directivă. Puteţi să o dezectivaţi la propriul risc.

Notă: Utilizatorii Windows: puteţi să dezactivaţi fără primejdie această directivă pentru IIS, de fapt trebuie să faceţi aceasta. Pentru ca OmniHTTPD sau Xitami să funcţioneze trebuie să o dezactivaţi.

cgi.redirect_status_env string

Dacă cgi.force_redirect este activată şi nu rulaţi web server-ele Apache sau Netscape (iPlanet), s-ar putea să fie necesar să stabiliţi o variabilă de mediu, pe care PHP o va căuta pentru a şti dacă e OK de a continua execuţia.

Notă: Stabilirea acestei variabile ar putea cauza probleme se securitate, întâi clarificaţi ce doriţi să realizaţi.

fastcgi.impersonate string

FastCGI sub IIS (pe sisteme bazate pe WINNT) susţin posibilitatea de a juca rolul tichetelor de securitate ale clientului apelant. Aceasta îi permite IIS să definească contextul de securitate sub care rulează cererea. mod_fastcgi sub Apache nu susţine în prezent (03/17/2002) această facilitate. Stabiliţi valoarea 1 la rularea sub IIS. Implicit este zero.

cgi.rfc2616_headers int

Indică PHP ce tip de antete să utilizeze la trimiterea codului de răspuns HTTP. Dacă este stabilită în 0, PHP trimite un antet Status: care este susţinut de Apache şi alte servere web. Când această opţiune este stabilită în 1, PHP va trimite antete ce se conformează cu » RFC 2616. Schimbaţi valoarea din 0 numai dacă cunoaşteţi ce faceţi.

Încărcarea fişierelor

Opţiunile de configurare a încărcării fişierelor
Denumirea Valoarea implicită Poate fi schimbată în Istoria schimbărilor
file_uploads "1" PHP_INI_SYSTEM PHP_INI_ALL în PHP <= 4.2.3. Disponibil începând cu PHP 4.0.3.
upload_tmp_dir NULL PHP_INI_SYSTEM  
upload_max_filesize "2M" PHP_INI_PERDIR PHP_INI_ALL în PHP <= 4.2.3.

Iată o explicaţie pe scurt a directivelor de configurare.

file_uploads boolean

Dacă să permită, sau nu încărcări de fişiere prin HTTP. Accesaţi de asemenea directivele upload_max_filesize, upload_tmp_dir şi post_max_size.

În cazul utilizării unui integer , valoarea este măsurată în baiţi. De asemenea poate fi utilizată notaţia prescurtată, după cum este descris în acest FAQ.
upload_tmp_dir string

Directorul temporar utilizat pentru stocarea fişierelor la încărcare. Trebuie să aibă drept de înscriere pentru utilizatorul cu care rulează PHP. Dacă nu este specificat, PHP va folosi directorul implicit al sistemului.

upload_max_filesize integer

Mărimea maximă a unui fişier încărcat.

În cazul utilizării unui integer , valoarea este măsurată în baiţi. De asemenea poate fi utilizată notaţia prescurtată, după cum este descris în acest FAQ.

SQL general

Opţiunile de configurare ale SQL general
Denumirea Valoarea implicită Poate fi schimbată în Istoria schimbărilor
sql.safe_mode "0" PHP_INI_SYSTEM  

Iată o explicaţie pe scurt a directivelor de configurare.

sql.safe_mode boolean

Dacă este activată, funcţiile de conectare la baze de date care utilizează valori implicite, le vor utiliza pe acestea, în locul argumentelor furnizate. Pentru a afla valorite implicite, citiţi documentaţia funcţiei de conectare pentru baza de date respectivă.



Categorizarea extensiilor> <php.ini directives
Last updated: Fri, 02 May 2008
 
add a note add a note User Contributed Notes
Descrierea directivelor de bază ale php.ini
senf_glas at hotmail dot com
09-Apr-2008 04:31
"post_max_size"

"[..]This can be tracked in various ways, e.g. by passing the $_GET variable to the script processing the data, i.e. <form action="edit.php?processed=1">, and then checking if $_GET['processed'] is set."

using PHP 4.4.8 it seems that only the $_POST array will be empty in case of the file is largen than post_max_size.
so above mentioned method does not work in my case.
i need to use $_POST['processed'] instead of $_GET['processed']
Jeff
11-Mar-2008 07:17
If you are having trouble getting the auto_prepend_file to work with the command line interface make sure that you have set it in the cli specific php.ini and that the read permission is set correctly for that php.ini file.
gilthans dot NO dot SPAM at gmail dot com
03-Dec-2007 10:52
If you want to display the upload limit without knowing the server configuration, this may be useful:
<?php
function let_to_num($v){ //This function transforms the php.ini notation for numbers (like '2M') to an integer (2*1024*1024 in this case)
   
$l = substr($v, -1);
   
$ret = substr($v, 0, -1);
    switch(
strtoupper($l)){
    case
'P':
       
$ret *= 1024;
    case
'T':
       
$ret *= 1024;
    case
'G':
       
$ret *= 1024;
    case
'M':
       
$ret *= 1024;
    case
'K':
       
$ret *= 1024;
        break;
    }
    return
$ret;
}
$max_upload_size = min(let_to_num(ini_get('post_max_size')), let_to_num(ini_get('upload_max_filesize')));

echo
"Maximum upload file size is ".($max_upload_size/(1024*1024))."MB.";
?>
Do note however that this limit is not completely reliable; there are other factors which need to be taken into account, such as any other $_POST data and their size, the memory limit, and the script time limit. This does, however, give some rough limit, and helps you avoid "Doh!" problems where you can't figure out why your file won't upload. :)
stepheneliotdewey at GmailDotCom
26-Jun-2007 04:03
While the manual says that the file specified by auto_prepend_file is included as if it were called by include(), in fact the file is included as if it were called by require().

In other words, if PHP cannot find the file that you specify with auto_prepend_file, it will throw a fatal error.
lanny at freemail dot hu
25-Dec-2006 03:05
register_long_arrays has a very odd behavior (at least in PHP 5.2):

With register_long_arrays=Off the $GLOBALS array will not contain [_SERVER] and [_REQUEST]. They are accessible as superglobals ($_SERVER, $_REQUEST), but they disappear from the $GLOBALS array!
ludicruz at yahoo dot com
19-Dec-2006 10:38
to make sure that all requests use SSL you can use this in a file that is set for auto_prepend_file. This ensures that all requests are SSL

<?php
if(empty($_SERVER['HTTPS']) || strtolower($_SERVER['HTTPS']) != 'on' )
       
header("Location: https://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}") and exit();
?>
xangelusx at hotmail dot com
24-Jul-2006 07:28
I wish the documentation was more clear as to whether the arg_separator.output character is automatically encoded when PHP outputs it. In other words, is "&" valid or do I need to specify the encoded character "&amp;"? It would make sense to specify only "&" and hope that it is encoded as needed. That way the value could be read by other functions and encoded only when output to HTML, rather than having to test whether it is already encoded and decode it when necessary (for header redirection for example)
leo at korfu dot cz
29-May-2006 03:45
"If the size of post data is greater than post_max_size..."

It seems that a more elegant way is comparison between post_max_size and $_SERVER['CONTENT_LENGTH']. Please note that the latter includes not only size of uploaded file plus post data but also multipart sequences. Leo
csg at DEL_THISdiatom dot de
02-Sep-2005 02:55
Starting with PHP 4.4.0 (at least PHP version 4.3.10 did have old, documented behaviour) interpretation of value of "session.save_path" did change in conjunction with "save_mode" and "open_basedir" enabled.

Documented ( http://de.php.net/manual/en/ref.session.php#ini.session.save-path ):
  Values of "session.save_path" should or may be  **without**  ending slash.
  For instance:
<?php
 
// Valid only  *before* PHP 4.4.0:
 
ini_set( "session.save_path", "/var/httpd/kunde/phptmp" );
?> will mean:
  The directory "/var/httpd/kunde/phptmp/" will be used to write data and therefore must be writable by the web server.

Starting with PHP 4.4.0 the server complains that "/var/httpd/kunde/" is not writable.
Solution: Add an ending slash in call of ini_set (or probably whereever you set "session.save_path"), e.g.:
<?php
 
// Note the slash on ".....phptmp/":
 
ini_set( "session.save_path", "/var/httpd/kunde/phptmp/" );
?>

Hope, that does help someone.
Manu
27-Jul-2005 05:02
Warning, if you change upload_max_filesize, please note that both post_max_size and memory_limit directives may have to change too.
david dot tulloh at infaze dot com dot au
26-Jun-2005 06:19
I did a little experimentation on the behaviour of auto_prepend_file as the order of access wasn't clear to me from the documentation.

1. Apache checks to see if the target file exists.
2. The prepend file is called
3. The target file is called

This means that you can use auto_prepend_file to change the target file before you access it however you can't generate new files.
Joe
09-Jun-2005 01:05
Please be mindful, that if you plan on re-configuring / recompiling to add --enable-memory-limit support, you may need to run a 'make clean' before you run 'make'. Otherwise, you may end up with a phpinfo() that shows up with --enable-memory-limit as a configure parameter, but the memory_get_usage() function will still force a fatal error.

Categorizarea extensiilor> <php.ini directives
Last updated: Fri, 02 May 2008
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites