快速学习PHP基础认识

如何在十天内学会php之第一天

PHP的调试方法我这里就不说了,外面很多文章都有介绍,也有很多不同的组合。我这里暂时是以 Apache web server 和 MY SQL 作为WEB服务器和数据库,在php-4.3.3下的环境做的程序。当然要简单的构建和访问查看数据库 phpmyadmin 不可少。

  下面简单介绍一下PHP的语法。

---------------------------------------------------------------------------------------------------------------------------------------------------------------

  1、嵌入方法:

         PHP可以是<?php或者是<?开头,结束符号是?>,当然您也可以自己指定。

---------------------------------------------------------------------------------------------------------------------------------------------------------------

  2、引用文件:

  引用文件的方法有两种:require 及 include。

  require 的使用方法如<? require("MyRequireFile.php"); ?>。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。

  include 使用方法如<? include("MyIncludeFile.php");?>。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。

 PHP include("header.php")

---------------------------------------------------------------------------------------------------------------------------------------------------------------

 3、注释方法:

PHP注释种方法

<?php
echo 'A' /* 第一种注释方法 */
//第二种注释方法
#第三种注释方法
?>

---------------------------------------------------------------------------------------------------------------------------------------------------------------

  4、变量类型:

$mystring = "我是字符串" ;

 首先PHP变量以$开头,第二PHP语句以;结尾,

---------------------------------------------------------------------------------------------------------------------------------------------------------------

  5、运算符号:

1、算术运算符
    $a + $b 加 $a加上$b
     $a - $b 减 $a减去$b
     $a * $b 乘 $a乘以$b
     $a / $b 除 $a除以$b
   %  $a % $b 取模 $a除以$b的余数
如果两个操作数都是整型值(字符串将被转换为整型值),除号("/") 返回整型值(整除的值)。如果任一个操作数是浮点值,则做浮点除法。


 2,字符串连接符


操作符只有字符串连接符 (".")。

. 字符串连接符
   $a = "Hello ";
   $b = $a . "World!"; // now $b = "Hello World!"

  .= 类似的连接<br />
            
  $a = &quot;Hello &quot;; &lt;br /&gt;<br />
             
  $b = &quot;World!&quot;;<br />
     
  $a .= $b// $a = &quot;Hello World!&quot; </p>
<p class="STYLE34"><br />
    <span class="STYLE36"><strong>3、赋值运算符</strong></span> <br />
         </p>
<p class="STYLE34">      <strong>=</strong> $a = 3;   $a = ($b = 4) + 5; // 现在 $a 等于 9, $b为4 。 <br />
         
  <strong>+=</strong>   $a += 5; // 把$a 设成 8, 也就是: $a = $a +   5; <br />
         
  <strong>.=</strong>   $b .= &quot;There!&quot;;   // 把 $b 设成 &quot;Hello There!&quot;, 就象 $b = $b . &quot;There!&quot;; 联合<br />
         
  <strong>*=</strong>   $a *= 5; // 把$a 设成 8, 也就是: $a = $a *   5;<br />
         
  <strong>/=</strong>   $a /= 5; // 把$a 设成   8, 也就是: $a = $a / 5;<br />
         
  -= $a -= 5; // 把$a 设成   8, 也就是: $a = $a - 5;<br />
         
  <strong>%=</strong> $a   %= 5; // 把$a 设成 8, 也就是: $a = $a % 5; 取模 $a除以5的余数</p>
<p class="STYLE34"><br />
    <span class="STYLE36"><strong>4、 位运算符</strong></span></p>
<p class="STYLE34"><strong> &nbsp;&nbsp;&nbsp;&nbsp;    &nbsp;&nbsp;&nbsp; </strong>位运算允许你对指定的数据置位或复位。 <br />
    
  <strong>&amp;</strong> 与运算, $a &amp; $b 与 $a和$b都被置位则结果被置位 <br />
    
  <strong>| </strong>或运算, $a | $b 或 $a或$b有一个被置位则结果被置位<br />
    
  <strong>~</strong> 非运算, ~ $a 非 $a没有被置位则结果被置位</p>
