PHP入门

以下代码或教程来自W3Cschool。

 

一、PHP简介

PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。

PHP 文件可包含文本、HTML 标签以及脚本。PHP 文件中的脚本可在服务器上执行。

 

 

二、PHP是什么

1.PHP 指 PHP:超文本预处理器(译者注:PHP: Hypertext Preprocessor,递归命名)

2.PHP 是一种服务器端的脚本语言,类似 ASP

3.PHP 脚本在服务器上执行

4.PHP 支持很多数据库(MySQL、Informix、Oracle、Sybase、Solid、PostgreSQL、Generic ODBC 等等)

5.PHP 是一个开源的软件(open source software,OSS)

 

6.PHP 可免费下载使用

 

 

三、什么是PHP文件

1.PHP 文件可包含文本、HTML 标签以及脚本

2.PHP 文件向浏览器返回纯粹的 HTML

 

3.PHP 文件的文件后缀是 ".php"、".php3" 或 ".phtml"

 

 

四、PHP语法

您无法在浏览器中通过查看源文档的方式来查看 PHP 的源代码 - 您只能看到 PHP 文件的输出,即纯粹的 HTML。这是因为在结果返回浏览器之前,脚本就已经在服务器执行了。

 

1.基本的 PHP 语法

a. PHP 的脚本块以 <?php 开始,以 ?> 结束。您可以把 PHP 的脚本块放置在文档中的任何位置。

 b.当然,在支持简写的服务器上,您可以使用 <? 和 ?> 来开始和结束脚本块。 

 

 c.不过,为了达到最好的兼容性,我们推荐您使用标准形式 (<?php),而不是简写形式。

 

<?php

?>

 

d.PHP 文件通常会包含 HTML 标签,就像一个 HTML 文件,以及一些 PHP 脚本代码。

e.一段简单的 PHP 脚本,它可以向浏览器输出文本 "Hello World"。

 

<html>
	<body>
		<?php
			echo "Hello World";
		?>
	</body>
</html>

 

f.PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。

g.有两种通过 PHP 来输出文本的基础指令:echoprint

 

2.PHP中的注释

在 PHP 中,我们使用 // 来编写单行注释,或者使用 /* 和 */ 来编写大的注释块。

<html>
	<body>
		<?php

		//This is a comment

		/*
			This is
			a comment
			block
		*/

		?>
	</body>
</html>

 

 

五、PHP变量

1.PHP中的变量

a.变量用于存储值,比如数字、文本字符串或数组。

b.一旦设置了某个变量,我们就可以在脚本中重复地使用它。

c.PHP 中的所有变量都是以 $ 符号开始的。

d.在 PHP 中设置变量的正确方法是:

 

$var_name = value;

 

 e.试着创建一个存有字符串的变量,和一个存有数值的变量:

 

<?php
	$txt = "Hello World!";
	$number = 16;
?>

 

2.PHP 是一门松散类型的语言(Loosely Typed Language),即弱类型

a.在 PHP 中,不需要在设置变量之前声明该变量。

b.在上面的例子中,不必向 PHP 声明该变量的数据类型。

c.根据变量被设置的方式,PHP 会自动地把变量转换为正确的数据类型。

d.在强类型的编程语言中,必须在使用前声明变量的类型和名称。

e.在 PHP 中,变量会在使用时被自动声明。

 

3.变量的命名规则

a.变量名必须以字母或下划线 "_" 开头。

b.变量名只能包含字母数字字符以及下划线。

c.变量名不能包含空格。如果变量名由多个单词组成,那么应该使用下划线进行分隔(比如 $my_string),或者以大写字母开头(比如 $myString)。

 

 

六、PHP字符串

1.PHP 中的字符串

a.字符串变量用于包含字符串的值。

b.在创建字符串之后,我们就可以对它进行操作了。可以直接在函数中使用字符串,或者把它存储在变量中。

c.在下面,PHP 脚本把字符串 "Hello World" 赋值给名为 $txt 的字符串变量:

 

<?php
	$txt="Hello World";
	echo $txt;
?>

 

以上代码输出:Hello World

 

2.并置运算符(Concatenation Operator)

