$out = "POST http://www.test.com/2.php HTTP/1.1\r\n";
//header结束是两个换行
$out .= "Host: www.test.com\r\n";
$out .= "Connection: Close\r\n";
$out .= "Referer: http://www.google.com\r\n";//来源地址
$out .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3\r\n";//伪造浏览器
$out .= "Cookie: username=admin; password=admin\r\n";
$out .= "Content-type: application/x-www-form-urlencoded\r\n";//post请求,添加此行,get不需要
$str = "id=ffff&id2=eeeeeeee";//post传递的参数
$out .= "Content-Length: ".strlen($str)."\r\n\r\n";//post请求,添加此行,get不需要
$out .= $str;//post的内容,get不需要
fwrite($fp, $out);//写入文件(可安全用于二进制文件)
//fputs($fp, $out);//写入文件(可安全用于二进制文件)
//读取请求地址设置的cookie值
//下面的判断,读到空行时,说明头已经结束了,接下来是内容。
while( ($line=trim(fgets($fp))) != "" )
{
$header.=$line; /* */
if(strstr($line,"Set-Cookie:"))
{
list($coo,$cookieLine)=explode(" ",$line);
$cookieStr[] = $cookieLine; //所有setcookie的值
}
}
var_dump($cookieStr);
//读取返回的内容项
$str = '';
while (!feof($fp)) {//测试文件指针是否到了文件结束的位置
$str .= fgets($fp, 128);//从文件指针中读取一行并过滤掉 HTML 标记
}
var_dump($str);
fclose($fp);//关闭一个已打开的文件指针
}
session/cookie
setcookie("MyCookie[foo]", 'Testing 1', time()+3600)
session_start()
ini_set('session.cookie_lifetime',0); session对应cookie存活时间
ini_set('session.save_path', 'dir');
ini_set('session.save_path', '2;session');session分两级存放
ini_set('session.name','SNS');
客户端禁用Cookie
session.use_trans_sid = 1 开启url传递sessionId php.ini
session销毁
mysql
$link = mysql_connect('localhost','root','root') or die(mysql_errno());
mysql_select_db('test') or die (mysql_errno());
mysql_query('SET NAMES gbk');
$sql = "SELECT * FROM test LIMIT 0,20";
$result = mysql_query($sql) or die(mysql_errno());
while($msg = mysql_fetch_array($result)){
print_r($msg);
}
mysql_free_result($result);
mysql_close($link);
mysqli
查询
-------------------------------过程
$db_host="localhost"; //连接的服务器地址
$db_user="root"; //连接数据库的用户名
$db_psw="root"; //连接数据库的密码
$db_name="test"; //连接的数据库名称
$mysqli=mysqli_connect($db_host,$db_user,$db_psw,$db_name);
mysqli_query($mysqli,'SET NAMES utf8');
$query="select * from users";
$result=mysqli_query($mysqli,$query);
while($row =mysqli_fetch_array($result)) //循环输出结果集中的记录
{
echo ($row['id'])."
";
echo ($row['username'])."
";
echo ($row['password'])."
";
echo "
";
}
mysqli_free_result($result);
mysqli_close($mysqli);
-------------------------------对象
$db_host="localhost"; //连接的服务器地址
$db_user="root"; //连接数据库的用户名
$db_psw="root"; //连接数据库的密码
$db_name="test"; //连接的数据库名称
$mysqli=new mysqli($db_host,$db_user,$db_psw,$db_name);
$mysqli->query('SET NAMES utf8');
$query="select * from users";
$result=$mysqli->query($query);
if ($result)
{
if($result->num_rows>0) //判断结果集中行的数目是否大于0
{
while($row =$result->fetch_array()) //循环输出结果集中的记录
{
echo ($row[0])."
";
echo ($row[1])."
";
echo ($row[2])."
";
echo "
";
}
}
}
else
{
echo "查询失败";
}
$result->free();
$mysqli->close();
增、删、改
$mysqli=new mysqli("localhost","root","root","sunyang");//实例化mysqli
$query="delete from employee where emp_id=2";
$result=$mysqli->query($query);
if ($result){
echo "删除操作执行成功";
}else{
echo "删除操作执行失败";
}
$mysqli->close();
绑定结果
$mysqli=new mysqli("localhost","root","root","test"); //实例化mysqli
$query="select * from users";
$result=$mysqli->prepare($query); //进行预准备语句查询
$result->execute(); //执行预准备语句
$result->bind_result($id,$username,$password); //绑定结果
while ($result->fetch()) {
echo $id.'_';
echo $username.'_';
echo $password;
echo "
";
}
$result->close(); //关闭预准备语句
$mysqli->close(); //关闭连接
绑定参数
$mysqli=new mysqli("localhost","root","root","test"); //实例化mysqli
$query="insert into users (id, username, password) values ('',?,?)";
$result=$mysqli->prepare($query);
$result->bind_param("ss",$username,$password); //绑定参数 I:integer D:double S:string B:blob
$username='sy0807';
$password='employee7';
$result->execute(); //执行预准备语句
$result->close();
$mysqli->close();
绑定参数、绑定结果
$mysqli=new mysqli("localhost","root","root","test"); //实例化mysqli
$query="select * from users where id < ?";
$result=$mysqli->prepare($query);
$result->bind_param("i",$id); //绑定参数
$id=10;
$result->execute();
$result->bind_result($id,$username,$password); //绑定结果
while ($result->fetch()) {
echo $id."_";
echo $username."_";
echo $password;
echo "
";
}
$result->close();
$mysqli->close();
多条查询语句
$mysqli=new mysqli("localhost","root","root","test"); //实例化mysqli
$query = "select id from users ;";
$query .= "select id from test ";
if ($mysqli->multi_query($query)) { //执行多个查询
do {
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_row()) {
echo $row[0];
echo "
";
}
$result->close();
}
if ($mysqli->more_results()) {
echo ("-----------------
"); //连个查询之间的分割线
}
} while ($mysqli->next_result());
}
$mysqli->close();//关闭连接
pdo
setAttribute
$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER); //设置属性
PDO::ATTR_CASE: 强制列名变成一种格式,详细如下(第二个参数):
PDO::CASE_LOWER: 强制列名是小写.
PDO::CASE_NATURAL: 列名按照原始的方式
PDO::CASE_UPPER: 强制列名为大写.
PDO::ATTR_ERRMODE: 错误提示.
PDO::ERRMODE_SILENT: 不显示错误信息,只显示错误码.
PDO::ERRMODE_WARNING: 显示警告错误.
PDO::ERRMODE_EXCEPTION: 抛出异常.
PDO::ATTR_ORACLE_NULLS (不仅仅是ORACLE有效,别的数据库也有效): )指定数据库返回的NULL值在php中对应的数值。
PDO::NULL_NATURAL: 不变.
PDO::NULL_EMPTY_STRING: Empty string is converted to NULL.
PDO::NULL_TO_STRING: NULL is converted to an empty string.
setFetchMode(PDO::FETCH_ASSOC)
PDO::FETCH_ASSOC -- 关联数组形式
PDO::FETCH_NUM -- 数字索引数组形式