<p class="STYLE34"><br />
    <span class="STYLE36"><strong>5、 逻辑运算符</strong></span></p>
<p class="STYLE34"><strong><br />
  </strong>  <strong>and</strong>   $a and $b 与   $a和$b同时为真则结果为真<br />
    
  <strong>or </strong>     $a or $b   或 $a或$b有一个为真则结果为真<br />
    
  <strong>xor</strong>     $a   xor $b 异或 $a和$b不同时为真则结果为真<br />
   
  <strong> !</strong>         ! $a 非 $a为假则结果为真<br />
    
  <strong>&amp;&amp;</strong>            $a &amp;&amp; $b 与   $a和$b同时为真则结果为真<br />
    
  <strong>|| </strong>      $a ||   $b 或 $a或$b有一个为真则结果为真<br />
                     
  比较两个变量时,&quot;与&quot;和&quot;或&quot;运算有两种运算符这是以为两种运算符有不同的优先级</p>
<p class="STYLE37">6、 比较运算符</p>
<p class="STYLE34"><br />
    
  比较运算符,就象名字一样,允许你比较两个值。<br />
    
  <strong>==</strong>   $a == $b 等于   $a等于$b结果为真 (左边等于右边)<br />
       
  <strong>===</strong>   $a   ===$b 等于 $b等于$a结果为真   (左边等于右边)<br />
    
  <strong>!=</strong> $a != $b 不等于 $a不等于$b结果为真 (左边不等于右边)<br />
    
  <strong>&lt;</strong>    $a &lt; $b 小于 $a小于$结果为真          (左边小于右边)<br />
    
  <strong>&gt;</strong>    $a &gt; $b 大于   $a大于$b结果为真        (左边大于右边)<br />
    
  <strong>&lt;=</strong>   $a &lt;= $b 小于等于 $a小于或等于$b结果为真   (左边小于等于右边)<br />
    
  <strong>&gt;= </strong>$a &gt;= $b   大于等于 $a大于或等于$b结果为真 (左边大于等于右边)</p>
<p class="STYLE37">7:加一/减一运算符</p>
<p class="STYLE34">  <strong>++$a</strong>  前加 $a 的值加一,然后返回 $a。</p>
<p class="STYLE34">  <strong>$a++</strong>  后加 返回   $a,然后将 $a 的值加一。</p>
<p class="STYLE34">  <strong>--$a</strong>  前减 $a   的值减一, 然后返回 $a。</p>
<p class="STYLE34">  <strong>$a--</strong>  后减 返回   $a,然后将 $a 的值减一。</p>
<p class="STYLE34">--------------------------------------------------------------------------------------------------------------------------------------------------------------- </p>

6、if..else 循环有三种结构

  第一种是只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:

if (expr) { statement }

  其中的 expr 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
范例:本例的执行部分有二行  省略大括号{}。
<?php
$state=1; //定义$state=1;
if ($state==1) echo "哈哈" ;//IF判断 如果左边等于右边 则输出如下
?>
这里特别注意的是,判断是否相等是==而不是=,ASP程序员可能常犯这个错误,= 是赋值。

范例:本例的执行部分有三行,不可省略大括号。{}

<?php
$state=1; //定义$state=1;
if ($state==1); {//IF判断 如果左边等于右边 则输出如下
echo "哈哈" ; //输出
}
?>

  这里特别注意的是,判断是否相等是==而不是=,ASP程序员可能常犯这个错误,= 是赋值。

         第二种是除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下

  if (expr) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

<?php
$state=1; //定义$state=1;
if ($state==1) { //IF判断 如果左边等于右边 则输出如下
echo "哈哈" ; //输出
echo "<br>"; //输出<br>
}
else{              //否则
echo "呵呵"; //输出
echo "<br>"; //输出<br>
}
?>

 第三种就是递归的 if..else 循环,通常用在多种决策判断时。它将数个 if..else 拿来合并运用处理

  直接看下面的例子

