search
HomeBackend DevelopmentPHP TutorialHow to use PHP as a Shell Scripting Language_PHP Tutorial
How to use PHP as a Shell Scripting Language_PHP TutorialJul 15, 2016 pm 01:23 PM
phpshellusedynamichowWilldevelopusyesKnowWeb pageScriptlanguage

We all know that PHP is a very good dynamic web development language (fast speed, short development cycle...). But only a few people realize that PHP can also be used as a language for writing Shell scripts. When PHP is used as a language for writing Shell scripts, it is not as powerful as Perl or Bash, but it has good advantages. Especially for people like me who are familiar with PHP but not very familiar with Perl.
To use PHP as a shell scripting language, you must compile PHP as binary CGI instead of Apache mode; PHP compiled into binary CGI mode has some security issues. For solutions, please refer to the PHP manual ( http://www.php.net).
You may feel uncomfortable writing Shell scripts at first, but you will get better gradually: the only difference between using PHP as a general dynamic web page writing language and as a Shell script language is that a Shell script needs to be written first Line life explains the program path of this script:
#!/usr/local/bin/php -q
We added the parameter "-1" after the PHP execution file, so that PHP will not output HTTPHeader ( If you still need to use the dynamic web page as a Web, then you need to use the header function to output HTTPHeader yourself). Of course, you still need to use PHP's opening and closing tags in the Shell script:

Now let's look at an example to better understand the use of PHP as a Shell scripting language:
#!/usr/local/bin/php -q
print("Hello, world!n");
?>
The above program will simply output " Hello, world!" to the display.
1. Pass the Shell script running parameters to PHP:
As a Shell script, you often add some parameters when running the program. When PHP is a Shell script, there is an embedded array "$argv", use "$ argv" array can easily read the parameters when the Shell script is running ("$argv[1]" corresponds to the first parameter, "$argv[2]" corresponds to the second parameter, and so on) . For example, the following program:
#!/usr/local/bin/php -q
$first_name = $argv[1];
$last_name = $argv[2];
printf("Hello, %s %s! How are you today?n", $first_name, $last_name);
?>
The above code requires two parameters when running, namely First and last name, for example, run like this:
[dbrogdon@artemis dbrogdon]$ scriptname.ph Darrell Brogdon
The Shell script will output on the display:
Hello, Darrell Brogdon! How are you today?
[dbrogdon@artemis dbrogdon]$
When PHP is used as a dynamic web page writing language, it also contains the "$argv" array, but there are some differences from here: when PHP is used as a Shell scripting language, "$argv[0] "corresponds to the file name of the script, and when used for dynamic web page writing, "$argv[1]" corresponds to the first parameter of QueryString.
2. Write an interactive Shell script:
If a Shell script just runs by itself and loses interactivity, then it is meaningless. When PHP is used to write Shell scripts, how to read the information entered by the user? Unfortunately, PHP itself does not have a function or method for reading user input information, but we can follow the example of other languages ​​and write a function "read" for reading user input information:
function read() {
$fp = fopen('/dev/stdin', 'r');
$input = fgets($fp, 255);
fclose($fp);
return $input;
}
?>
It should be noted that the above function can only be used on Unix systems (other systems need to make corresponding changes). The above function will open a file pointer, then read a line of no more than 255 bytes (that's what fgets does), then close the file pointer and return the read information.
Now we can use the function "read" to modify the program 1 we wrote earlier to make it more "interactive":
#!/usr/local/bin/php -q
function read() {
$fp = fopen('/dev/stdin', 'r');
$input = fgets($fp, 255);
fclose($ fp);
return $input;
}
print("What is your first name? ");
$first_name = read();
print("What is your last name ? ");
$last_name = read();
print("nHello, $first_name $last_name! Nice to meet you!n");
?>
Save the above program , run it, and you may see something unexpected: the last line of input becomes three lines! This is because the information returned by the "read" function also includes the ending newline character "n" of each line of the user, which is retained in the last name and first name. To remove the ending newline character, the "read" function needs to be modified:
function read() {
$fp = fopen('/dev/stdin', 'r');
$input = fgets($fp, 255);
fclose( $fp);
$input = chop($input); // Remove trailing blanks
return $input;
}
?>
3. In Shell scripts written in other languages Including Shell scripts written in PHP:
Sometimes we may need to include Shell scripts written in PHP in Shell scripts written in other languages.It's actually very simple. Here is a simple example:
#!/bin/bash
echo This is the Bash section of the code.
/usr/local/bin/php -q print("This is the PHP section of the coden");
?>
EOF
In fact, it calls PHP to parse the following code and then output it; then, then Try the following code:
#!/bin/bash
echo This is the Bash section of the code.
/usr/local/bin/php -q $myVar = 'PHP';
print("This is the $myVar section of the coden");
?>
EOF
You can see the only difference between the two codes The second time I used a variable "$myVar" and tried running it, PHP actually gave an error message: "Parse error: parse error in - on line 2"! This is because the variables in Bash are also "$myVar", and the Bash parser replaces the variables first. To solve this problem, you need to add the "" escape character in front of each PHP variable, so just now The code is modified as follows:
#!/bin/bash
echo This is the Bash section of the code.
/usr/local/bin/php -q $myVar = 'PHP';
print("This is the $myVar section of the coden");
?>
EOF
Well, now you can write your own in PHP Shell script, hope you all goes well.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/446873.htmlTechArticleWe all know that PHP is a very good dynamic web development language (fast speed, short development cycle... ). But only a few people realize that PHP can also be used to write S...
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么读取字符串后几个字符php怎么读取字符串后几个字符Apr 22, 2022 pm 08:31 PM

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么查找字符串是第几位php怎么查找字符串是第几位Apr 22, 2022 pm 06:48 PM

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools