parse credentials from PHP configuration file Code Answer

Hello Developer, Hope you guys are doing great. Today at Tutorial Guruji Official website, we are sharing the answer of parse credentials from PHP configuration file without wasting too much if your time.

The question is published on by Tutorial Guruji team.

I’d like to write bash script to parse data from a configuration file. I searched for this but without finding something I could modify to suit my needs.

Joomla! config file:

   public $access = '1';
   public $debug = '0';
   public $debug_lang = '0';
   public $dbtype = 'mysqli';
   public $host = 'localhost';
   public $user = 'template';
   public $password = 'template';
   public $db = 'template_druha';
   public $dbprefix = 'dsf1i_';
   public $live_site = '';
   public $secret = '2w9gHzPb4HfAs2Y9';
   public $gzip = '0';
   public $error_reporting = 'default';

I’d like to parse the database credentials on lines with "$user" and "$password" and store them in a variable. What is the best practice?

Answer

With GNU grep, you could do:

user=$(grep -oP "$user.+?'K[^']+" file)
pass=$(grep -oP "$password.+?'K[^']+" file)

The -P enables Perl Compatible Regular Expressions, which give us K (ignore anything matched so far). The -o means “only print the matching portion of the line. Then, we search for $var (we need three , to avoid expanding the variable and to avoid the $ being taken as part of the regex), a single quote and one or more non-' characters until the next '.

Alternatively, you could use awk:

user=$(awk -F"'" '/$user/{print $2}' file)
pass=$(awk -F"'" '/$password/{print $2}' file)

Here, we are setting the field delimiter to ', so the value of the variable will be the second field. The awk command prints the second field of matching lines.

We are here to answer your question about parse credentials from PHP configuration file - If you find the proper solution, please don't forgot to share this with your team members.

Related Posts

Tutorial Guruji