<?php
$a=1;                     //定义$a=1;
$b=2;                     //定义$b=2;
if ( $a > $b ) {        //IF判断 如果左边大于右边 则输出如下
echo "a 比 b 大" ;     //输出
}
elseif ( $a == $b ) {    //否则如果判断 如果左边等于右边 则输出如下
echo "a 等于 b" ;         //输出
}
else {                           //否则输出如下
echo "a 比 b 小" ;         //输出
}
?>

---------------------------------------------------------------------------------------------------------------------------------------------------------------

 7、 for 循环就单纯只有一种,没有变化,它的语法如下

  for (expr1; expr2; expr3) { statement }

  其中的 expr1 为条件的初始值expr2 为判断的条件通常都是用逻辑运算符号 (logical operators) 当判断的条件。expr3 为执行 statement 后要执行的部份,用来改变条件,供下次的循环判断,如加一..等等。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。

  下例是用 for 循环写的的例子。

<?php
for ( $i = 1 ; $i <= 10 ; $i ++) { //FOR循环 初使 | 判断 | 加1|
echo "这是第".$i."次循环<br>" ; //输出循环并+1
}
?>

下面说说for语句几种有用的变型。

  A  FOR无限循环

   无限循环(亦可称“死循环”),所以我们可以把for语句的三个表达式留空,这样就会产生不断执行for嵌套语句的效果。

<?php
for (;;) {
  //放置需要不断执行的语句
}
?>

   虽然有一些任务会使用到无限循环,但是大多数程序任务,特别是PHP所能涉及的领域,在使用无限循环时都会添加一些终止循环的条件。
break;终止FOR循环,用IF判断,终止无限循环
<?php
for (;;) {
  //如果是公元2199年,则跳出循环
  if (date('Y') == '2199') {
   break;                 //跳出循环
  }
}
?>

  B、使用FOR空表达式

  始化语句expr1中使用null语法,留空expr1最常见的作用就是完成更为复杂的初始化工作。

<?php
if (isset($i)) {
  unset($i);
  if ((int) date('') < 2008) {
   $i = 0;
  } else {
   $i = 1;
  }
} else {
  $i =3;
}

for (;$i < 10;$i++) {      // 始化语句 留空。为结合前面更复杂的结合
  echo $i;
}
?>

   同样道理,迭代表达式expr3也可能留空,也可以利用这点编写更为复杂的迭代式,比如说根据不同的条件调用不同的迭代式。

   而for语句中的条件语句expr2留空则是上面所说的无限循环,当然也可以添加一些更为复杂的条件去判断什么时候跳出循环,在此不在重复。

  C、FOR多重循环

   使用多重循环来控制多个变量也是在for语句中使经常被忽略的一个特性。如下面的例子,在一般的任务中用到的一般会是双重循环,三重以上的循环一般意义不大。

<?php
for ($i = 0, $j = 10;$i <= 10;$i++, $j--) {
  echo "$i + $j = 10\r\n";
}
?>

   以上代码将输出:

0 + 10 = 10
1 + 9 = 10
2 + 8 = 10
3 + 7 = 10
4 + 6 = 10
5 + 5 = 10
6 + 4 = 10
7 + 3 = 10
8 + 2 = 10
9 + 1 = 10
10 + 0 = 10

  D、FOR更为复杂的表达式

   如果把for语句的三个表达式写得复杂一些,则可以用于优化算法。甚至可以使用没有循环体的for语句来完成一些任务。比如计算累加或阶乘:

<?php
//计算1-5的累加结果,斌值到$j
for ($i = 1,$j = 0; $i <= 5;$j += $i++);
echo $j;


//计算1-5的阶乘结果,斌值到$j
for ($i = 1,$j = 1; $i <= 5;$j *= $i++);
echo $j;

?>

   PHP借助了C语言的语法,一定程度上也会拥有C的特性,比如说强大的for循环语句就是一个典型的例子。

---------------------------------------------------------------------------------------------------------------------------------------------------------------

 8、 switch 循环,

通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

  语法如下

  switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; }

  其中的 expr 条件,通常为变量名称。而 case 后的 exprN,通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环

