程序开发基础

PHP(外文名为: Hypertext Preprocessor,中文名:“超文本预处理器”)于1994年由Rasmus Lerdorf创建,他也被称为“PHP之父”。PHP是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP语言是最受欢迎的Web开发语言之一,也是微信公众平台开发使用最广泛的语言。

  SQL是结构化查询语言(Structured Query Language)的简称,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

  PHP+MySQL是目前最为成熟、稳定、安全的企业级WEB开发技术,广泛应用于各大型站点。其成熟的架构、稳定的性能、嵌入式开发方式、简洁的语法,使得系统能迅速开发。百度网站前端使用的就是PHP,你可以在浏览器中输入http://www.baidu.com/index.php 打开百度的首页。
除了PHP和MySQL之外,HTML、CSS样式表和脚本语言JavaScript也是Web开发的基础,一般使用HTML来设计Web页面结构、使用样式表来控制Web页面的显示效果、使用脚本语言来控制浏览器的特效及表单数据的验证,掌握这些有助于开发者开发实现出更丰富和更强大的功能。

 

2.2.1PHP语法及使用

  PHP的语法和C、C++等语言的语法很相似,有C语言基础的读者,可以非常轻松地掌握PHP的基本语法。由于PHP的语法比较简单,如果没有任何语言基础,也可以快速地熟悉。

  1.第一个程序
  打开编辑器Notepad++,在里面编写如下内容。

<?php 
//作者:方倍
echo "你好,微信!"; 
?>

  将上述内容保存为hello.php,并且存放在wamp的web根目录下c:\wamp\www\下,然后在浏览器中输入http://localhost/hello.php ,将可以看到浏览器显示出“你好,微信!”。如图2-15所示。

     图2-15第一个程序

  下面对这个程序进行讲解。
  所有PHP的代码都是以“<?php”开头,以“?>”结尾,PHP的默认文件扩展名是“.php”。“//”表示该行是注释,它的作用是供代码开发者阅读,它不会被程序执行,代码中的“作者:方倍”就没有在浏览器中显示出来。echo是PHP的一个语句,它的作用是将一串字符显示出来,所以在浏览器中我们看到了“你好,微信!”这一段内容。

  2.变量及类型
  变量是指程序中可以改变的数据量,变量须有一个名字,用来代表变量和存放变量的值。PHP中使用美元符号“$”后面跟变量名来表示一个变量,例如“$result”。PHP的变量主要有以下类型:整数类型;浮点类型;字符串类型;布尔类型;数组类型;对象。下面是整形、浮点型、字符串类型的示例代码。

<?php
$x = 100;        //整形
$y = 100.33;    //浮点型
$hello ="Hello world!";        //字符串类型
echo $x;
echo "<br>";
echo $y;
echo "<br>";
echo $hello;
?>

  上述代码分别定义了一个整数类型;浮点类型;字符串类型。在浏览器中运行效果如图2-16所示。

          图2-16变量

  3.常量
  在PHP中通过define()函数定义一个常量。合法的常量名只能以字母和下划线开始,后面可以跟着任意字母、数字或下划线。常量一旦定义就不能再修改或者取消定义。常量定义的示例代码如下所示:

<?php
define("TOKEN", "weixin");
echo TOKEN;
?>

  上述代码定义名为TOKEN的常量,它的值为weixin,在浏览器中运行效果如图2-17所示。

          图2-17常量

  4.运算符
  运算符是指,通过一个或多个表达式,来产生另外一个值的某些符号,如“+”、“%”“.”等都是运算符。
  在PHP中,使用符号“=”表示赋值。它的含义是将一个值指定给一个变量,如“$a=5”表示将5赋给$a。
  PHP的算术运算符有加(+)、减(-)、乘(*)、除(/)和取模(%)、取反(-,即取负值)。例如“$x + $y”表示变量$x和变量$y的值进行相加。
