php的网络编程
来源:互联网 发布:dnf面板数据怎么看 编辑:程序博客网 时间:2024/06/09 15:48
php的网络编程
http协议
http协议解析介绍
http协议是个请求-应答模式的基于流的协议,下层走的是tcp协议。
主要是请求头+请求内容
响应头+响应内容的方式
抓包工具
我使用charls
php的socket编程
类似c的socket编程
c的socket编程
php常用的curl模块例子
get模块
function get($url, array $get = array(), array $options = array()) { $defaults = array( CURLOPT_URL => $url . (strpos($url, '?') === FALSE ? '?' : '') . http_build_query($get, '', '&'), //CURLOPT_URL => '', CURLOPT_TIMEOUT => 20, CURLOPT_CONNECTTIMEOUT => 15, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_REFERER => gc('www'), //CURLOPT_HTTPHEADER => array('Host:i.open.book.weibo.com'), ); //echo $defaults[CURLOPT_URL]; $ch = curl_init(); curl_setopt_array($ch, ($options + $defaults)); $result = curl_exec($ch); curl_close($ch); return $result;}
post模块
function post($url, array $post = array(), array $options = array()) { $defaults = array( CURLOPT_POST => 1, CURLOPT_HEADER => 0, CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => 1, CURLOPT_TIMEOUT => 20, CURLOPT_CONNECTTIMEOUT => 15, CURLOPT_POSTFIELDS => http_build_query($post, '', '&'), CURLOPT_REFERER => gc('www'), ); $ch = curl_init(); curl_setopt_array($ch, ($options + $defaults)); $result = curl_exec($ch); if (curl_error($ch)) { trigger_error(curl_error($ch)); } curl_close($ch); return $result; }
php的session和cookie
Cookie和Session简介与区别
在非常多时候,我们需要跟踪浏览者在整个网站的活动,对他们身份进行自动或半自动的识别(也就是平时常说的网站登陆之类的功能),这时候,我们常采用Cookie与 Session来跟踪和判断。区别: Session信息是存放在server端,但session id是存放在client cookie的,当然php的session存放方法是多样化的,这样就算禁用cookie一样可以跟踪 Cookie是完全保持在客户端的如:IE firefox 当客户端禁止cookie时将不能再使用
Cookie的配置与应用
Setcookie(string name, string value, int expire,string path, string domain, int secure);
其中name是cookie变量名称标识,你在php中将能象使用普通变量名相同来用他引用cookie变量。value是cookie变量的初始值,expire 表示该cookie变量的有效时间;path 为该cookie变量的相关路径;domain 表示cookie变量的网站;secure 则需在 https 的安全传输时才有效。SetCookie("Cookie", "cookievalue",time()+3600, "/forum", ".php100.com", 1);
接收和处理Cookie
PHP对Cookie的接收和处理的支持非常好,是完全自动的,跟FORM变量的原则一样,特别简单。比如设置一个名为 MyCookier的Cookie,PHP会自动从WEB服务器接收的HTTP头里把它分析出来,并形成一个与普通变量一样的变量,名为$ myCookie,这个变量的值就是Cookie的值。数组同样适用。另外一个办法是引用PHP的全局变量$HTTP_COOKIE_VARS数组。分别举例如下:(假设这些都在以前的页面里设置过了,并且仍然有效)
echo $MyCookie; echo $CookieArray[0]; echo $_COOKIE["MyCookie"]; echo $HTTP_COOKIE_VARS["MyCookie"];
删除Cookie
要删除一个已经存在的Cookie,有两个办法:
1、SetCookie("Cookie", ""); 2、SetCookie("Cookie", "value" , time()-1 / time() );
使用Cookie的限制
1、必须在HTML文件的内容输出之前设置;2、不同的浏览器对Cookie的处理不一致,且有时会出现错误的结果。3、限制是在客户端的。一个浏览器能创建的Cookie数量最多为30个,并且每个不能超过4KB,每个WEB站点能设置的Cookie总数不能超过20个。
Session的配置与应用
session_start(); //初始化session.需在文件头部 $_SESSION[name]=value; //配置Seeeion echo $_SESSION[name]; //使用session isset($_SESSION[name]); // 判断 unset($_SESSION[name]); //删除 session_destroy(); //消耗所有session 注意:session_register(),session_unregister,session_is_registered在php5下不再使用
if($_GET['out']){ //用于注销cookies setcookie('id',""); setcookie('pass',""); echo "<script>location.href='login.php'</script>"; //因为cookies不是及时生效的,只有你再次刷新时才生效,所以,注销后让页面自动刷新。}if($_POST['name']&&$_POST['password']) //如果变量用户名和密码存在时,在下面设置cookies{ //用于设置cookies setcookie('id',$_POST['name'],time()+3600); setcookie('pass',$_POST['password'],time()+3600); echo "<script>location.href='login.php'</script>"; //让cookies及时生效}if($_COOKIE['id']&&$_COOKIE['pass']){ //cookies设置成功后,用于显示cookies echo "登录成功!<br />用户名:".$_COOKIE['id']."<br/>密码:".$_COOKIE['pass']; echo "<br />"; echo "<a href='login.php?out=out'>注销cookies</a>"; //双引号内,如果再有引号,需要用单引号。}?>
<form action="" method="post">用户ID:<input type="text" name="name" /><br/><br/>密码:<input type="password" name="password" /><br/><br /><input type="submit" name="submit"></form>
<?php//session用法实例session_start();//启动session,必须放在第一句,否则会出错。if($_GET['out']){ unset($_SESSION['id']); unset($_SESSION['pass']);}if($_POST['name']&&$_POST['password']){ //用于设置session $_SESSION['id']=$_POST['name']; $_SESSION['pass']=$_POST['password'];}if($_SESSION['id']&&$_SESSION['pass']){ echo "登录成功!<br/>用户ID:".$_SESSION['id']."<br />用户密码:".$_SESSION['pass']; echo "<br />"; echo "<a href='login.php?out=out'>注销session</a>";}?>
<form action="login.php" method="post">用户ID:<input type="text" name="name" /><br/><br/>密码:<input type="password" name="password" /><br/><br /><input type="submit" name="submit"></form>
cookie 和session的说明参考
0 0
- php的网络编程
- PHP是一门高效的网络编程语言
- PHP是一门高效的网络编程语言
- PHP的Socket网络编程入门指引
- php网络编程
- [python&php 网络编程]获取远程机器的信息
- [python&php 网络编程]socket的错误捕捉
- [python&php 网络编程]完整的socket服务端客户端
- PHP socket 网络编程实例
- PHP socket 网络编程实例
- php网络编程socket通讯
- PHP网络编程:创建登录表单
- PHP网络编程你准备好了吗?
- PHP网络编程技术与实例
- PHP中的网络编程 -- Socket篇
- PHP socket网络编程之使用curl
- [python&php 网络编程]格式化IPv4地址
- [python&php 网络编程]字节序转换
- 公私钥转换成十六进制形式
- C#第二章课后作业2
- Qt中数据库操作
- 解决CC2540 XDATA内存不足
- Access restriction: The type 'Hashtable' is not API
- php的网络编程
- Avtivity的laucnmode模式用处
- PJSIP协议栈在Linux下通信测试
- 树结构练习——判断给定森林中有多少棵树
- 洛谷 P1121 环状最大两段子段和
- mybatis的#与$符号及sql server类型转换报错
- 学习日志------手机测试工具,随身调GT
- Android Studio 常用基本设置
- Java在静态方法中直接调用了动态方法出现错误