<?php
switch ( date ( "D" )) {             //switch循环条件判断 系统时间变量D
case "Mon" :                             //case如果循环是"Mon" 则输出如下
echo "今天星期一" ;              //输出
break;                                      //跳离循环
case "Tue" :                             //case如果循环是"Tue" 则输出如下
echo "今天星期二" ;             //输出
break;                                      //跳离循环
case "Wed" :                           //case如果循环是"Wed" 则输出如下
echo "今天星期三" ;              //输出
break;                                     //跳离循环
case "Thu" :                             //case如果循环是"Thu" 则输出如下
echo "今天星期四" ;              //输出
break;                                    //跳离循环
case "Fri" :                             //case如果循环是 "Fri" 则输出如下
echo "今天星期五" ;              //输出
break;                                     //跳离循环
default:                                      //default如果循环是 其他 则输出如下
echo "今天放假" ;                    //输出
break;                                        //跳离循环
}
?>

这里需要注意的是break;别遗漏了,default,省略是可以的。

  上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

  今天就说到这里,明天开始说数据库的使用。

---------------------------------------------------------------------------------------------------------------------------------------------------------------

9返回语句

一个带返回值的return语句不使用小括号"()",除非它们以某种方式使返回值更为显见。例如:

return;
return myDisk.size();
return ($size ? $size : $defaultSize);

---------------------------------------------------------------------------------------------------------------------------------------------------------------

10 while循环语句

一个while语句应该具有如下格式

while (condition) {
   statements;
}
一个空的while语句应该具有如下格式:

while (condition);

---------------------------------------------------------------------------------------------------------------------------------------------------------------

11 do...while语句

一个do-while语句应该具有如下格式:

do {
   statements;
} while (condition);

---------------------------------------------------------------------------------------------------------------------------------------------------------------

12 try...catch语句

一个try-catch语句应该具有如下格式:

try {
   statements;
} catch (ExceptionClass e) {
   statements;
}
一个try-catch语句后面也可能跟着一个finally语句,不论try代码块是否顺利执行完,它都会被执行。

try {
   statements;
} catch (ExceptionClass e) {
   statements;
} finally {
   statements;
}

---------------------------------------------------------------------------------------------------------------------------------------------------------------

==============================================

MySql Front  数据可视编辑用  类似 ACC   MySQL Front v4.2 Build 2.7 - 霏凡软件站

进入了phpmyadmin后,我们首先需要建立一个数据库,Language (*) 这里选择中文简体,然后在左边的 创建一个新的数据库 这里填写数据库名字,点击创建即可。

  然后在左边下拉菜单中选择那个已经创建的数据库。在下面的

  在数据库 shop 中创建一个新表 :

  名字 :

  字段数 :

  中填写表名字和大致你认为的字段数(不够或者多了都不要紧,以后可以再添加或者缺省),按执行。

  然后就可以开始建立表了。

  第一栏是字段的名字;第二栏选择字段类型:

  我们常用的是以下几个:

  1)VARCHAR,文本类型

  2)INT,整数类型

  3)FLOAT,浮点数类型

  4)DATE,日期型

  5)大家或许会问,自动添加的ID在哪里?这个只要选择INT类型,在后面的额外中选择 auto_increment 就可以了。

  建立了表以后,可以在左边看到你建立的表,点击以后,你可以:

  1)按右边的结构:查看修改表结构

  2)按右边的浏览:查看表中的数据

  3)按右边的SQL:运行SQL语句

  4)按右边的插入:插入一行记录

  5)按右边的清空:删除表中所有记录

  6)按右边的删除:删除表

  还有一个很重要的功能就是导入和导出,但是当我们本机做好了程序和数据库的时候,需要在服务器上也有一个本地镜像,用SQL SERVER也可以连接远端服务器进行导入。那么MY SQL中你可以导出所有的SQL语句,到了远端服务器的phpmyadmin上,创建数据库后按SQL,粘帖你刚才复制下来的所有本级生成的SQL语句就可以拉。

  今天就说到这里,明天继续说数据库操作。