a.在 PHP 中,只有一个字符串运算符。

b.并置运算符 (.) 用于把两个字符串值连接起来。

c.要把两个变量连接在一起,请使用这个点运算符 (.) :

 

<?php
	$txt1="Hello World";
	$txt2="1234";
	echo $txt1 . " " . $txt2;
?>

 

以上代码输出:Hello World 1234

相当于Java中的(+)号。

 

3.使用 strlen() 函数

a.strlen() 函数用于计算字符串的长度。

b.算出字符串 "Hello world!" 的长度:

 

<?php
	echo strlen("Hello world!");
?>

 

以上代码的输出:12

 

e.字符串的长度信息常常用在循环或其他函数中,因为那时确定字符串何时结束是很重要的(例如,在循环中,我们需要在字符串中的最后一个字符之后结束循环)。

 

4.使用 strpos() 函数

a.strpos() 函数用于在字符串内检索一段字符串或一个字符。

b.如果在字符串中找到匹配,该函数会返回第一个匹配的位置。如果未找到匹配,则返回 FALSE。

例如:能在字符串中找到子字符串 "world":

 

<?php
	echo strpos("Hello world!","world");
?> 

 

以上代码的输出是:6

在字符串中,字符串 "world" 的位置是 6。返回 6 而不是 7,是由于字符串中的首个位置是 0,而不是 1。

 

5.完整的 PHP String 参考手册

http://www.w3school.com.cn/php/php_ref_string.asp

 

 

七、PHP运算符

基本上和Java的差不多。

http://www.w3school.com.cn/php/php_operators.asp

 

 

八、PHP If...Else 语句

基本上和Java的差不多。

http://www.w3school.com.cn/php/php_if_else.asp

 

 

九、PHP Switch 语句

工作原理:

a.对表达式(通常是变量)进行一次计算

b.把表达式的值与结构中 case 的值进行比较

c.如果存在匹配,则执行与 case 关联的代码

d.代码执行后,break 语句阻止代码跳入下一个 case 中继续执行

e.如果没有 case 为真,则使用 default 语句

 

<?php
	switch ($x) {
		case 1 :
			echo "Number 1";
			break;
		case 2 :
			echo "Number 2";
			break;
		case 3 :
			echo "Number 3";
			break;
		default :
			echo "No number between 1 and 3";
	}
?>

 

 

十、PHP数组

1.什么是数组

无需很多相似的变量,你可以把数据作为元素存储在数组中。

数组中的元素都有自己的 ID,因此可以方便地访问它们。

有三种数组类型:

a.数值数组

带有数字 ID 键的数组

b.关联数组

数组中的每个 ID 键关联一个值

c.多维数组

包含一个或多个数组的数组

 

2.数值数组

a.数值数组存储的每个元素都带有一个数字 ID 键。

b.可以使用不同的方法来创建数值数组:

c.例子1,在这个例子中,会自动分配 ID 键:

 

$names = array("Peter","Quagmire","Joe");

 

d.例子2,在这个例子中,会自动分配 ID 键:

 

$names[0] = "Peter";
$names[1] = "Quagmire";
$names[2] = "Joe";

 

可以在脚本中使用这些 ID 键:

<?php
	$names[0] = "Peter";
	$names[1] = "Quagmire";
	$names[2] = "Joe";
	echo $names[1] . " and " . $names[2] . " are ". $names[0] . "'s neighbors";
?>

 

以上的代码输出:Quagmire and Joe are Peter's neighbors

 

3.关联数组

a.关联数组,它的每个 ID 键都关联一个值。

b.在存储有关具体命名的值的数据时,使用数值数组不是最好的做法。

c.通过关联数组,我们可以把值作为键,并向它们赋值。

d.例子1,我们使用一个数组把年龄分配给不同的人:

 

$ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34);

 

e.例子2,本例与例子 1 相同,不过展示了另一种创建数组的方法:

 

$ages['Peter'] = "32";
$ages['Quagmire'] = "30";
$ages['Joe'] = "34";

 

可以在脚本中使用 ID 键:

 

