PHP学习笔记(1)(每天进步一点点)
1. 基本的 PHP 语法
示例代码:
<html>
<body>
<?php
echo "Hello World";
?>
</body>
</html>
PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。
有两种通过 PHP 来输出文本的基础指令:echo 和 print。在上面的例子中,我们使用了 echo 语句来输出文本 "Hello World"。
2. PHP 中的变量
变量用于存储值,比如数字、文本字符串或数组。
一旦设置了某个变量,我们就可以在脚本中重复地使用它。
PHP 中的所有变量都是以 $ 符号开始的。
在 PHP 中设置变量的正确方法是:
例:$var_name = value;
3. 并置运算符(Concatenation Operator)
在 PHP 中,只有一个字符串运算符。
并置运算符 (.) 用于把两个字符串值连接起来。
要把两个变量连接在一起,请使用这个点运算符 (.) :
<?php
$txt1="Hello World";
$txt2="1234";
echo $txt1 . " " . $txt2;
?>
以上代码的输出:
Hello World 1234您可以看到,我们在上面的例子中使用了两次并置运算符。这是由于我们需要插入第三个字符串。
为了分隔这两个变量,我们在 $txt1 与 $txt2 之间插入了一个空格。
4.使用 strpos() 函数
strpos() 函数用于在字符串内检索一段字符串或一个字符。
如果在字符串中找到匹配,该函数会返回第一个匹配的位置。如果未找到匹配,则返回 FALSE。
让我们试一下,是不是能在字符串中找到子字符串 "world":
<?php
echo strpos("Hello world!","world");
?>
以上代码的输出是:
6
正如您看到的,在我们的字符串中,字符串 "world" 的位置是 6。返回 6 而不是 7,是由于字符串中的首个位置的 0,而不是 1。
5. 数值数组
数值数组存储的每个元素都带有一个数字 ID 键。
可以使用不同的方法来创建数值数组:
例子 1
在这个例子中,会自动分配 ID 键:
$names = array("Peter","Quagmire","Joe");
例子 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
6. 多维数组
在多维数组中,主数组中的每个元素也是一个数组。在子数组中的每个元素也可以是数组,以此类推。
例子 1
在本例中,我们创建了一个带有自动分配的 ID 键的多维数组:
$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
)
)
例子 2
让我们试着显示上面的数组中的一个单一的值:
echo "Is " . $families['Griffin'][2] .
" a part of the Griffin family?";
以上代码的输出:
Is Megan a part of the Griffin family?
7. 创建 PHP 函数
1) 所有的函数都使用关键词 "function()" 来开始
2) 命名函数 - 函数的名称应该提示出它的功能。函数名称以字母或下划线开头。
3) 添加 "{" - 开口的花括号之后的部分是函数的代码。
4) 插入函数代码
5) 添加一个 "}" - 函数通过关闭花括号来结束。
例子
一个简单的函数,在其被调用时能输出我的名称的:
<html>
<body>
<?php
function writeMyName()
{
echo "David Yang";
}
writeMyName();
?>
</body>
</html>
8. 使用 PHP 函数
现在,我们要在 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.
9. PHP 函数 - 添加参数
我们的第一个函数是一个非常简单的函数。它只能输出一个静态的字符串。
通过可以添加参数,我们向函数添加更多的功能。参数类似一个变量。
您可能注意到了,函数名称后面有一个括号,比如 writeMyName()。参数就是在括号中规定的。
例子 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.
例子 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...
10. PHP 函数 - 返回值
函数也能用于返回值。
例子
<html>
<body>
<?php
function add($x,$y)
{
$total = $x + $y;
return $total;
}
echo "1 + 16 = " . add(1,16);
?>
</body>
</html>
以上代码的输出:
1 + 16 = 17
11.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" 文件类似这样:
<body>
Welcome <?php echo $_POST["name"]; ?>.<br />
You are <?php echo $_POST["age"]; ?> years old.
</body>
</html>
上面这个脚本的输出样本类似这样:
Welcome John.
You are 28 years old.
12.表单验证
应该在任何可能的时候对用户输入进行验证。客户端的验证速度更快,并且可以减轻服务器的负载。
不过,任何流量很高以至于不得不担心服务器资源的站点,也有必要担心站点的安全性。如果表单访问的是数据库,就非常有必要采用服务器端的验证。
在服务器验证表单的一种好的方式是,把表单传给它自己,而不是跳转到不同的页面。这样用户就可以在同一张表单页面得到错误信息。用户也就更容易发现错误了。
$_GET 变量
$_GET 变量是一个数组,内容是由 HTTP GET 方法发送的变量名称和值。
$_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!
$_REQUEST 变量
PHP 的 $_REQUEST 变量包含了 $_GET, $_POST 以及 $_COOKIE 的内容。PHP 的 $_REQUEST 变量可用来取得通过 GET 和 POST 方法发送的表单数据的结果。
例子
Welcome <?php echo $_REQUEST["name"]; ?>.<br />
You are <?php echo $_REQUEST["age"]; ?> years old!
$_POST 变量用于收集来自 method="post" 的表单中的值。
$_POST 变量
$_POST 变量是一个数组,内容是由 HTTP POST 方法发送的变量名称和值。
$_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!
为什么使用 $_POST?
· 通过 HTTP POST 发送的变量不会显示在 URL 中。
· 变量没有长度限制。
不过,由于变量不显示在 URL 中,所有无法把页面加入书签。
(本文仅供个人复习参考之用,无其他目的)