=====================================================

require_once('conn.php');  顶部调用数据库代码

<p>
==============================================================
<p>

1数据库说明
数据库地址 : localhost:3307
我的数据库权限 :root /phpnow
数据库 :root
数据库表 :shop
--------------------------
2字段 已经数据
ID NAME
1 zhuming
2 zhuming2

2函数说明
(一)函数mysql_connect()的意思是连接mysql数据库, "@"的意思是屏蔽报错
(二)函数die()的意思是将括号里的字串送到浏览器并中断PHP程式 <br>(Script)。括号里的参数为欲送出的字串。
(三)函数mysql_select_db() 选择一个数据库
(四)函数mysql_query() 发送一条 MySQL 查询
(五)函数mysql_fetch_array()返回数组资料
(六)函数@mysql_close($conn); 关闭数据库连接

<?
$conn=@mysql_connect("localhost:3307", "root", "phpnow");
//连接mysql数据库 定义变量$conn , mysql_connect()函数的意思是连接mysql数据库, "@mysql_connect()"的意思是屏蔽报错 不加@就会抱错*/
if(!$conn){die("error");}
//die()函数的意思是将括号里的字串送到浏览器并中断PHP程式 (Script)。括号里的参数为欲送出的字串。
@mysql_select_db("root", $conn);
//选择mysql里的一个数据库,为root ,前面加@就不会抱错,
//require_once('conn.php');顶部调用数据库代码

?>
<?
$sql = "SELECT * FROM shop";
//定义变量$sql, 意思是读取表shop中的数据
$rs = mysql_query($sql, $conn);
//定义变量$rs 查询记录

while ($row = mysql_fetch_array($rs)){
//定义量变(数组)row ,并利用while循环,通过返回组数据的函数mysql_fetch_array把数据一一写出来.
echo "$row[Id]"; //输出ID $row[0] 这样取也可以 注意Id大小写(我数据库写的是大写)
echo "$row[name]";//输出NAME $row[1] 这样取也可以
echo "<br>";
}
//while其他写法 id和name可以换位置
//(一)while($row = mysql_fetch_array($rs)) echo "$row[id] $row[name] <br />";
//(二)while($row = mysql_fetch_object($rs)) echo "$row->id $row->name <br />";
?>

输出为

1 zhuming

2 zhuming2

SHOP.SQL 文件如下  直接导入

