Last active
December 24, 2018 15:31
-
-
Save sirkitree/5129947 to your computer and use it in GitHub Desktop.
Parse a PHP file with Node.js and convert an array defined in the PHP script into a JSON object which the Node app can use.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var runner = require('child_process'); | |
runner.exec( | |
'php -r \'include("settings.php"); print json_encode($databases);\'', | |
function (err, stdout, stderr) { | |
var connection = JSON.parse(stdout).default.default; | |
console.log(connection.database); | |
// result botdb | |
} | |
); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$databases['default']['default'] = array( | |
'driver' => 'mysql', | |
'database' => 'botdb', | |
'username' => 'botuser', | |
'password' => 'botpass', | |
'host' => 'localhost', | |
'prefix' => '', | |
); | |
Hi @sirkitree,
Instead using child_process, you could also use this js library that can parse php - may be more rapid, use less memory and avoid php dependency (+ could be syntax errors tolerant)
I'm working on this too. But I got error 'php' is not recognized as an internal or external command, Then I add php path in environmental variables, still same error. Any help...?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
For the
-r
option in php, see http://www.php.net/manual/en/features.commandline.options.phpFor
child_process.exec
in node, see http://nodejs.org/api/all.html#all_child_process_exec_command_options_callback