[PHP] php基础,
一、php程序结构
<!DOCTYPE html>
<html>
<body>
<?php
echo "我的第一段 PHP 脚本!";
?>
</body>
</html>
二、php中的注释<?php
// 这是单行注释
# 这也是单行注释
/*
这是多行注释块
它横跨了
多行
*/
?>
三、php中的大小写在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感。
<?php
ECHO "Hello World!<br>";
echo "Hello World!<br>";
EcHo "Hello World!<br>";
?>
不过在 PHP 中,所有变量都对大小写敏感。在下面的例子中,只有第一条语句会显示 $color 变量的值
<?php
$color="red";
echo "My car is " . $color . "<br>";
echo "My house is " . $COLOR . "<br>";
echo "My boat is " . $coLOR . "<br>";
?>
四、php中的变量
<?php
$txt="Hello world!";
$x=5;
$y=10.5;
?>
4.1 全局变量
<?php
$x=5;
$y=10;
function myTest() {
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; // 输出 15
?>
PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量
<?php
$x=5;
$y=10;
function myTest() {
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
myTest();
echo $y; // 输出 15
?>
4.2 静态变量
<?php
function myTest() {
static $x=0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
五、php的输出
echo(),print()函数
echo - 能够输出一个以上的字符串
print - 只能输出一个字符串,并始终返回 1
echo "Hello world!<br>";
print "Hello world!<br>";
六、php的数据类型
6.1 PHP 字符串
$x = "Hello world!";
6.2 PHP 整数
$x = 5985;
$x = -345; // 负数
$x = 0x8C; // 十六进制数
$x = 047; // 八进制数
6.3 PHP 浮点数
$x = 10.365;
$x = 2.4e3;
$x = 8E-5;
6.4 PHP 逻辑
$x=true;
$y=false;
6.5 PHP 数组
$cars=array("Volvo","BMW","SAAB");
6.6 PHP 对象
<?php
class Car
{
var $color;
function Car($color="green") {
$this->color = $color;
}
function what_color() {
return $this->color;
}
}
?>
6.7 PHP NULL 值<?php
$x="Hello world!";
$x=null;
var_dump($x);
?>
七、php字符串函数举例strlen() 函数返回字符串的长度,以字符计。
echo strlen("Hello world!");
以上代码的输出是:12strpos() 函数用于检索字符串内指定的字符或文本。
echo strpos("Hello world!","world");
以上代码的输出是:6
八、php常量
下例创建了一个对大小写敏感的常量
define("GREETING", "Welcome to W3School.com.cn!");
下例创建了一个对大小写不敏感的常量
define("GREETING", "Welcome to W3School.com.cn!", true);
九、if语句
<?php
$t=date("H");
if ($t<"10") {
echo "Have a good morning!";
} elseif ($t<"20") {
echo "Have a good day!";
} else {
echo "Have a good night!";
}
?>
十、switch语句
<?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";
}
?>
十一、while循环
11.1 while
<?php
$x=1;
while($x<=5) {
echo "这个数字是:$x <br>";
$x++;
}
?>
11.2 do-while
<?php
$x=1;
do {
echo "这个数字是:$x <br>";
$x++;
} while ($x<=5);
?>
十二、for循环
12.1 for
<?php
for ($x=0; $x<=10; $x++) {
echo "数字是:$x <br>";
}
?>
12.2 foreach
<?php
$colors = array("red","green","blue","yellow");
foreach ($colors as $value) {
echo "$value <br>";
}
?>
十三、php函数
<?php
function sum($x,$y) {
$z=$x+$y;
return $z;
}
echo "5 + 10 = " . sum(5,10) . "<br>";
echo "2 + 4 = " . sum(2,4);
?>
十四、php数组
14.1 索引数组
<?php
$cars=array("Volvo","BMW","SAAB");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
14.2 获得数组的长度 - count() 函数
<?php
$cars=array("Volvo","BMW","SAAB");
echo count($cars);
?>
14.3 遍历索引数组
<?php
$cars=array("Volvo","BMW","SAAB");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++) {
echo $cars[$x];
echo "<br>";
}
?>
14.4 PHP 关联数组
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>
14.5 遍历关联数组
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
foreach($age as $x=>$x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
十五、php排序sort() - 以升序对数组排序
rsort() - 以降序对数组排序
asort() - 根据值,以升序对关联数组进行排序
ksort() - 根据键,以升序对关联数组进行排序
arsort() - 根据值,以降序对关联数组进行排序
krsort() - 根据键,以降序对关联数组进行排序
十六、php超全局变量
16.1 $GLOBALS — 引用全局作用域中可用的全部变量
<?php
$x = 75;
$y = 25;
function addition() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
16.2 $_SERVER 这种超全局变量保存关于报头、路径和脚本位置的信息<?php
echo $_SERVER['PHP_SELF'];
?>
16.3 $_REQUEST 用于收集通过get和post提交的数据
$name = $_REQUEST['fname'];
16.4 $_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
$name = $_POST['fname'];
echo $name;
?>
</body>
</html>
16.5 PHP $_GET可用于收集提交 HTML 表单 (method="get") 之后的表单数据。$_GET 也可以收集 URL 中的发送的数据。
前端:
<a href="test_get.php?subject=PHP&web=W3school.com.cn">测试 $GET</a>
后端:
<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>
十七、php表单
前端表单
<html>
<body>
<form action="welcome.php" method="post"> post也可以换成get
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
后端脚本
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br> $_POST可以换成$_GET
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
十八、php多维数组
<?php
$cars = array
(
array("Volvo",33,20),
array("BMW",17,15),
array("Saab",5,2),
array("Land Rover",15,11)
);
for ($row = 0; $row < 4; $row++) {
echo "<p><b>行数 $row</b></p>";
echo "<ul>";
for ($col = 0; $col < 3; $col++) {
echo "<li>".$cars[$row][$col]."</li>";
}
echo "</ul>";
}
?>
十九、PHP Include 文件
<?php include 'footer.php';?>
<?require 'noFileExists.php';?>
require 会生成致命错误(E_COMPILE_ERROR)并停止脚本include 只生成警告(E_WARNING),并且脚本会继续
请在此时使用 require:当文件被应用程序请求时。
请在此时使用 include:当文件不是必需的,且应用程序在文件未找到时应该继续运行时。
二十、php文件处理
20.1 读文件
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fread($myfile,filesize("webdictionary.txt"));
fclose($myfile);
?>
20.2 写文件
<?php
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "Bill Gates\n";
fwrite($myfile, $txt);
$txt = "Steve Jobs\n";
fwrite($myfile, $txt);
fclose($myfile);
?>
PHP 读取文件 - fread()PHP 关闭文件 - fclose()
PHP 读取单行文件 - fgets()
PHP 检查 End-Of-File - feof()
PHP 读取单字符 - fgetc()
PHP 创建文件 - fopen()
PHP 写入文件 - fwrite()
二十一、php文件上传
前端表单:
<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
后端脚本:
<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
二十二、php cookiecookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。
22.1 创建cookie
setcookie(name, value, expire, path, domain);
22.2 取回cookie
<?php
// Print a cookie
echo $_COOKIE["user"];
// A way to view all cookies
print_r($_COOKIE);
?>
22.3 使用 isset() 函数来确认是否已设置了 cookie
isset($_COOKIE["user"])
22.4 删除 cookie
<?php
// set the expiration date to one hour ago
setcookie("user", "", time()-3600);
?>
二十三、php sessionPHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置。Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。
23.1 开始 PHP Session,在您把用户信息存储到 PHP session 中之前,首先必须启动会话。注释:session_start() 函数必须位于 <html> 标签之前:
<?php
session_start();
// store session data
$_SESSION['views']=1;
?>
<html>
<body>
<?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?>
</body>
</html>
23.2 终结 Session
unset($_SESSION['views']);
session_destroy();
二十四、php错误处理
<?php
if(!file_exists("welcome.txt"))
{
die("File not found");
}
else
{
$file=fopen("welcome.txt","r");
}
?>
二十五、php异常处理
<?php
//创建可抛出一个异常的函数
function checkNum($number)
{
if($number>1)
{
throw new Exception("Value must be 1 or below");
}
return true;
}
//在 "try" 代码块中触发异常
try
{
checkNum(2);
//If the exception is thrown, this text will not be shown
echo 'If you see this, the number is 1 or below';
}
//捕获异常
catch(Exception $e)
{
echo 'Message: ' .$e->getMessage();
}
?>
二十六、php过滤器
<?php
$int = 123;
if(!filter_var($int, FILTER_VALIDATE_INT))
{
echo("Integer is not valid");
}
else
{
echo("Integer is valid");
}
?>
二十七、php数据库
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("my_db", $con);
$result = mysql_query("SELECT * FROM Persons ORDER BY age");
while($row = mysql_fetch_array($result))
{
echo $row['FirstName'];
echo " " . $row['LastName'];
echo " " . $row['Age'];
echo "<br />";
}
mysql_close($con);
?>
PHP之友评论