<?php
	$ages['Peter'] = "32";
	$ages['Quagmire'] = "30";
	$ages['Joe'] = "34";
	echo "Peter is " . $ages['Peter'] . " years old.";
?>

 

以上的脚本输出:Peter is 32 years old.

 

4.多维数组

a.在多维数组中,主数组中的每个元素也是一个数组。在子数组中的每个元素也可以是数组,以此类推。

b.例子1,我们创建了一个带有自动分配的 ID 键的多维数组:

<?php
	$families = array (
		"Griffin" => array (
			"Peter",
			"Lois",
			"Megan"
		),
		"Quagmire" => array (
			"Glenn"
		),
		"Brown" => array (
			"Cleveland",
			"Loretta",
			"Junior"
		)
	);
?>

 

如果输出这个数组的话,应该类似这样:

 

Array
(
[Griffin] => Array
  (
  [0] => Peter
  [1] => Lois
  [2] => Megan
  )
[Quagmire] => Array
  (
  [0] => Glenn
  )
[Brown] => Array
  (
  [0] => Cleveland
  [1] => Loretta
  [2] => Junior
  )
)

 

d.例子2,显示上面的数组中的一个单一的值:

echo "Is " . $families['Griffin'][2] . 
" a part of the Griffin family?"; 

 

以上的代码输出:Is Megan a part of the Griffin family?

 

 

十一、PHP循环

基本和Java的差不多。

http://www.w3school.com.cn/php/php_looping.asp

 

 

十二、PHP函数

在 PHP 中,提供了超过 700 个内建的函数。

 

1.创建PHP函数

a.所有的函数都使用关键词 "function()" 来开始

b.命名函数 - 函数的名称应该提示出它的功能。函数名称以字母或下划线开头。

c.添加 "{" - 开口的花括号之后的部分是函数的代码。

d.插入函数代码

 

e.添加一个 "}" - 函数通过关闭花括号来结束。

 

例子,一个简单的函数,在其被调用时能输出我的名称的:

 

<html>
	<body>
		<?php
			function writeMyName() {
				echo "David Yang";
			}
			writeMyName();
		?>
	</body>
</html>

 

2.使用PHP函数

 

<html>
	<body>
		<?php
			function writeMyName() {
				echo "David Yang";
			}
			echo "Hello world!<br />";
			echo "My name is ";
			writeMyName();
			echo ".<br />That's right, ";
			writeMyName();
			echo " is my name.";
		?>
	</body>
</html>

 

以上代码的输出:

Hello world!

My name is David Yang.

That's right, David Yang is my name.

 

3.PHP函数-添加参数

a.通过可以添加参数,我们向函数添加更多的功能。参数类似一个变量。

b.例子1,输出不同的名字,但姓是相同的:

 

<html>
	<body>
	<?php
		function writeMyName($fname) {
			echo $fname . " Yang.<br />";
		}
		
		echo "My name is ";
		writeMyName("David");
		
		echo "My name is ";
		writeMyName("Mike");
		
		echo "My name is ";
		writeMyName("John");
	?>
	</body>
</html>

 

以上的代码输出:

My name is David Yang.

My name is Mike Yang.

My name is John Yang.

 

c.例子2,下面的函数有两个参数:

 

<html>
	<body>
	<?php
		function writeMyName($fname, $punctuation) {
			echo $fname . " Yang" . $punctuation . "<br />";
		}
		
		echo "My name is ";
		writeMyName("David", ".");
		
		echo "My name is ";
		writeMyName("Mike", "!");
		
		echo "My name is ";
		writeMyName("John", "...");
	?>
	</body>
</html>

 

以上代码输出:

My name is David Yang.

My name is Mike Yang!

My name is John Yang...

 

4.PHP函数-返回值

a.函数也能用于返回值。

b.例子:

<html>
	<body>
	<?php
		function add($x, $y) {
			$total = $x + $y;
			return $total;
		}
		echo "1 + 16 = " . add(1, 16);
	?>
	</body>
</html>

 

以上代码输出:1 + 16 = 17

 

 

十三、PHP表单和用户输入

PHP 的 $_GET 和 $_POST 用于检索表单中的值,比如用户输入。

 