DROP TABLE IF EXISTS `shop`;
CREATE TABLE `shop` (
`Id` int(11) NOT NULL auto_increment,
`name` varchar(255) default NULL,
PRIMARY KEY (`Id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=big5;
LOCK TABLES `shop` WRITE;
INSERT INTO `shop` VALUES (1,'zhuming');
INSERT INTO `shop` VALUES (2,'zhuming2');
UNLOCK TABLES;


13上传文件  与 EMAIL

学习目的:学会用PHP上传文件和发邮件

  上传文件表单必须加上 enctype="multipart/form-data"

  和 <input type="file" name="file">

  下面看一下代码:

 $f=&$HTTP_POST_FILES['file'];
  $dest_dir='uploads';//设定上传目录
  $dest=$dest_dir.'/'.date( "ymd")."_".$f['name'];//我这里设置文件名为日期加上文件名避免重复
  $r=move_uploaded_file($f['tmp_name'],$dest);
  chmod($dest, 0755);//设定上传的文件的属性

  上传的文件名为date("ymd")."_".$f['name'] ,可以在以后插入到数据库的时候用到,PHP实际上是把你上传的文件从临时目录移动到指定目录。move_uploaded_file($f['tmp_name'],$dest);这是关键

  至于发邮件就更加简单,可以使用mail()函数

  mail("收件人地址","主题","正文","From:发件人rnReply-to:发件人的地址");

  不过mail()需要服务器的支持,在WINDOWS下还需要配置SMTP服务器,一般来说外面的LINUX空间都行。

  好像上传文件和发邮件比ASP简单很多,只要调用函数就可以了。ASP还需要用到服务器的不同组件比如FSO、JMAIL什么的。

  十天学会PHP说到这里了。

14 我写的简单翻页

数据库连接页面 CONN.PHP

<?
$conn=mysql_connect ("localhost:3307", "root", "phpnow");
mysql_select_db("root");
?>

 

<?php
//函数isset()或者 empty()--------判断变量是否已配置。
//函数ceil()-------ceil(x)返回的是大于x的最小整数。如: ceil(2.5) = 3
//函数limit()----------表示选者范围,从$page当页第几个开始=($page*$meiye) 到后面的第几个为止
//函数count()-----------统计数据库记录数

require_once('conn.php'); //连接数据库配置

$sql="select count(*) from admin "; //统计数据库记录数 并连接表
$rs=mysql_query($sql); //发送一条 MySQL 查询
$rsc=mysql_fetch_array($rs); //返回数组资料 显示记录集RS

$num=$rsc[0]; //得到总记录数
$meiye=3 ; //定义每页显示记录数
$zhongye=$num/$meiye; //得到总页数 公式//总页数=总记录数/每页记录数
?>

<?php
if(empty($_GET['page'])){ //如果empty /isset 判断变量是否已配置 如果已经设置则输出
$page=0; //输出 强行给PAGE(当前页)=0
}
else //否则
{
$page=$_GET['page']; //定义PAGE等于传递来的GET
if($page<0) $page=0; //如果传来 PAGE(当前页)<0 则定义为0

if($page>=($zhongye)) //如果PAGE(当前页)>总页数 则定义下面的
$page=ceil($zhongye)-1; //总页数-1 ceil取整数1.5=2来算
}
?>

<?php
$sql="select * from admin limit ".($page*$meiye).",$meiye";
//limit表示选者范围,从$page当页第几个开始=($page*$meiye) 到后面的第几个为止
//定义变量$sql, 意思是读取表admin中的数据 ORDER BY ID DESC 降序排

$rs = mysql_query($sql, $conn);
//定义变量$rs 查询记录
while ($row = mysql_fetch_array($rs)){
//定义量变(数组)row ,并利用while循环,通过返回组数据的函数mysql_fetch_array把数据一一写出来.
echo "$row[username]";//输出NAME $row[1] 这样取也可以
echo "<br>";
}
?>

<a href="?page=0">首页</a>
<a href="?page=<?=($page-1)?>">上一页</a>
<a href="?page=<?=($page+1)?>">下一页</a>
<a href="?page=<?=ceil($zhongye)-1?>">尾页</a>

总页数<?=ceil($zhongye)?> 当前页数<?=($page+1)?> 总记录数<?=($num)?> 每页记录数<?=$meiye?>

-------------------------------------

SQL文件 ADMIN.SQL


DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin` (
`Id` int(11) NOT NULL auto_increment,
`username` varchar(255) default NULL,
`password` varchar(255) default NULL,
PRIMARY KEY (`Id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=big5;

LOCK TABLES `admin` WRITE;

INSERT INTO `admin` VALUES (1,'zhuming','123456789');
INSERT INTO `admin` VALUES (2,'zhuming2','123456789');
INSERT INTO `admin` VALUES (3,'zhuming3','123456789');
INSERT INTO `admin` VALUES (4,'zhuming4','123456789');
INSERT INTO `admin` VALUES (5,'zhuming5','123456789');
INSERT INTO `admin` VALUES (6,'zhuming6','123456789');
INSERT INTO `admin` VALUES (7,'zhuming7','123456789');

UNLOCK TABLES;

输出如下

1页(首页) list.php?page=0

zhuming
zhuming2
zhuming3
首页 上一页 下一页 尾页

2页 list.php?page=1

zhuming4
zhuming5
zhuming6
首页 上一页 下一页 尾页

3页(尾页) list.php?page=2

zhuming7
首页 上一页 下一页 尾页

---------------------------------------------------------------------------------------------------------------------------------------------------------------

 

猜你喜欢

转载自blog.csdn.net/qq_40437676/article/details/108241429