曾经简单的学习过PHP,看的是《PHP和MySQL Web开发》,还有万能的搜索引擎的帮助。这次准备系统的学习一下,参考资料是PHP Manual。

PHP能做什么

PHP主要用于服务端的脚本程序,但PHP的功能远不局限于此。PHP主要用于以下三个领域:

  • 服务端脚本
  • 命令行脚本
  • 编写桌面应用程序(PHP-GTK)

实用的脚本

$_SERVER是一个特殊的PHP保留变量,它包含了web服务器提供的所有信息,被称为超全局变量。可以通过$_SERVER['HTTP_USER_AGENT']检查浏览页面的访问者在用什么浏览器。

对于IE浏览器,$_SERVER['HTTP_USER_AGENT']的值可能是:

Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

可以通过调用strpos()函数,判断用户代理是否为IE浏览器。

<?php
$ua = $_SERVER['HTTP_USER_AGENT'];
if(strpos($ua, 'Trident') !== FALSE || strpos($ua, 'MSIE') !== FALSE) {echo 'You are using Internet Explorer.';
} else {echo 'You are not using Internet Explorer.';
}

这段代码中涉及到了strpos()!==FALSE的使用。

strpos()是PHP的一个内置函数,其功能是在一个字符串(haystack)中搜索另外一个字符串(needle)。若找到,则函数返回needle在haystack中相对于开头的位置;如果没有,则返回FALSE。

<?php
$haystack = 'hello, world.';
$needle = 'wo';
echo strpos($haystack, $needle);

对于上面这段代码,strpos()返回的结果为7。对于strpos()返回的具体的值,可能在空格、中文时,计算方法有所不同,后面再讨论。

处理表单

PHP处理表单的方式很方便,可以使用超全局变量$_POST获得数据。使用下面的方式定义一个简单的HTML表单,当用户填写了该表单并点击了提交按钮,页面action.php将被调用。

<form action="action.php" method="post"><p>Name: <input type="text" name="name" /></p><p>Age: <input type="text" name="age" /></p><p><input type="submit" /></p>
</form>

通过下面这段代码可以打印来自表单的数据。

Hello, <?php echo htmlspecialchars($_POST['name']); ?>.
You are <?php echo (int)$_POST['age']; ?> year(s) old.

这段代码中还涉及到了htmlspecialchars()(int)的使用。htmlspecialchars()使得HTML之中的特殊字符被正确的编码,从而不会被使用者在页面注入HTML标签或者Javascript代码。

工具

工欲善其事,必先利其器。

有个好的工具,能够事半功倍。为了提高效率,我喜欢使用VIM,并且在命令行中运行代码。

对于工具,这个帖子讲的不错的,window下的cmd替代工具? - windows - SegmentFault。

PHP环境推荐使用WampServer和XAMPP。

(全文完)

转载于:https://www.cnblogs.com/sintune/p/php-getting-started.html

