Aktueller Standort: Startseite> Neueste Artikel> [So verwenden Sie die Putenv -Funktion von PHP, um Umgebungsvariablen korrekt einzustellen und zu verwalten? Detaillierte Erläuterung der Schritte]

[So verwenden Sie die Putenv -Funktion von PHP, um Umgebungsvariablen korrekt einzustellen und zu verwalten? Detaillierte Erläuterung der Schritte]

gitbox 2025-09-03

2. Verwendung mit Getenv und $ _env

Nachdem wir die Umgebungsvariable festgelegt haben, müssen wir sie häufig im Programm lesen. Es gibt zwei Möglichkeiten zu verwenden:

  1. Holen Sie sich Getenv () durch Getenv ()

 <span><span><span class="hljs-title function_ invoke__">putenv</span></span><span>(</span><span><span class="hljs-string">"APP_DEBUG=true"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">getenv</span></span><span>(</span><span><span class="hljs-string">"APP_DEBUG"</span></span><span>); </span><span><span class="hljs-comment">// Ausgabe: true</span></span><span>
</span></span>
  1. Durchstieg durch $ _env Hyperglobal -Variable

Unter bestimmten Konfigurationen (abhängig von der Einstellung variablen_order in php.ini ) wird der von Putenv festgelegte Wert auf $ _env synchronisiert.

 <span><span><span class="hljs-title function_ invoke__">putenv</span></span><span>(</span><span><span class="hljs-string">"API_KEY=123456"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$_ENV</span></span><span>[</span><span><span class="hljs-string">"API_KEY"</span></span><span>]; </span><span><span class="hljs-comment">// Wenn aktiviert,Ausgabe: 123456</span></span><span>
</span></span>

Es ist zu beachten, dass verschiedene Serverumgebungen und PHP -Konfigurationen die Verfügbarkeit von $ _env beeinflussen können. Daher wird empfohlen , Getenv () zu verwenden, um die Kompatibilität sicherzustellen.


3. Anwendungsszenarien in Webanwendungen

  1. Unterscheiden Sie die Betriebsumgebung

     <span><span><span class="hljs-title function_ invoke__">putenv</span></span><span>(</span><span><span class="hljs-string">"APP_ENV=development"</span></span><span>);
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">getenv</span></span><span>(</span><span><span class="hljs-string">"APP_ENV"</span></span><span>) === </span><span><span class="hljs-string">"development"</span></span><span>) {
        </span><span><span class="hljs-title function_ invoke__">error_reporting</span></span><span>(E_ALL);
        </span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">"display_errors"</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>);
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">"display_errors"</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>);
    }
    </span></span>
  2. Datenbankkonfigurationsverwaltung

     <span><span><span class="hljs-title function_ invoke__">putenv</span></span><span>(</span><span><span class="hljs-string">"DB_HOST=127.0.0.1"</span></span><span>);
    </span><span><span class="hljs-title function_ invoke__">putenv</span></span><span>(</span><span><span class="hljs-string">"DB_USER=root"</span></span><span>);
    </span><span><span class="hljs-title function_ invoke__">putenv</span></span><span>(</span><span><span class="hljs-string">"DB_PASS=secret"</span></span><span>);
    
    </span><span><span class="hljs-variable">$pdo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">PDO</span></span><span>(
        </span><span><span class="hljs-string">"mysql:host="</span></span><span> . </span><span><span class="hljs-title function_ invoke__">getenv</span></span><span>(</span><span><span class="hljs-string">"DB_HOST"</span></span><span>),
        </span><span><span class="hljs-title function_ invoke__">getenv</span></span><span>(</span><span><span class="hljs-string">"DB_USER"</span></span><span>),
        </span><span><span class="hljs-title function_ invoke__">getenv</span></span><span>(</span><span><span class="hljs-string">"DB_PASS"</span></span><span>)
    );
    </span></span>
  3. Sensibler Informationsschutz <br> Speichern Sie API-Schlüssel, Service-Token von Drittanbietern usw. in Umgebungsvariablen, um Hartcode im Code zu vermeiden und die Sicherheit zu verbessern.


4. Vorsichtsmaßnahmen und Best Practices

  1. Aktionsbereich

    • Die von Putenv festgelegten Umgebungsvariablen sind nur für den aktuellen PHP -Prozess gültig und werden nicht in die Systemumgebung bestehen.

    • Wenn Sie möchten, dass die Umgebungsvariablen nach dem Neustart des Servers gültig bleiben, sollten Sie sie über die Konfigurationsdatei des Betriebssystems festlegen (z. B. .bashrc oder .env -Datei).

  2. Kompatibilität

    • Die Leistung ist im CLI -Modus und im Webmodus konsistent, aber einige verwaltete Umgebungen können Einschränkungen für Putenv aufweisen.

  3. Empfohlene Praktiken

    • Verwenden Sie .EnV -Dateien + PHP -Loader (z. B. VLUCAS/PHPDOTENV -Bibliothek), um Umgebungsvariablen einheitlich zu verwalten.

    • Holen Sie sich Variablen nur durch Getenv im Code und vermeiden Sie die harte Codierung.