[PHP] php基础

来源:互联网 发布:云计算平台storm 编辑:程序博客网 时间:2024/06/06 17:50

一、php程序结构

<!DOCTYPE html><html><body><?phpecho "我的第一段 PHP 脚本!";?></body></html>
二、php中的注释

<?php// 这是单行注释# 这也是单行注释/*这是多行注释块它横跨了多行*/?>
三、php中的大小写

在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感。

<?phpECHO "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 静态变量

<?phpfunction 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 对象

<?phpclass 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!");
以上代码的输出是:12
strpos() 函数用于检索字符串内指定的字符或文本。

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语句

<?phpswitch ($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函数

<?phpfunction 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也可以换成getName: <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可以换成$_GETYour 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>
后端脚本:

<?phpif ((($_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 cookie
cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。
22.1 创建cookie
setcookie(name, value, expire, path, domain);
22.2 取回cookie

<?php// Print a cookieecho $_COOKIE["user"];// A way to view all cookiesprint_r($_COOKIE);?>
22.3 使用 isset() 函数来确认是否已设置了 cookie

isset($_COOKIE["user"])
22.4 删除 cookie

<?php // set the expiration date to one hour agosetcookie("user", "", time()-3600);?>
二十三、php session
PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置。Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。
23.1 开始 PHP Session,在您把用户信息存储到 PHP session 中之前,首先必须启动会话。注释:session_start() 函数必须位于 <html> 标签之前:

<?phpsession_start();// store session data$_SESSION['views']=1;?><html><body><?php//retrieve session dataecho "Pageviews=". $_SESSION['views'];?></body></html>
23.2 终结 Session

unset($_SESSION['views']);session_destroy();
二十四、php错误处理

<?phpif(!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);?>

















0 0