php.ini Werte auslesen klappt nicht bei allen Werten

Zero2000

Erfahrenes Mitglied
Hallo

ich möchte mir aus der php.ini die Einstellung mancher Werte anzeigen lassen, jedoch zeigt er mir bei manchen Werten nichts an und das obwohl in der php.ini ein eindeutiger Wert steht. Vielleicht mache ich aber mal wieder alles falsch. Mein geschriebse sieht so aus:
PHP:
<?php
echo 'safe_mode = ' . ini_get('safe_mode'). "<br>";
echo 'display_errors = ' . ini_get('display_errors') . "<br>";
echo 'file_uploads = ' . ini_get('file_uploads') . "<br>";
echo 'magic_quotes_runtime = ' . ini_get('magic_quotes_runtime') . "<br>";
echo 'register_globals = ' . ini_get('register_globals') . "<br>";
echo 'output_buffering = ' . ini_get('output_buffering') . "<br>";
echo 'session.auto_start = ' . ini_get('session.auto_start') . "<br>";
?>
Also nix aufregendes eigentlich, nur zu display_errors, file_uploads und session.auto_start bekomme ich Werte. output_buffering hat als einziges keinen Wert in der php.ini --> no value. Da weis ich nicth was er mir anzeigen würde.

Kann mir da jemand weiterhelfen?

MfG
Maik
 
Vermutlich enthalten die Werte, die dir nicht angezeigt werden, boolsche Werte, welche bei einer direkten Ausgabe eine leere Zeichenkette bewirken. In dem Fall wandle sie am besten in Ganzzahlen um:
PHP:
<?php
echo 'safe_mode = ' . (int) ini_get('safe_mode'). "<br>";
echo 'display_errors = ' . ini_get('display_errors') . "<br>";
echo 'file_uploads = ' . ini_get('file_uploads') . "<br>";
echo 'magic_quotes_runtime = ' . (int) ini_get('magic_quotes_runtime') . "<br>";
echo 'register_globals = ' . (int) ini_get('register_globals') . "<br>";
echo 'output_buffering = ' . (int) ini_get('output_buffering') . "<br>";
echo 'session.auto_start = ' . ini_get('session.auto_start') . "<br>";
?>
 
Tatsächlich. Wär ich nie drauf gekommen, da ja in der php.ini bei diesen Werten auch nur On oder Off steht, jedoch bin ich noch nicht ganz so glücklich mit dieser Lösung, da ich bei manchen Werten im Vorfeld ja nicht weis ob es ein numerischer Wert oder ein alphanumerischer Wert ist den die Variable hat.

Wie lese ich übrigens aus ob Zlib aktiv ist? Zlib steht auf enabled unter dem Punkt ZLib Support. Ich kann aber ZLib Support nicht schreiben da kommt dann nix. Vielleicht gibt es ja auch ein tutorial darüber wie man die php.ini ausliest, was ich zwar nicht glaube...

MfG
Maik
 
Hallo!

.....da ich bei manchen Werten im Vorfeld ja nicht weis ob es ein numerischer Wert oder ein alphanumerischer Wert ist den die Variable hat.
Guckst Du hier.

Wie lese ich übrigens aus ob Zlib aktiv ist? Zlib steht auf enabled unter dem Punkt ZLib Support. Ich kann aber ZLib Support nicht schreiben da kommt dann nix.
phpinfo() verrät dass sich die notwendige Info ganz oben unter "Registered Stream Filters" befindet.
stream_get_filters() listet Dir alle dort befindlichen Einträge als Array auf..... dieses brauchst Du dann nurnoch durchsuchen.
PHP:
<?php
error_reporting(E_ALL);

$search = array("foo", "zlib.*", "string.toupper", "bzip2.*", "bar");

for($i = 0; $i < count($search); $i++) {
    if( in_array($search[$i], stream_get_filters()) ) {
        echo $search[$i]." ist aktiviert.<br>";
    } else {
        echo $search[$i]." ist <b>nicht</b> aktiviert.<br>";
    }
}
?>
Im $search-Array habe ich ein paar Beispiele.
"foo" und "bar" kommt natürlich nicht in stream_get_filters() vor. ;)
Wichtig ist dass der zu suchende String im $search-Array genau so geschrieben ist, wie ihn phpinfo() anzeigt.

Vielleicht gibt es ja auch ein tutorial darüber wie man die php.ini ausliest, was ich zwar nicht glaube...
Dürfte für den normalen Anwender eher zu komplex werden..... und der Profi wird wohl kein Tutorial benötigen.

Gruss Dr Dau
 
Hallo

ansonsten geht auch immer noch das hier:
PHP:
<?php
echo 'safe_mode = ' .var_export( ini_get('safe_mode'),true). "<br>";
echo 'display_errors = ' . var_export(ini_get('display_errors') ,true). "<br>";
echo 'file_uploads = ' . var_export(ini_get('file_uploads'),true) . "<br>";
echo 'magic_quotes_runtime = ' .var_export( ini_get('magic_quotes_runtime') ,true). "<br>";
echo 'register_globals = ' . var_export(ini_get('register_globals') ,true). "<br>";
echo 'output_buffering = ' . var_export(ini_get('output_buffering') ,true). "<br>";
echo 'session.auto_start = ' . var_export(ini_get('session.auto_start') ,true). "<br>";
?>
 
Hallo

hast Du das getestet? Bei mir ergibt das dann folgendes:
HTML:
safe_mode = ''
display_errors = '1'
file_uploads = '1'
magic_quotes_runtime = ''
register_globals = ''
output_buffering = ''
session.auto_start = '0'

Bin mit den Erweiterungen dafür weiter gekommen. Meine Freunde waren, bzw. sind, extension_loaded und function_exists. Also mit
PHP:
<?php echo extension_loaded('zlib') ? 'Ja' : 'Nein' ; ?>
kann ich mir ausgeben lassen ob zlib geladen ist oder nicht. Das gleiche geht dann halt auch mit xml oder mysql_connect
Und mit echo phpversion(); lasse ich mir die PHP-Version ausgeben, aber das wusstet Ihr ja alle schon. ;)
 
Zurück