入门指引 - PHP手册笔记相关推荐

  1. Scons入门指南 使用教程 笔记

    Scons入门指南 使用教程 笔记 说明:本文为作者阅读scons官方手册之后编写的笔记,更详细内容可以自行查看官方文档 1. 介绍 Scons是一个开放源码.以Python语言编码的自动化构建工具, ...

  2. 《Unity Shader入门精要》笔记:初级篇(1)

    本篇博客主要为个人学习所编写读书笔记,不用于任何商业用途,以及不允许任何人以任何形式进行转载. 本篇博客会补充一些扩展内容(例如其他博客链接). 本篇博客还会提供一些边读边做的效果截图.文章内所有数学 ...

  3. 常量 - PHP手册笔记

    原文:常量 - PHP手册笔记 常量语法 常量在脚本执行期间其值不能改变.常量大小写敏感,传统上常量标识符总是大写.常量一旦定义就不能被重新定义或取消定义,常量的值只能是标量. 可以用define() ...

  4. 预定义变量 - PHP手册笔记

    原文:预定义变量 - PHP手册笔记 预定义变量将所有的外部变量表示成内建环境变量,并且将错误信息表示成返回头.超全局变量是在全部作用域中始终可用的内置变量.在函数或方法中无需执行global $va ...

  5. 流程控制 - PHP手册笔记

    流程控制 - PHP手册笔记 原文:流程控制 - PHP手册笔记 脚本由语句构成,语句靠流程控制实现功能,这一节主要介绍了几个关键字的使用. elseif elseif和else if的行为完全一样, ...

  6. sklearn快速入门教程 -- 机器学习工具的快速入门指引

    本系列教程旨在提供一个直观.快速的入门指引,从应用的角度进行阐述,提供框架性的理解方式. 全程共5篇教程.若抛开下载和安装的过程,应在2小时左右全部阅读和动手测试完成. (一)准备工作 (二)线性回归 ...

  7. python基础学习[python编程从入门到实践读书笔记(连载一)]

    写在前面:本文来自笔者关于<python编程从入门到实践>的读书笔记与动手实践记录. 程序员之禅 文章目录 02变量和简单数据类型 03 列表简介 04 操作列表 05 if语句 06 字 ...

  8. 深度学习入门之PyTorch学习笔记:卷积神经网络

    深度学习入门之PyTorch学习笔记 绪论 1 深度学习介绍 2 深度学习框架 3 多层全连接网络 4 卷积神经网络 4.1 主要任务及起源 4.2 卷积神经网络的原理和结构 4.2.1 卷积层 1. ...

  9. 深度学习入门之PyTorch学习笔记:多层全连接网络

    深度学习入门之PyTorch学习笔记 绪论 1 深度学习介绍 2 深度学习框架 3 多层全连接网络 3.1 PyTorch基础 3.2 线性模型 3.2.1 问题介绍 3.2.2 一维线性回归 3.2 ...

最新文章

  1. pinpoint 安装部署
  2. Spring FactoryBean的开发1
  3. [转]详解HTTP包
  4. 编程实现背包的递归和非递归两种解法_算法动态规划(七)背包问题4
  5. 忍不住跟着吐槽 —“当你辛辛苦苦写的博客文章被无情复制,成为了他的原创,你作何感想?”...
  6. Homebrew命令具体解释
  7. 你知道吗?macOS Sierra修复漏洞超过60个
  8. Linux平台 Oracle 11gR2 RAC安装Part1:准备工作
  9. 吊炸天的Kubernetes微服务图形化管理工具:Kuboard,必须推荐给你!
  10. 2021-07-01数组和对象循环
  11. 怎么禁止使用计算机的软件,电脑如何禁止程序运行 一键彻底禁止电脑软件运行方法...
  12. ASCII编码、GB2312编码、Unicode编码、UTF-8编码
  13. dotnet publish 不生成pdb文件
  14. echarts:legend调整
  15. 汇编语言(Assembly Language)简介
  16. Kata Container 2.x 和 3.0 安装,内核编译,镜像制作
  17. 有个程序员的老公是种什么体验,嫁给程序员,我超级后悔!
  18. 相思赋予谁 --知错
  19. 一种快速简单而又有效的低照度图像恢复算法
  20. Genymotion 自配 AndoidSDK 一直Booting

热门文章

  1. 请问如何在出错后能恢复到改变设置前的状态?
  2. C#6.0,C#7.0新特性
  3. 使用 Xmlrpc 来控制cobbler api
  4. GDI+ 学习记录(11): 路径渐变画刷 - PathGradientBrush
  5. 设计强大的云应用程序
  6. Angularjs 中select回显后重复选项的解决
  7. java 库存 进销存 商户 多用户管理系统 SSM springmvc 项目源码
  8. MaxCompute(原ODPS) 脑图 - 常用知识总结
  9. 1.2-puppet安装准备工作
  10. 将不确定变为确定~异常被抛出的顺序