当前位置:首页 > PHP > PHP编程pdf电子书
《PHP编程从入门到实践》电子书封面

PHP编程从入门到实践

  • 发布时间:2021年03月03日 08:42:05
  • 作者:于广
  • 大小:114 MB
  • 类别:PHP编程电子书
  • 格式:PDF
  • 版本:超清版
  • 评分:9.2

PHP编程从入门到实践 PDF 超清版

    PHP编程从入门到实践》是一本关于PHP编程相关的电子书资源,介绍了关于PHP编程、PHP入门、PHP方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小114 MB,于广编写,目前豆瓣、亚马逊、当当、京东等综合评分为:7.8分,一起来看下具体内容。

    Tags:php PHP入门 PHP编程 

    内容介绍

    本书循序渐进、由浅入深地详细讲解了PHP语言开发的技术,并通过具体实例的实现过程演练了各个知识点的具体应用。全书共25章,分别为PHP开发初步、PHP基本语法、流程控制语句、函数是*神秘的武器、数组、操作字符串、使用PHP操作Web网页、使用会话管理技术、文件操作、实现图形图像处理、面向对象、正则表达式、程序错误调试、数据加密、MySQL数据库基础、使用PHP操作MySQL、操作其他数据库、PDO数据库抽象层、操作XML文件、使用Ajax技术、使用Smarty模板、使用ThinkPHP框架、使用PHP开发Android应用程序、信息管理项目—图书管理系统、网页游戏项目—开心斗地主。书中以“技术讲解”“范例演练”“技术解惑”贯穿全书,引领读者全面掌握PHP语言开发技术的精髓。

    本书不但适用于PHP语言的初学者,也适用于有一定PHP基础的读者阅读,还可以作为大专院校相关专业或培训学校的教材。

    编辑推荐

    一本书包含3大板块的内容:基础、范例、综合实战。以“技术讲解”-“范例演练”-“技术解惑”-“课后练习”贯穿全书,帮助读者全面掌握PHP语言开发!

    1.技术讲解:通过256个正文实例,循序渐进地讲解了PHP开发的多个知识点;

    2.范例演练:通过学习512个拓展范例和2个综合实例,读者可以真正具备项目实战能力;

    3.视频讲解:书中每一章有配套的教学视频,降低学习的难度,引导初学者快速入门;

    4.技术解惑:破解学习难点,把容易混淆的概念单独讲解和剖析,帮助读者绕过学习中的陷阱;

    5.QQ群 网站论坛实现答疑服务,形成互帮互学的朋友圈

    网站论坛:读者答疑、学习辅导、PPT资源下载

    目录

    • 第 1章 PHP开发初步 1
    • 第 2章 PHP基本语法 9
    • 第3章 流程控制语句 32
    • 第4章 函数是最神秘的武器 44
    • 默认参数 47
    • 第5章 数组 57
    • 数组 61
    • 整个数组 62
    • 进行求和 68
    • 多个数组 69
    • 一个元素 71
    • 第6章 操作字符串 73
    • 大写形式 78
    • 第7章 使用PHP操作Web网页 88
    • 表单程序 92
    • 编码与解码 102
    • 进行编码 102
    • 进行解码 103
    • 解码 103
    • 第8章 使用会话管理技术 105
    • 第9章 文件操作 119
    • 存在 120
    • 删除 131
    • 第 10章 实现图形图像处理 138
    • 椭圆形的填充 146
    • 第 11章 面向对象 153
    • 方法 158
    • 第 12章 正则表达式 169
    • 替换匹配 176
    • 函数eregi() 176
    • 函数preg match_all() 179
    • callback() 181
    • 第 13章 程序错误调试 184
    • 第 14章 数据加密 191
    • 第 15章 MySQL数据库基础 201
    • 数据库 205
    • 一个表 216
    • 备份和还原 218
    • 第 16章 使用PHP操作MySQL 220
    • 基本步骤 221
    • 数据库 222
    • 获取记录 225
    • mysql_fetch_object() 227
    • mysql_num_rows() 229
    • 数据 230
    • 记录 237
    • 第 17章 操作其他数据库 240
    • 数据库 241
    • 信息 242
    • 信息 244
    • SQL Server数据库 249
    • 第 18章 PDO数据库抽象层 257
    • 集中的下一行数据 259
    • 结果集中的所有行 260
    • 方法 262
    • prepare()和方法
    • execute() 265
    • 语句错误 267
    • 语句错误 268
    • 处理错误 270
    • 处理错误 271
    • 方法 272
    • 事务处理 273
    • 第 19章 操作XML文件 275
    • XML文件 276
    • XML文档 285
    • 属性 289
    • 第 20章 使用Ajax技术 293
    • 对象 298
    • 第 21章 使用Smarty模板 305
    • 带来什么 307
    • 第 22章 使用ThinkPHP框架 324
    • 第 23章 使用PHP开发Android
    • 应用程序 342
    • 第 24章 信息管理项目——
    • 图书管理系统 359
    • 第 25章 网页游戏项目——
    • 开心斗地主 372
       

    读书笔记

    PHP编程 SSO详细介绍及简单实例

    PHP SSO详解

    SSO有三种模式:①跨子域单点登陆②完全跨单点域登陆③站群共享身份认证

    第一种模式很简单,只需要将Cookie的域设置成多个应用的根域即可

    第二种方式,也很简单,就是将所以应用的认证地址更换成同一个认证地址,每次查看是否在认证中心登陆,如果登陆了,给调用应用发放一个加密令牌即可

    第三种跨域,就是来回跳转来回验证token略有麻烦

    配置目录结构

    在服务器根目录下,新建三个项目目录:

    |–/网站根目录/
    |–|–/oa/
    |–|–/bbs/
    |–|–/blog/

    在根目录下新建functions.PHP脚本文件,具体内容如下:

    <?php
    
    /**
     * 获取登陆token
     * @param string $url 获取token的地址
     * 2017-01-03T13:08:43+0800
     */
    function getToken($url)
    {
      $bool = isLogin();
      if ($bool) {
        // 如果登陆了跳转到本站首页
        header('location: index.php');
        exit();
      }
    
      // 否则没有登陆,去另一个站点看是否登陆
      header('location: '.$url);
    }
    
    // 校验令牌是否正确
    function yzToken($domain)
    {
      $url = isset($_GET['url']) ? $_GET['url'] : '';
      $username = isset($_GET['username']) ? $_GET['username'] : '';
      $token = isset($_GET['token']) ? $_GET['token'] : '';
    
    
      if (!empty($username) && !empty($token)) {
        $salt = 'taoip';
        $_token = md5($salt.$username);
        // 校验第三方站点过来时的token是否正确
        if ($_token == $token) {
          // 设置跳转过来的网站的Cookie
          setCook($username, $_token, $domain);
          header('location: index.php');
        }
      }
    
    }
    
    // 设置cookie
    function setCook($username, $_password, $domain)
    {
      // 校验成功,开始登陆
      setcookie('username', $username, time()+3600, '/', $domain);
      setcookie('token', $_password, time()+3600, '/', $domain);
      header('location: index.php');
    }
    
    // 判断是否登陆
    function isLogin()
    {
      $username = isset($_COOKIE['username']) ? $_COOKIE['username'] : '';
      $token = isset($_COOKIE['token']) ? $_COOKIE['token'] : '';
      $salt = 'taoip';
    
      $_token = md5($salt.$username);
    
      if ($token == $_token) {
        return true;
      } else {
        return false;
      }
    }
    
    ?>

    在oa项目目录下,新建index.php和login.php两个脚本文件

    编辑index.php文件

    <?php
    
    // OA站点
    
    // (1)开启Session会话
    session_name('taoip');
    session_start();
    // (2)获取用户名和token进行校验
    $username = isset($_COOKIE['username']) ? $_COOKIE['username'] : '';
    $token = isset($_COOKIE['token']) ? $_COOKIE['token'] : '';
    
    $salt = 'taoip';
    
    $_token = md5($salt.$username);
    
    if ($token != $_token) {
      header('location: login.php');
      exit();
    }
    
    echo "欢迎{$username}用户,访问OA站点";
    
    ?>

    编辑login.php文件

    <?php
    
    // OA站点登陆系统
    require '../functions.php';
    
    // (2)验证
    yzToken('taoip.cn');
    
    // (1)判断是否登陆,登陆则跳转首页,未登录则去其他站点获取token
    $url = isset($_GET['url']) ? $_GET['url'] : '';
    if (empty($url)) {
      getToken('http://dengpeng.cc/login.php?url=http://oa.taoip.cn/login.php');
    }
    
    // (1)判断用户是否登陆
    $bool = isLogin();
    $url = isset($_GET['url']) ? $_GET['url'] : '';
    if ($bool) {
      if (empty($url)) {
        header('location: index.php');
      } else {
        $username = isset($_COOKIE['username']) ? $_COOKIE['username'] : '';
        $token = isset($_COOKIE['token']) ? $_COOKIE['token'] : '';
        $lurl = $url.'?username='.$username.'&token='.$token;
        header('location: '.$lurl);
      }
    }
    
    
    if (!empty($_POST)) {
      $username = isset($_POST['username']) ? $_POST['username'] : '';
      $password = isset($_POST['password']) ? $_POST['password'] : '';
    
      // 从库中查询用户密码
      @$link = mysql_connect('localhost', 'root', '');
      mysql_query('use sso', $link);
      mysql_query('set names utf8', $link);
      $sql = "select * from users where username = '".$username."'";
      $user = mysql_fetch_assoc(mysql_query($sql, $link));
    
      // 校验
      $salt = 'taoip';
      $_password = md5($salt.$username);
    
      // var_dump($user['password'] == $_password);
      // print_r($user);exit();
    
      if ($user['password'] == $_password) {
        // 校验成功,开始登陆
        setcookie('username', $username, time()+3600, '/', 'taoip.cn');
        setcookie('token', $_password, time()+3600, '/', 'taoip.cn');
        // 如果URL没有值重定向到首页,否则重定向到URL页面
        if (empty($url)) {
          header('location: index.php');
        } else {
          header('location: '.$lurl);
        }
      }
    }
    
    ?>
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="generator" content="Sublime Text 3114">
      <meta name="author" content="3@dengpeng.cc">
      <meta name="keywords" content="">
      <meta name="description" content="">
      <title>OA站点登陆系统</title>
    </head>
    <body>
      <div class="container">
        <h2>oa.taoip.cn站点登陆系统</h2>
        <form action="" method="post">
          <label for="">用户名</label>
          <input type="text" name="username">
          <br>
          <label for="">密码</label>
          <input type="text" name="password">
          <hr>
          <button type="submit">提交</button>
        </form>
      </div>
    </body>
    </html>

    在bbs项目目录下,新建index.php和login.php两个脚本文件

    编辑index.php文件

    <?php
    /**
     * @author DengPeng <3@dengpeng.cc>
     * @since 2017/01/03
     * @copyright copyright (c) 2017 zixue.it GPL
     * @license http://www.zixue.it/
     */
    
    // BBS站点
    
    // (1)开启Session会话
    session_name('taoip');
    session_start();
    // (2)获取用户名和token进行校验
    $username = isset($_COOKIE['username']) ? $_COOKIE['username'] : '';
    $token = isset($_COOKIE['token']) ? $_COOKIE['token'] : '';
    
    $salt = 'taoip';
    
    $_token = md5($salt.$username);
    
    if ($token != $_token) {
      header('location: login.php');
      exit();
    }
    
    echo "欢迎{$username}用户,访问BBS站点";
    
    ?>
    
    

    编辑login.php文件

    <?php
    /**
     * @author DengPeng <3@dengpeng.cc>
     * @since 2017/01/03
     * @copyright copyright (c) 2017 zixue.it GPL
     * @license http://www.zixue.it/
     */
    
    // BBS站点登陆系统
    require '../functions.php';
    
    // (2)验证
    yzToken('taoip.cn');
    
    // (1)判断是否登陆,登陆则跳转首页,未登录则去其他站点获取token
    $url = isset($_GET['url']) ? $_GET['url'] : '';
    if (empty($url)) {
      getToken('http://dengpeng.cc/login.php?url=http://bbs.taoip.cn/login.php');
    }
    
    // (1)判断用户是否登陆
    $bool = isLogin();
    $url = isset($_GET['url']) ? $_GET['url'] : '';
    if ($bool) {
      if (empty($url)) {
        header('location: index.php');
      } else {
        $username = isset($_COOKIE['username']) ? $_COOKIE['username'] : '';
        $token = isset($_COOKIE['token']) ? $_COOKIE['token'] : '';
        $lurl = $url.'?username='.$username.'&token='.$token;
        header('location: '.$lurl);
      }
    }
    
    
    if (!empty($_POST)) {
      $username = isset($_POST['username']) ? $_POST['username'] : '';
      $password = isset($_POST['password']) ? $_POST['password'] : '';
    
      // 从库中查询用户密码
      @$link = mysql_connect('localhost', 'root', '');
      mysql_query('use sso', $link);
      mysql_query('set names utf8', $link);
      $sql = "select * from users where username = '".$username."'";
      $user = mysql_fetch_assoc(mysql_query($sql, $link));
    
      // 校验
      $salt = 'taoip';
      $_password = md5($salt.$username);
    
      // var_dump($user['password'] == $_password);
      // print_r($user);exit();
    
      if ($user['password'] == $_password) {
        // 校验成功,开始登陆
        setcookie('username', $username, time()+3600, '/', 'taoip.cn');
        setcookie('token', $_password, time()+3600, '/', 'taoip.cn');
        // 如果URL没有值重定向到首页,否则重定向到URL页面
        if (empty($url)) {
          header('location: index.php');
        } else {
          header('location: '.$lurl);
        }
      }
    }
    
    ?>
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="generator" content="Sublime Text 3114">
      <meta name="author" content="3@dengpeng.cc">
      <meta name="keywords" content="">
      <meta name="description" content="">
      <title>BBS站点登陆系统</title>
    </head>
    <body>
      <div class="container">
        <h2>bbs.taoip.cn站点登陆系统</h2>
        <form action="" method="post">
          <label for="">用户名</label>
          <input type="text" name="username">
          <br>
          <label for="">密码</label>
          <input type="text" name="password">
          <hr>
          <button type="submit">提交</button>
        </form>
      </div>
    </body>
    </html>

    在blog项目目录下,新建index.php和login.php两个脚本文件

    编辑index.php文件

    <?php
    /**
     * @author DengPeng <3@dengpeng.cc>
     * @since 2017/01/03
     * @copyright copyright (c) 2017 zixue.it GPL
     * @license http://www.zixue.it/
     */
    
    // blog站点
    
    // (1)开启Session会话
    session_name('taoip');
    session_start();
    // (2)获取用户名和token进行校验
    $username = isset($_COOKIE['username']) ? $_COOKIE['username'] : '';
    $token = isset($_COOKIE['token']) ? $_COOKIE['token'] : '';
    
    $salt = 'taoip';
    
    $_token = md5($salt.$username);
    
    if ($token != $_token) {
      header('location: login.php');
      exit();
    }
    
    echo "欢迎{$username}用户,访问blog站点";
    
    ?>
    
    <?php
    /**
     * @author DengPeng <3@dengpeng.cc>
     * @since 2017/01/03
     * @copyright copyright (c) 2017 zixue.it GPL
     * @license http://www.zixue.it/
     */
    
    // blog站点
    
    // (1)开启Session会话
    session_name('taoip');
    session_start();
    // (2)获取用户名和token进行校验
    $username = isset($_COOKIE['username']) ? $_COOKIE['username'] : '';
    $token = isset($_COOKIE['token']) ? $_COOKIE['token'] : '';
    
    $salt = 'taoip';
    
    $_token = md5($salt.$username);
    
    if ($token != $_token) {
      header('location: login.php');
      exit();
    }
    
    echo "欢迎{$username}用户,访问blog站点";
    
    ?>
    
    

    编辑login.php文件

    <?php
    /**
     * @author DengPeng <3@dengpeng.cc>
     * @since 2017/01/03
     * @copyright copyright (c) 2017 zixue.it GPL
     * @license http://www.zixue.it/
     */
    
    // blog站点登陆系统
    require '../functions.php';
    
    // (2)验证
    yzToken('dengpeng.cc');
    
    // (1)判断是否登陆,登陆则跳转首页,未登录则去其他站点获取token
    $url = isset($_GET['url']) ? $_GET['url'] : '';
    if (empty($url)) {
      getToken('http://oa.taoip.cn/login.php?url=http://dengpeng.cc/login.php');
    }
    
    
    // (1)判断用户是否登陆
    $bool = isLogin();
    $url = isset($_GET['url']) ? $_GET['url'] : '';
    if ($bool) {
      if (empty($url)) {
        header('location: index.php');
      } else {
        $username = isset($_COOKIE['username']) ? $_COOKIE['username'] : '';
        $token = isset($_COOKIE['token']) ? $_COOKIE['token'] : '';
        $lurl = $url.'?username='.$username.'&token='.$token;
        header('location: '.$lurl);
      }
    }
    
    
    // (3)判断用户是否提交数据
    if (!empty($_POST)) {
      $username = isset($_POST['username']) ? $_POST['username'] : '';
      $password = isset($_POST['password']) ? $_POST['password'] : '';
    
      // 从库中查询用户密码
      @$link = mysql_connect('localhost', 'root', '');
      mysql_query('use sso', $link);
      mysql_query('set names utf8', $link);
      $sql = "select * from users where username = '".$username."'";
      $user = mysql_fetch_assoc(mysql_query($sql, $link));
    
      // 校验
      $salt = 'taoip';
      $_password = md5($salt.$username);
    
      // var_dump($user['password'] == $_password);
      // print_r($user);exit();
    
      if ($user['password'] == $_password) {
        setCook($username, $_password, 'dengpeng.cc');
        if (empty($url)) {
          header('location: index.php');
        } else {
          header('location: '.$lurl);
        }
      }
    }
    
    ?>
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="generator" content="Sublime Text 3114">
      <meta name="author" content="3@dengpeng.cc">
      <meta name="keywords" content="">
      <meta name="description" content="">
      <title>blog站点登陆系统</title>
    </head>
    <body>
      <div class="container">
        <h2>dengpeng.cc站点登陆系统</h2>
        <form action="" method="post">
          <label for="">用户名</label>
          <input type="text" name="username">
          <br>
          <label for="">密码</label>
          <input type="text" name="password">
          <hr>
          <button type="submit">提交</button>
        </form>
      </div>
    </body>
    </html>
    
    

    配置本地虚拟主机

    具体配置步骤,我想大家应该都会了,不需要我一一赘述.你只需要按照我给的参照,配置和不同域名对应目录的映射即可.

    域名 /项目目录/
    oa.taoip.cn /oa/
    bbs.taoip.cn /bbs/
    dengpeng.cc /blog/

    恭喜您,已经完成了一个简单的SSO系统

    配置完成后,记得重启Web服务器.然后你只需要访问这三个不同的站点,即可实现一个站点登陆,其他站点不再发送登陆请求.

    感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

    以上就是本次介绍的PHP编程电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

    上一篇:Python深度学习与项目实战

    下一篇:数据结构与算法详解

    查看更多
    下载地址:百度网盘下载
    PHP编程 相关电子书
    PHP+MySQL动态网站开发从入门到精通
    PHP+MySQL动态网站开发从入门到精通 PDF 原书扫描版

    《PHP+MySQL动态网站开发从入门到精通》本书循序渐进地介绍了PHP 7 MySQL 5.7开发动态网站的主要知识和技能,提供案例、课件、命令速查手册,让你看得懂、学得会、做得出,教你快速成为网站应用开发高手。

    立即下载
    深入PHP:面向对象、模式与实践(第3版)
    深入PHP:面向对象、模式与实践(第3版) PDF 中文超清版

    《深入PHP:面向对象、模式与实践(第3版)》是PHP专家经典力作的新版本。书中主要介绍了如何使用面向对象技术和设计模式编写稳定的、可维护的代码,如何使用Subversion管理多个开发人员,

    立即下载
    写给PHP开发者的Node.js学习指南
    写给PHP开发者的Node.js学习指南 PDF 高清版

    Node.js是一套用来编写高性能网络服务器的JavaScript工具包。结合PHP和Node.js,我们可以概览整个Web服务器从起源到现在的历史过程以及其中的改变。 《 写给PHP开发者的Node.js学习指南 》的目的是

    立即下载
    PHP和MySQL Web开发(第4版)
    PHP和MySQL Web开发(第4版) PDF 中文版

    《PHP和MySQL Web开发》将PHP开发与MySQL应用相结合,分别对PHP和MySQL做了深入浅出的分析,不仅介绍PHP和MySQL的一般概念,而且对PHP和MySQL的Web应用做了较全面的阐述,并包括几个经典且实用的例子

    立即下载
    PHP高性能开发:基础、框架与项目实战
    PHP高性能开发:基础、框架与项目实战 PDF 完整扫描版 立即下载
    读者心得
    39小时1分钟前回答

    php编程每天必学之验证码

    本文为大家分享了php图片验证码的实现代码,分享给大家供大家参考,具体内容如下 1.验证码图片生成 captcha.php //1.生成100*30大小的图片,默认为黑色$image = imagecreatetruecolor(100,30);//创建白色底图$bgcolor = imagecolorallocate($image,255,255,255);//用白色填充黑色imagefill ($image,0,0,$bgcolor);//2.随机显示数字或字母$captch_code = "";for($i=0;$i4;$i++){ $fontsize=6; $fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120)); $data = "abcdefghijkmnpqrstuvwxy3456789"; $fontcontent =substr($data,rand(0,strlen($data)),1); $captch_code .=$fontcontent; $x = ($i*100/4)+rand(5,10); $y = rand(5,10); imagestring($image, $fontsize, $x, $y, $fontcontent,$fontcolor);}$_SESSION["authcode"] = $captch_code;//3.增加干扰……

    147小时1分钟前回答

    php函数式编程简单示例

    本文实例讲述了php函数式编程。分享给大家供大家参考,具体如下: // 函数式编程$users = array( array('id' = 1, 'name' = 'abc1', 'age' = 29, '性别' = '男'), array('id' = 2, 'name' = 'abc2', 'age' = 21, '性别' = '女'), array('id' = 3, 'name' = 'abc3', 'age' = 23, '性别' = '男'), array('id' = 4, 'name' = 'abc4', 'age' = 25, '性别' = '女'), array('id' = 5, 'name' = 'abc5', 'age' = 20, '性别' = '女'), array('id' = 6, 'name' = 'abc6', 'age' = 24, '性别' = '男'), array('id' = 7, 'name' = 'abc7', 'age' = 28, '性别' = '女'), array('id' = 8, 'name' = 'abc8', 'age' = 27, '性别' = '男'),);//获取性别为女的用户$arrayFilter = array_filter($users, function($item){ return $item['性别'] == '女' ;});// 不影响原数组,返回一个新数组……

    码农之家

    武成天 提供上传

    资源
    38
    粉丝
    50
    喜欢
    91
    评论
    20

    Copyright 2018-2021 www.xz577.com 码农之家

    版权投诉 / 书籍推广:520161757@qq.com