Php to shell script

PHP is an open source server side scripting Language which originally stood for ‘Personal Home Page‘ now stands for ‘PHP: Hypertext Preprocessor‘, which is a recursive acronym. It is a cross platform scripting language which is highly influenced by C, C++ and Java.

Php to shell script
Php to shell script
Run PHP Codes in Linux Command Line – Part 1

A PHP Syntax is very similar to Syntax in C, Java and Perl Programming Language with a few PHP-specific feature. PHP is used by some 260 Million websites, as of now. The current stable release is PHP Version 5.6.10.

PHP is HTML embedded script which facilitates developers to write dynamically generated pages quickly. PHP is primarily used on Server-side (and JavaScript on Client Side) to generate dynamic web pages over HTTP, however you will be surprised to know that you can execute a PHP in a Linux Terminal without the need of a web browser.

This article aims at throwing light on the command-line aspect of PHP scripting Language.

1. After PHP and Apache2 installation, we need to install PHP command Line Interpreter.

# apt-get install php5-cli 			[Debian and alike System)
# yum install php-cli 				[CentOS and alike System)

Next thing, we do is to test a php (if installed correctly or not) commonly as by creating a file

# php -f /var/www/html/infophp.php
1 at location ‘/var/www/html‘ (Apache2 working directory in most of the distros), with the content
# php -f /var/www/html/infophp.php
2, simply by running the below command.

# echo '<?php phpinfo(); ?>' > /var/www/html/infophp.php

and then point your browser to http://127.0.0.1/infophp.php which opens this file in web browser.

Php to shell script
Php to shell script
Check PHP Info

Same results can be obtained from the Linux terminal without the need of any browser. Run the PHP file located at ‘/var/www/html/infophp.php‘ in Linux Command Line as:

# php -f /var/www/html/infophp.php
Php to shell script
Php to shell script
Check PHP info from Commandline

Since the output is too big we can pipeline the above output with ‘less‘ command to get one screen output at a time, simply as:

# php -f /var/www/html/infophp.php | less
Php to shell script
Php to shell script
Check All PHP Info

Here Option ‘-f‘ parse and execute the file that follows the command.

2. We can use

# php -f /var/www/html/infophp.php
3 which is a very valuable debugging tool directly on the Linux command-line without the need of calling it from a file, simply as:

# php -r 'phpinfo();'
Php to shell script
Php to shell script
PHP Debugging Tool

Here the option ‘-r‘ run the PHP Code in the Linux Terminal directly without tags

# php -f /var/www/html/infophp.php
4 and
# php -f /var/www/html/infophp.php
5.

3. Run PHP in Interactive mode and do some mathematics. Here option ‘-a‘ is for running PHP in Interactive Mode.

# php -a

Interactive shell

php > echo 2+3;
5
php > echo 9-6;
3
php > echo 5*4;
20
php > echo 12/3;
4
php > echo 12/5;
2.4
php > echo 2+3-1;
4
php > echo 2+3-1*3;
2
php > exit

Press ‘exit‘ or ‘ctrl+c‘ to close PHP interactive mode.

Php to shell script
Php to shell script
Enable PHP Interactive Mode

4. You can run a PHP script simply as, if it is a shell script. First Create a PHP sample script in your current working directory.

# echo -e '#!/usr/bin/php\n<?php phpinfo(); ?>' > phpscript.php

Notice we used

# php -f /var/www/html/infophp.php
6 in the first line of this PHP script as we use to do in shell script (/bin/bash). The first line #!/usr/bin/php tells the Linux Command-Line to parse this script file to PHP Interpreter.

Second make it executable as:

# chmod 755 phpscript.php

and run it as,

# ./phpscript.php

5. You will be surprised to know you can create simple functions all by yourself using the interactive shell. Here is the step-by step instruction.

Start PHP interactive mode.

# php -a

Create a function and name it addition. Also declare two variables $a and $b.

# echo '<?php phpinfo(); ?>' > /var/www/html/infophp.php
0

Use curly braces to define rules in between them for this function.

# echo '<?php phpinfo(); ?>' > /var/www/html/infophp.php
1

Define Rule(s). Here the rule say to add the two variables.

# echo '<?php phpinfo(); ?>' > /var/www/html/infophp.php
2

All rules defined. Enclose rules by closing curly braces.

# echo '<?php phpinfo(); ?>' > /var/www/html/infophp.php
3

Test function and add digits 4 and 3 simply as :

# echo '<?php phpinfo(); ?>' > /var/www/html/infophp.php
4
Sample Output
# echo '<?php phpinfo(); ?>' > /var/www/html/infophp.php
5

You may run the below code to execute the function, as many times as you want with different values. Replace a and b with values of yours.

# echo '<?php phpinfo(); ?>' > /var/www/html/infophp.php
6
# echo '<?php phpinfo(); ?>' > /var/www/html/infophp.php
7
Sample Output
# echo '<?php phpinfo(); ?>' > /var/www/html/infophp.php
8
Php to shell script
Php to shell script
Create PHP Functions

You may run this function till you quit interactive mode (Ctrl+z). Also you would have noticed that in the above output the data type returned is NULL. This can be fixed by asking php interactive shell to return in place of echo.

Simply replace the ‘echo‘ statement in the above function with ‘return‘

Replace

# echo '<?php phpinfo(); ?>' > /var/www/html/infophp.php
2

with

# php -f /var/www/html/infophp.php
0

and rest of the things and principles remain same.

Here is an Example, which returns appropriate data-type in the output.

Php to shell script
Php to shell script
PHP Functions

Always Remember, user defined functions are not saved in history from shell session to shell session, hence once you exit the interactive shell, it is lost.

Hope you liked this session. Keep Connected for more such posts. Stay Tuned and Healthy. Provide us with your valuable feedback in the comments. Like ans share us and help us get spread.

How to run a shell script from PHP?

The shell_exec() function is an inbuilt function in PHP which is used to execute the commands via shell and return the complete output as a string. The shell_exec is an alias for the backtick operator, for those used to *nix. If the command fails return NULL and the values are not reliable for error checking.

How to use shell_exec in PHP?

echo shell_exec("gunzip -c -t $path_to_backup_file"); Should work: echo shell_exec("gunzip -c -t $path_to_backup_file 2>&1"); In the above example, a line break at the beginning of the gunzip output seemed to prevent shell_exec printing anything else.

How to run exec command in PHP?

See Also ¶.
system() - Execute an external program and display the output..
passthru() - Execute an external program and display raw output..
escapeshellcmd() - Escape shell metacharacters..
pcntl_exec() - Executes specified program in current process space..
backtick operator..

How to run Linux command in PHP script?

You can execute linux commands within a php script - all you have to do is put the command line in brackits (`). And also concentrate on exec() , this and shell_exec() .. Save this answer.