1.PHP表单处理

表单实例:

 

<html>
	<body>
	<form action="welcome.php" method="post">
		Name: <input type="text" name="name" />
		Age: <input type="text" name="age" />
		<input type="submit" />
	</form>
	</body>
</html>

 

上面的 HTML 页面实例包含了两个输入框和一个提交按钮。当用户填写该表单并单击提交按钮时,表单的数据会被送往 "welcome.php" 这个文件。

 

"welcome.php" 文件类似这样:

 

<html>
	<body>
		Welcome <?php echo $_POST["name"]; ?>.<br />
		You are <?php echo $_POST["age"]; ?> years old.
	</body>
</html>

 

上面这个脚本的输出样本类似这样:

Welcome John.

You are 28 years old.

 

 

十四、PHP $_GET

$_GET 变量用于收集来自 method="get" 的表单中的值。

 

1.$_GET 变量

a.$_GET 变量是一个数组,内容是由 HTTP GET 方法发送的变量名称和值。

b.$_GET 变量用于收集来自 method="get" 的表单中的值。从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送的信息量也有限制(最多 100 个字符)。

 

例子:

 

<form action="welcome.php" method="get">
	Name: <input type="text" name="name" />
	Age: <input type="text" name="age" />
	<input type="submit" />
</form>

 

当用户点击提交按钮时,发送的 URL 会类似这样:

http://www.w3school.com.cn/welcome.php?name=Peter&age=37

 

"welcome.php" 文件现在可以通过 $_GET 变量来获取表单数据了(请注意,表单域的名称会自动成为 $_GET 数组中的 ID 键):

 

Welcome <?php echo $_GET["name"]; ?>.<br />
You are <?php echo $_GET["age"]; ?> years old!

 

2.为什么使用 $_GET?

a.注释:在使用 $_GET 变量时,所有的变量名和值都会显示在 URL 中。所以在发送密码或其他敏感信息时,不应该使用这个方法。不过,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。

b.注释:HTTP GET 方法不适合大型的变量值;值是不能超过 100 个字符的。

 

3.$_REQUEST变量

a.PHP 的 $_REQUEST 变量包含了 $_GET, $_POST 以及 $_COOKIE 的内容。

b.PHP 的 $_REQUEST 变量可用来取得通过 GET 和 POST 方法发送的表单数据的结果。

 

例子:

 

Welcome <?php echo $_REQUEST["name"]; ?>.<br />
You are <?php echo $_REQUEST["age"]; ?> years old!

 

 

十五、PHP $_POST

$_POST 变量用于收集来自 method="post" 的表单中的值。

 

1.$_POST 变量

a.$_POST 变量是一个数组,内容是由 HTTP POST 方法发送的变量名称和值。

b.$_POST 变量用于收集来自 method="post" 的表单中的值。从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。

 

例子:

 

<form action="welcome.php" method="post">
	Enter your name: <input type="text" name="name" />
	Enter your age: <input type="text" name="age" />
	<input type="submit" />
</form>

 

当用户点击提交按钮,URL 不会含有任何表单数据,看上去类似这样:

http://www.w3school.com.cn/welcome.php

 

"welcome.php" 文件现在可以通过 $_POST 变量来获取表单数据了(请注意,表单域的名称会自动成为 $_POST 数组中的 ID 键):

 

Welcome <?php echo $_POST["name"]; ?>.<br />
You are <?php echo $_POST["age"]; ?> years old!

 

2.为什么使用 $_POST?

a.通过 HTTP POST 发送的变量不会显示在 URL 中。

b.变量没有长度限制。

c.不过,由于变量不显示在 URL 中,所以无法把页面加入书签。

 

3.$_REQUEST 变量

a.PHP 的 $_REQUEST 变量包含了 $_GET, $_POST 以及 $_COOKIE 的内容。

b.PHP 的 $_REQUEST 变量可用来取得通过 GET 和 POST 方法发送的表单数据的结果。

 

例子:

 

Welcome <?php echo $_REQUEST["name"]; ?>.<br />
You are <?php echo $_REQUEST["age"]; ?> years old!

没有更多推荐了,返回首页