PHP(Personal Home Page的缩写,现已更名Hypertext Preprocessor“超文本预处理器”)
静态web开发:html,内容一成不变
动态web开发: php(Zend)、jsp(sun-oracle)、asp(微软)、asp.net、cgi,
运行在服务器端,由程序决定内容
--------------------------------
历史
-------------------------------
用Perl语言编写的程序,显示个人履历,以及统计网页流量;
用C语言重新编写,包括可以访问数据库;
PHP1.0版本,提供了访客留言本、访客计数器等简单的功能。
PHP 2版本,有 PHP 的一些雏型,类似 Perl的变量命名方式、表单处理功能、以及嵌入到 HTML 中执行的能力。
PHP 3版本,更名Hypertext Preprocessor, 成立了 Zend Technologies公司 来管理 PHP 的开发。
PHP 4、5使用了第二代的Zend Engine。包含了强化的面向对象、引入PDO(PHP Data Objects存取数据库的延伸函数库)。
PHP6 更好的支持web2.0,Unicode支持,强化的面向对象,对xml编程的支持,soap(简单对象协议)
------------------------------------
特点
------------------------------------
跨平台,支持多种数据库
免费(成本低)且是开源代码(可二次开发)
上手快,相对简单,被嵌入于HTML语言,实用性强,更适合初学者
Php 消耗相当少的系统资源,效率高,安全性好
面向对象,php完全可以用来开发大型商业程序。
解释执行的语言 缺点:
安装复杂,配置繁琐
数据太灵活,解释执行,运行时才能暴露程序对错
-----------------------------------------
功能
-------------------------------------------
PHP 能够生成动态页面内容
PHP 能够创建、打开、读取、写入、删除以及关闭服务器上的文件
PHP 能够接收表单数据
PHP 能够发送并取回 cookies
PHP 能够添加、删除、修改数据库中的数据
PHP 能够限制用户访问网站中的某些页面
PHP 能够对数据进行加密
---------------------------------
开发工具ide
---------------------------------
商业版:Zend Studio,PhpEd,Adobe Dreamweaver,PHP Storm
免费版:Eclipse with PDT,NetBeans,Aptana Studio ***c/s与b/s
c/s
client 客户端 server 服务器
需要对客户端机器有要求
安全性高
效率变低 b/s优势
browser 浏览器 server 服务器
1.开发成本低
2.管理维护简单
3.产品升级便利
4.对用户培训费用低
5.用户使用方便,出现故障概率小
b/s不足:
1.安全性不足
2.客户端不能随心变化,受浏览器限制
c/s与b/s相反 web服务器:
1.为什么需要web服务器?
因为要从服务器取数据或者提交给服务器数据
2.怎样查看发送或接受到的是什么?
用httpwatch工具来获取,有利于我们了解的更加透彻
3.web服务器有哪些?
iis服务器--微软为 asp.net服务
lighttpd 德国 轻便、效率高 成熟度低于apache
nginx 俄国 内存少,并发能力强,使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等
apache 排名第一最流行,可靠 基于模块化
----------------------------
环境配置
----------------------------
1.安装web服务器:Apache2.2
(1)下载httpd-2.2.22-win32-x86-no_ssl.msi
(2)浏览器中http://localhost ---> it works即成功
(3)关闭/启动 进入apache bin 命令行 httpd -k shutdown/restart
(4)默认端口80,查看端口 netstat -an,监听端口的使用程序 netstat -anb
(5)配置文件 conf下的httpd.conf 可以修改端口号
【注意】一个端口号只能被一个应用监听,但一个应用可以监听多个端口
bin: 常用命令
cgi-bin: linux下命令
conf 配置
htdocs 存放用户web工程文件(默认)
manual 手册
error 错误记录
#配置虚拟目录
<IfModule dir_module>
#DirectoryIndex相当于欢迎页面
DirectoryIndex index.php index.html
#站点别名
Alias /mydemo "E:/mydemo"
</IfModule>
#设置访问权限设置
<Directory "E:/mydemo">
Order allow,deny #先允许所有ip访问,deny拒绝所有
Allow from all #先看看allow中允许的ip
</Directory>
例如:
Order deny,allow #先拒绝192.168,然后允许192.168.2.2
deny from 192.168
Allow from 192.168.2.2
结果是拒绝除192.168.2.2以外的以192.168开头的所有ip
#配置虚拟主机
(1)启用httpd-vhosts.conf
在httpd.conf中去点 Include conf/extra/httpd-vhosts.conf前的#
(2)conf/extra/httpd-vhosts.conf中修改第二个VirtualHost如下
<VirtualHost *:80>
DocumentRoot "E:/mydemo"
#设置欢迎页面
DirectoryIndex index.php index.html
<Directory />
#不允许别人修改页面
AllowOverride None
#设置访问权限
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
(3)修改host访问
本地 C:\Windows\System32\drivers\etc下的hosts文件,解析ip地址与域名对应关系(localhost即域名)
如果没有查到域名,去外网dns服务器查找
hosts文件添加 127.0.0.1 higcom
127.0.0.1 www.sohu.cn
2.安装php开发核心包:
http://php.net下载
修改httpd.conf改 LoadModule php5_module,使apache能检索到php安装路径
修改php.ini
设置php扩展库路径extension_dir 为文件夹ext的路径
开启库功能extension 3.安装ide: phpstorm
在phpstorm中File->Settings->php(languages&Frameworks下的php)
interpreter中选择php.exe安装路径,如G:\web_tools\AppServ\php6\php.exe
第一个php程序
<?php
echo "我的第一段 PHP 脚本!"
?>
【注意】
1.输出方法有两种:echo 和 print
区别:
echo - 能够输出一个以上的字符串,没有返回值,速度快
print - 只能输出一个字符串,并始终返回 1,速度慢
例如:
<?php
echo "输出","aaa","bbb";
print "打印";
?>
2.输出服务名 echo $_SERVER["SERVER_SOFTWARE"];
3.常见错误:
(1) phpstorm中502 bad gateway:无效网关
解决办法:File->Settings->php(languages&Frameworks下)设置php.exe
或者File—Settings—Build,Execution,Deployment—Debugger修改端口号为80
(输入无效,按上下按钮才有效,耗时太长,推荐1)
若还是502,在任务管理器中看是否有php-cgi在工作,结束掉该进程即可。
----------------------------------------------------------
php运行原理
----------------------------------------------------------
客户端发送给服务器一个请求时,若请求资源为html文件时,服务器直接将html文件发送给客户端浏览器;
若请求的是php文件,服务器将php解释为标准的html代码然后再发送给客户端。

