Complete Guide to Executing PHP Code from Command Line: From Basics to Advanced Applications

Nov 22, 2025 · Programming · 9 views · 7.8

Keywords: PHP Command Line | CLI Execution | Code Testing | Interactive Shell | Argument Processing

Abstract: This article provides an in-depth exploration of various methods for executing PHP code in command line environments, including direct code execution using -r and -R switches, interactive shell mode, and code execution through standard input. The paper thoroughly analyzes applicable scenarios, syntax rules, and considerations for each method, offering abundant code examples and best practice recommendations. Additionally, it discusses advanced topics such as PHP CLI SAPI configuration validation, extension loading differences across various SAPI environments, and command-line argument processing, providing comprehensive technical guidance for developers to efficiently utilize PHP in command-line environments.

Overview of PHP Command Line Execution

PHP, as a server-side scripting language, not only runs in web server environments but also provides robust command-line interface (CLI) support. Executing PHP code from the command line offers significant convenience for development, testing, and system administration. This article systematically introduces various methods for PHP command-line execution and their application scenarios.

Methods for Direct PHP Code Execution

The PHP command-line tool provides multiple ways to execute code directly without creating separate PHP files. The most commonly used is the -r switch, which allows direct execution of PHP code snippets from the command line.

Executing Single-Line Code with -r Switch

The -r switch is the most direct way to execute single-line PHP code. Its basic syntax is:

php -r 'PHP code'

It's important to note that when using the -r switch, PHP start and end tags <?php and ?> are not required and will cause parsing errors if included. For example, to check if a function exists:

php -r 'echo function_exists("my_func") ? "function exists" : "function does not exist";'

This command will output function does not exist since the my_func function is not defined in the current environment. After execution, the command returns exit code 0, indicating successful execution.

Processing Multiple Input Lines with -R Switch

For scenarios requiring multiple input line processing, PHP provides the -R switch. This switch executes specified PHP code for each input line:

echo -e "line1\nline2" | php -R 'echo strtoupper($argn)."\n";'

This command converts each input line to uppercase and outputs it.

Interactive Shell Mode

PHP provides an interactive shell mode, activated using the -a switch:

php -a

Upon entering interactive mode, the php > prompt appears, allowing users to input PHP code line by line and see immediate results:

php > echo function_exists("print_r") ? "yes" : "no";
yes
php > $arr = array(1, 2, 3);
php > print_r($arr);
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)

Executing Code Through Standard Input

Beyond direct command-line execution, PHP also supports receiving code through standard input (stdin):

echo '<?php echo "Hello from stdin";' | php

This approach is particularly suitable for dynamically generating PHP code or integrating with other command-line tools.

Environment Configuration and Verification

Before using PHP command-line features, it's essential to ensure proper CLI environment configuration. Verify that PHP is running in command-line interface mode using:

php -i | grep 'API'

The expected output should be:

Server API => Command Line Interface

Extension Loading Differences

It's important to note that different SAPIs (Server APIs) may load different extensions. CLI, CGI, and Apache SAPI might use different php.ini configuration files. View the currently used configuration file with:

php -i | grep ini

Command-Line Argument Processing

In command-line PHP scripts, access passed arguments through the $argv array:

<?php
// script.php
var_dump($argv);
?>

Execute with:

php script.php arg1 arg2

Output:

array(3) {
  [0] =>
  string(9) "script.php"
  [1] =>
  string(4) "arg1"
  [2] =>
  string(4) "arg2"
}

Advanced Application Scenarios

Creating Executable Scripts

In Unix-like systems, create directly executable PHP scripts:

#!/usr/bin/php
<?php
if ($argc != 2) {
    echo "Usage: {$argv[0]} <argument>\n";
    exit(1);
}
echo "Received argument: {$argv[1]}\n";
?>

After setting execution permissions:

chmod +x script.php
./script.php hello

Using Argument Separators

When passing arguments starting with -, use the -- separator:

php script.php -- -h -help

Best Practices and Considerations

When using PHP command-line features, consider the following:

Conclusion

PHP command-line execution capabilities provide developers with a powerful toolset, suitable for everything from simple code testing to complex system scripting. By mastering the use of -r, -R, -a switches, combined with proper argument processing and error control, developers can significantly enhance development efficiency and system management capabilities. In practical applications, it's recommended to choose the most suitable execution method based on specific requirements and follow best practices to ensure code reliability and security.

Copyright Notice: All rights in this article are reserved by the operators of DevGex. Reasonable sharing and citation are welcome; any reproduction, excerpting, or re-publication without prior permission is prohibited.