2016-06-09 19 views
1

Wie kann ich ini-Datei mit .php Erweiterung analysieren. zB config.ini.php unten sind Inhaltsdatei wie darin.PHP: Parse ini Datei mit .php Erweiterung

<?php 
[Session] 
SessionTimeout=1200 
ActivityTimeout=600 
CookieTimeout=0 
SessionNameHandler=custom 
Handler=SessionHandlerDB 
?> 

versuchte ich parse_ini_file seine nicht funktioniert.

hier ist der Fehler i Warnung bin immer: Syntaxfehler, unerwartete end_of_line, erwartet '='

ich einen Rahmen verwende, in dem ich nicht PHP-Tag entfernen können.

+6

Entfernen Sie die PHP-Tags – jszobody

+0

Ich kann das nicht tun. sein Teil von cms. wir verwenden es in anderem Abschnitt. –

+6

Sie müssen. Es ist kein gültiger PHP-Code. Sie können nur gültigen PHP-Code in PHP-Tags einfügen. Und die Tags sind keine gültige INI-Syntax. – jszobody

Antwort

2
<?php 
$configContent = file_get_contents('config.ini.php'); 
$iniContent = preg_replace('/<\?php|\?>/m', '', $configContent); 
var_export(parse_ini_string($iniContent)); 

Ergebnis:

array (
    'SessionTimeout' => '1200', 
    'ActivityTimeout' => '600', 
    'CookieTimeout' => '0', 
    'SessionNameHandler' => 'custom', 
    'Handler' => 'SessionHandlerDB', 
) 
+1

Upvote für die kreative Lösung. Ich fordere das OP zwar nachdrücklich auf, seinen gesamten Ansatz zu überdenken. – jszobody

+0

Ja, ich stimme zu, dass dieser Ansatz sehr seltsam ist. –

0

Wenn Sie nicht die PHP-Tags entfernen können, einen besseren Ansatz:

<?php 
return [ 
    'session' => [ 
     'SessionTimeout'  => 1200, 
     'ActivityTimeout' => 600, 
     'CookieTimeout'  => 0, 
     'SessionNameHandler' => 'custom', 
     'Handler'   => 'SessionHandlerDB', 
    ] 
]; 

Verwendung:

$config = require 'config.inc.php'; 
+0

Ich frage mich, warum das OP die PHP-Tags nicht entfernen kann. Wenn er das nicht kann, kann er überhaupt die Datei bearbeiten? –