php自学笔记1的更多相关文章

  1. 《Linux内核设计与实现》课本第四章自学笔记——20135203齐岳

    <Linux内核设计与实现>课本第四章自学笔记 进程调度 By20135203齐岳 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统.多任务操作系统使多个进程处于堵 ...

  2. 《Linux内核设计与实现》课本第三章自学笔记——20135203齐岳

    <Linux内核设计与实现>课本第三章自学笔记 进程管理 By20135203齐岳 进程 进程:处于执行期的程序.包括代码段和打开的文件.挂起的信号.内核内部数据.处理器状态一个或多个具有 ...

  3. 《Linux内核设计与实现》课本第十八章自学笔记——20135203齐岳

    <Linux内核设计与实现>课本第十八章自学笔记 By20135203齐岳 通过打印来调试 printk()是内核提供的格式化打印函数,除了和C库提供的printf()函数功能相同外还有一 ...

  4. python自学笔记

    python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 ...

  5. ssh自学笔记

    Ssh自学笔记 Ssh简介 传统的网络服务程序,如:ftp.pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据.而且,这些服务 ...

  6. JavaScript高级程序设计之自学笔记(一)————Array类型

    以下为自学笔记. 一.Array类型 创建数组的基本方式有两种: 1.1第一种是使用Array构造函数(可省略new操作符). 1.2第二种是使用数组字面量表示法. 二.数组的访问 2.1访问方法 在 ...

  7. vue 自学笔记记录

    vue 自学笔记(一): 知识内容:  安装vue ,创建vue实例,安装第一个组件,单项数据流 https://www.cnblogs.com/baili-luoyun/p/10763163.htm ...

  8. JS自学笔记05

    JS自学笔记05 1.例题 产生随机的16进制颜色 function getColor(){ var str="#"; var arr=["0","1 ...

  9. JS自学笔记04

    JS自学笔记04 arguments[索引] 实参的值 1.对象 1)创建对象 ①调用系统的构造函数创建对象 var obj=new Object(); //添加属性.对象.名字=值; obj.nam ...

  10. JS自学笔记03

    JS自学笔记03 1.函数练习: 如果函数所需参数为数组,在声明和定义时按照普通变量名书写参数列表,在编写函数体内容时体现其为一个数组即可,再传参时可以直接将具体的数组传进去 即 var max=ge ...

随机推荐

  1. android112 c代码打印日志,c反编译调用java

    activity: package com.itheima.ccalljava; import android.os.Bundle; import android.app.Activity; impo ...

  2. java05

    RGB(红绿蓝)- 全0就是黑色,全是最高255就是白色. //第一步类 package cn.bjsxt.test; import java.awt.Color; import java.awt.F ...

  3. Mac OS X 10.7下找不到~/Library/Application Support的解决方案

    28二 最近有台机器升级到了Mac OS X 10.7,Finder的sidebar变了不说,连用户目录下的Library目录也不见了.但是Terminal中是有的,估计是被隐藏了.直接在Finder ...

  4. ArcPy 函数列表(按字母顺序)

    Function name Category AddError Messages and error handling AddFieldDelimiters Fields AddIDMessage M ...

  5. PHP中将数据库中的数据显示在网页

    最近没事把以前的东西感觉还可以的又简单的看了以下,因为还在学习新的东西,所以,发表的博客也不是很多,也许是有感而发吧. 这次讲的是mysql数据库中的数据使用php如何显示在网页中.首先,先建好自己的 ...

  6. java 中的set方法和get方法的理解

    get的意思是获取,set的意思是设置. get方法和set方法是实现类的封装访问的很好的工具. 当类中的变量设为private 时,他的意思就是说,只能通过自身和子类的访问,但是对于别的其他的类来说 ...

  7. 图解I/O的五种模型

    1.1 五种I/O模型 1)阻塞I/O 2)非阻塞I/O 3)I/O复用 4)事件(信号)驱动I/O 5)异步I/O 1.2 为什么要发起系统调用? 因为进程想要获取磁盘中的数据,而能和磁盘打交道的只 ...

  8. sqlserver 连不上的问题

    tcp ip  属性 ipall  属性改为1433

  9. python中关于正则表达式二

    2.2 反向引用 \1, \2... 表达式在匹配时,表达式引擎会将小括号 "( )" 包含的表达式所匹配到的字符串记录下来.在获取匹配结果的时候,小括号包含的表达式所匹配到的字符 ...

  10. html-----008

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...