PHP有递增/递减运算符。递增是指对当前表达式的值增加1,递减正相反,对表达式的值减1。例如“++$x”表示$x 加一递增,然后返回 $x;“$x--”表示先返回 $x,然后$x减一递减。
  PHP的字符串运算符只有一个,即字符串的连接运算符“.”。例如“$x="Hello"; $x .= " weixin!";”表示变量$x的末尾再加下字符串“ weixin”。这时$x的值为“Hello weixin”。
  PHP的逻辑运算符有与(and)、或(or)、异或(xor)、与(&&)、或(||)、非(!)。
  PHP的比较运算符有等于(==)、全等(===)、不等于(!=)、不等于(<>、不全等(!==)、大于(>)、小于(<)、大于或等于(>=)、小于或等于(<=)。
  除此之外,还有条件运算符“expr1 ? expr2 : expr3”,它的计算规则是:如果表达式expr1的值为TRUE,那么整个表达式的值就取expr2的值,否则,就取expr3的值。
下述示例代码是常用运算符的示例:

<?php
$x=10; 
$y=6;
echo ($x + $y); // 输出 16
echo "<br>";
echo ($x - $y); // 输出 4
echo "<br>";
echo ($x * $y); // 输出 60
echo "<br>";
echo ($x / $y); // 输出 1.6666666666667
echo "<br>";
echo ($x % $y); // 输出 4
echo "<br>";
$z=5;
$z *= 6;
echo $z; // 输出 30
echo "<br>";
$x="Hello";
$x .= " weixin!";
echo $x; // 输出 Hello weixin!
echo "<br>";
$i=5;
echo $i--; // 输出 5
echo "<br>";
$a=50;
$b=90;
var_dump($a > $b);

$max = ($a>=$b) ? $a : $b;
echo $max; // 输出 90
?>

  在浏览器中运行效果如图2-18所示。

          图2-18运算符

  5.流程控制
  PHP程序由语句构成,通常情况下,程序是从第一条语句开始执行,按顺序执行到最后一句。但有时因为某种情况,需要改变程序的执行顺序,这就需要对程序的流程进行控制。
  程序的执行方式有3种:顺序执行、选择执行、循环执行,通过使用这3种控制结构,可以改变程序的执行顺序,以满足解决问题的需求。顺序结构使程序从第一条语句开始,按顺序执行到最后一句。在选择结构中,程序可以根据某个条件是否成立,选择执行不同的语句。在循环结构中,可以使程序根据某种条件和指定的次数,使某些语句执行多次。
if语句/if...else语句/if...elseif....else语句
  在 PHP 中,我们可以使用以下条件语句:
 if 语句 - 如果指定条件为真,则执行代码
 if...else 语句 - 如果条件为 true,则执行代码;如果条件为 false,则执行另一端代码
 if...elseif....else 语句 - 选择若干段代码块之一来执行
  下述代码是if语句系列的使用方法。

<?php
$t=date("H");

if ($t<"18") {
    echo "白天!";
}

if ($t<"18") {
    echo "白天!";
} else {
    echo "晚上!";
}

if ($t<"12") {
    echo "上午!";
} elseif ($t<"18") {
    echo "下午!";
} else {
    echo "晚上!";
}
?>

  上述代码中的含义解读如下:
  在if语句中,如果当前时间 (HOUR) 小于18,则输出“白天!”
  在if...else 语句中,如果当前时间 (HOUR) 小于18,则输出“白天!”,否则输出"晚上!"
  在if...elseif....else 语句中,如果当前时间 (HOUR) 小于12,则输出“上午!”;如果小于18,则输出“下午!”;否则输出"晚上!"。
  Switch 语句
  switch结构首先计算表达式expr的值,如果expr的值与某个case的值匹配,则从case后面的语句开始执行,直到遇到break语句或整个switch结构结束。
  Switch语句的使用示例如下。

<?php
switch ($x)
{
    case 1:
        echo "数字 1";
        break;
    case 2:
        echo "数字 2";
        break;
    case 3:
        echo "数字 3";
        break;
    default:
        echo "不是1至3之间的数字";
}
?>

  在上述代码中,判断变量$x的值,将它和case的值进行比较,如果存在匹配,则执行和case关联的代码,如果没有case为真,则执行default中的代码。
  For 循环
  for 循环执行代码块指定的次数。下面的例子显示了从 0 到 3 的数字:

<?php 
for ($x=0; $x<=3; $x++) {
    echo "数字是:$x <br>";
} 
?>

  它运行效果如图2-19所示。

          图2-19for循环

  While 循环
  while 循环在指定条件为 true 时执行代码块。
  下面的例子首先把变量 $x 设置为 1($x=1)。然后执行 while 循环,只要 $x 小于或等于 5。循环每运行一次,$x 将递增 1:

<?php 
$x=1; 
while($x<=5) {
    echo "这个数字是:$x <br>";
    $x++;
} 
?>

  它运行效果如图2-20所示。

          图2-20while循环

  6.数组
  数组能够在一个变量名中存储许多值,并且能够通过引用下标号来访问某个值。
在PHP中,创建数组使用array()函数。常用的数组类型有索引数组和关联数组。
索引数组的索引是自动分配的(索引从 0 开始)。下面代码创建了一个索引数组。

$office = array('word', 'excel', 'outlook', 'access'); 

  数组的名称名字叫office,第一个元素的值是word,第二个元素为excel,第三个元素是outlook,第四个元素是access。
  关联数组的创建方式为

array( [key =>]value , ... )// key 可以是 integer 或者 string;value 可以是任何值

  下面代码创建了一个关联数组。

    $age=array("张三"=>"25","李四"=>"27","王五"=>"33");

  它定义了3个元素,以“张三”,“李四”,“王五”为键名,他们的年龄为各自的值。
实际上,索引数组是种特殊的关联数组。
  下面演示了数组的创建及遍历数组的方法。

<?php
$office = array('word', 'excel', 'outlook', 'access'); 
$arrlength=count($office);
for($x=0;$x<$arrlength;$x++) {
    echo $office[$x];
    echo "<br>";
}
$age=array("张三"=>"25","李四"=>"27","王五"=>"33");
foreach($age as $key=>$value) {
    echo "Key=" . $key . ", Value=" . $value;
    echo "<br>";
}
?>

  程序执行的效果如图2-21所示。

          图2-21数组

  7.函数
  在程序设计中,经常将一些常用的功能模块编写成函数,供程序或其它文件使用。函数就像一些小程序,用它们可以组成更大的程序。用户定义的函数声明以“function”开头。
  这里创建了名称为“familyName()”的函数。打开的花括号“{”表示函数代码的开始,而关闭的花括号“}
”表示函数的结束。
  下面的例子中的函数有两个参数$name和$year。当调用familyName()函数时,我们同时要传递一个名字(例如“三”)和出生年(如1980),这样会输出姓相同,但名不同的姓名,以及出生年。
  详细代码如下所示。

<?php
function familyName($name, $year) {
    echo "张$name. 出生于$year <br>";
}

familyName("三","1980");
familyName("四","1982");
familyName("五","1985");
?>

  上述程序执行的效果如图2-22所示。

          图2-22函数

  8.类
  类是变量与作用于这些变量的函数的集合。变量通过var来定义,函数通过 function 来定义,而类则通过下面的语法定义:

<?php
class Cart {
    var $items;  // 购物车中的物品

    // 将 $num 个 $artnr 物品加入购物车
    function add_item($artnr, $num) {
        $this->items[$artnr] += $num;
    }
}
?>

  上面的例子定义了一个 Cart 类,这个类由购物车中的商品构成的数组和一个用于从购物车中添加商品的函数组成。
  类的用法举例如下:

<?php
$cart = new Cart;
$cart->add_item("手机", 3);
?>

  上述代码创建了一个Cart类的对象$cart,对象$cart的方法add_item()被调用时,添加了3件“手机”商品。

 

 

2.2.2MySQL的使用

  本节演示如何SQL语句及PHP程序创建和使用一个简单的数据库表。
  下面是一个名为“wx_user”的表。

          表2-1 wx_user表

  上面的表含有四个列(id, openid, username以及mobile)和二个记录(每个记录对应一个人)。
  1.创建数据库表
  下面是建立一个数据库表“wx_user”的SQL脚本。

CREATE TABLE IF NOT EXISTS `wx_user` (
  `id` int(7) NOT NULL AUTO_INCREMENT,
  `openid` varchar(30) NOT NULL,
  `username` varchar(20) NOT NULL,
  `telephone` varchar(16) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `openid` (`openid`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

  创建数据表是使用CREATE TABLE命令。命令中间内容部分是创建条件,分别包括列名、列的数据类型及长度、是否允许为空、是否有自增属性、是否是唯一Key、是否为主键等。
  在phpMyAdmin中的SQL运行框中,运行上述代码后,将创建一个“wx_user”的表。如图2-23所示。
                图2-23wx_user表

  2.插入数据
  向数据库表插入数据使用INSERT INTO 语句。其语法为

INSERT INTO table_name VALUES (value1, value2,....)

  在本例中,插入语句可以这样写

INSERT INTO `wx_user` (`id`, `openid`, `username`, `telephone`) VALUES (NULL, 'o7Lp5t6n59DeX3U0C7Kric9qEx-Q', '方倍', '15987654321');

  下面是使用PHP程序来进行提交的代码。

<?php
$con = mysql_connect("localhost:3306","root","root");
mysql_query("SET NAMES 'UTF8'");
mysql_select_db("book", $con);
mysql_query("INSERT INTO `wx_user` (`id`, `openid`, `username`, `telephone`) VALUES (NULL, 'o7Lp5t6n59DeX3U0C7Kric9qEx-Q', '方倍', '15987654321');");
mysql_query("INSERT INTO `wx_user` (`id`, `openid`, `username`, `telephone`) VALUES (NULL, 'o7Lp5t6n59De2380C3Kxkc93E2x3', '李四', '13412341234');");
mysql_close($con);
?>

  在上述代码中,PHP首先创建到数据库的连接,这是通过mysql_connect()函数完成,连接的主机为“localhost”,端口为“3306”,账号和密码分别都为“root”。然后通过“SET NAMES 'UTF8'”命令设置字符集为UTF8,这样就能正常显示中文。之后通过mysql_select_db()函数设置要连接的数据库“book”。最后再使用mysql_query()函数向“wx_user”表中插入两条记录。执行完毕之后,最终使用mysql_close()函数关闭MySQL连接。

  3.查询数据
  从数据库中查询数据使用SELECT语句。其语法为

SELECT column_name(s) FROM table_name

  在本例中,查询语句可以这样写

SELECT*FROM `wx_user` WHERE `openid` ='o7Lp5t6n59DeX3U0C7Kric9qEx-Q';

  下面是使用PHP程序来进行查询的代码。

<?php
$con = mysql_connect("localhost:3306","root","root");
mysql_query("SET NAMES 'UTF8'");
mysql_select_db("book", $con);
$result = mysql_query("SELECT * FROM `wx_user` WHERE `openid` = 'o7Lp5t6n59DeX3U0C7Kric9qEx-Q';");
while($row = mysql_fetch_array($result))
{
    echo $row['username']." ".$row['telephone'];
    echo "<br />";
}
mysql_close($con);
?>

  上述代码查询“openid”为“o7Lp5t6n59DeX3U0C7Kric9qEx-Q”的数据,并且返回该条数据的“username”和“telephone”字段,执行后,返回的内容如图2-24所示。

        图2-24查询数据

  4.修改数据
  修改数据库表中的数据。使用UPDATE 语句。其语法为

UPDATE table_name SET column_name = new_value WHERE column_name = some_value

  在本例中,修改语句可以这样写

UPDATE `wx_user` SET `telephone` = '15999521234' WHERE `openid` = 'o7Lp5t6n59DeX3U0C7Kric9qEx-Q';

  下面是使用PHP程序来进行修改的代码。

<?php
$con = mysql_connect("localhost:3306","root","root");
mysql_query("SET NAMES 'UTF8'");
mysql_select_db("book", $con);
mysql_query("UPDATE `wx_user` SET `telephone` = '15999521234' WHERE `openid` = 'o7Lp5t6n59DeX3U0C7Kric9qEx-Q';");
mysql_close($con);
?>

  上述代码执行后,将向“openid”值为“o7Lp5t6n59DeX3U0C7Kric9qEx-Q”的记录中的“telephone”的值更改为“15999521234”。

  5.删除数据
  从数据库表中删除记录使用DELETE FROM 语句。其语法为

DELETE FROM table_name WHERE column_name = some_value

  在本例中,删除语句可以这样写

DELETE FROM `wx_user` WHERE `openid` = 'o7Lp5t6n59DeX3U0C7Kric9qEx-Q';

  下面是使用PHP程序来进行删除的代码。

<?php
$con = mysql_connect("localhost:3306","root","root");
mysql_query("SET NAMES 'UTF8'");
mysql_select_db("book", $con);
mysql_query("DELETE FROM `wx_user` WHERE `openid` = 'o7Lp5t6n59DeX3U0C7Kric9qEx-Q';");
mysql_close($con);
?>

  上述代码执行后,将“openid”值为“o7Lp5t6n59DeX3U0C7Kric9qEx-Q”的记录进行删除。

 

2.2.3其他常用语言

  1.HTML
  HTML全称为超文本标记语言(HyperText Mark-up Language),是一种制作页面的标准语言,也是浏览器使用的一种语言,它消除了不同计算机之间信息交流的障碍。它是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言。
  HTML文件是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。HTML文件的结构包括头部(Head)、主体(Body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。
  下面是一段HTML代码,它创建了一个两行三列的表格。

<html>
  <head>
    <title>HTML</title>
  </head>
  <body>
  <h4>两行三列:</h4>
  <table border="1">
    <tr>
      <td>100</td>
      <td>200</td>
      <td>300</td>
    </tr>
    <tr>
      <td>400</td>
      <td>500</td>
      <td>600</td>
    </tr>
  </table>
  </body>
</html>

  上述代码在浏览器中运行后、效果如图2-25所示。

          图2-25HTML

  2.CSS
  CSS指层叠样式表(Cascading Style Sheets),又称串样式列表、层次结构式样式表文件,一种用来为结构化文档(如HTML文档或XML应用)添加样式(字体、间距和颜色等)的计算机语言,由W3C定义和维护。
  下面是一段使用CSS构建一个水平导航栏的代码。

<html>
  <head>
  <style>
  ul{
    list-style-type:none;
    margin:0;
    padding:0;
    overflow:hidden;
  }
  li{
    float:left;
  }
  a{
    display:block;
    width:60px;
    background-color:#dddddd;
  }
  </style>
  </head>

  <body>
    <ul>
      <li><a href="#home">Home</a></li>
      <li><a href="#news">News</a></li>
      <li><a href="#contact">Contact</a></li>
      <li><a href="#about">About</a></li>
    </ul>
  </body>
</html>

  上述代码运行后效果如图2-26所示。

            图2-26CSS

  3.JavaScript
  JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
  下面是一段点击按钮弹出消息框的JavaScrip代码。

<!DOCTYPE html>
<html>
  <body>
    <p>JavaScript 能够对事件作出反应。比如对按钮的点击:</p>
    <button type="button" onclick="alert('Welcome!')">点击这里</button>
  </body>
</html>

  上述代码运行后效果如图2-27所示。

          图2-27JavaScript

  4.XML
  XML中文名为可扩展标记语言(eXtensible Markup Language),是一种标记语言。XML应用于web 开发的许多方面,常用于简化数据的存储和共享。微信基础消息的接收发送都是使用XML来传输的。读者可以在后面的章节中看到很多XML数据的内容。
  下面是一个简单的XML文件内容。

<xml>
    <to>张三</to>
    <from>李</from>
    <heading>提醒</heading>
    <body>记得开会</body>
</xml>

  5.JSON
  JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于JavaScript语法标准的一个子集。 JSON采用完全独立于语言的文本格式,可以很容易在各种网络、平台和程序之间传输。JSON的语法很简单,易于人阅读和编写,同时也易于机器解析和生成。
  微信的高级接口中,很多内容都是通过JSON来进行传递,例如创建自定义菜单时,就是通过传输一个固定格式的JSON内容来实现的。
  下面是一段JSON内容。它定义了一个employee 对象,包含2个员工记录(对象)的数组。

{
  "employees": [
    {
      "firstName": "Bill",
      "lastName": "Gates"
    },
    {
      "firstName": "George",
      "lastName": "Bush"
    }
  ]
}
 

 

 

posted @ 2017-04-21 16:01  小马哈鱼  阅读(140)  评论(0)    收藏  举报