当前位置:  编程技术>php
本页文章导读:
    ▪php模拟post行为代码总结(POST方式不是绝对安全)       这里提供两种方法供选择:第一:手写代码。第二:利用HttpClient php类库   第一种方法: 代码如下: <?PHP $flag = 0; //要post的数据 $argv = array( 'var1'=>'abc', 'var2'=>'你好吗'); //构造要pos.........
    ▪用穿越火线快速入门php面向对象       代码如下: <?php /* *用穿越火线快速入门php面向对象! *php目前已经成为国内的主流web developer的首选开发语言,其强大的面向对象容易使初学者找不到思绪,一头雾水! *,借助此文希望对初学者.........
    ▪php重定向的三种方法分享       一、用HTTP头信息 也就是用PHP的HEADER函数。PHP里的HEADER函数的作用就是向浏览器发出由HTTP协议规定的本来应该通过WEB服务器的控制指令,例如: 声明返回信息的类型("Context-type: xxx/xxx"),页.........

[1]php模拟post行为代码总结(POST方式不是绝对安全)
    来源: 互联网  发布时间: 2013-11-30
这里提供两种方法供选择:第一:手写代码。第二:利用HttpClient php类库
  第一种方法:
代码如下:

<?PHP
$flag = 0;
//要post的数据
$argv = array(
'var1'=>'abc',
'var2'=>'你好吗');
//构造要post的字符串
foreach ($argv as $key=>$value) {
if ($flag!=0) {
$params .= "&";
$flag = 1;
}
$params.= $key."="; $params.= urlencode($value);
$flag = 1;
}
$length = strlen($params);
//创建socket连接
$fp = fsockopen("127.0.0.1",80,$errno,$errstr,10) or exit($errstr."--->".$errno);
//构造post请求的头
$header = "POST /mobile/try.php HTTP/1.1";
$header .= "Host:127.0.0.1";
$header .= "Referer:/mobile/sendpost.php";
$header .= "Content-Type: application/x-www-form-urlencoded";
$header .= "Content-Length: ".$length."";
$header .= "Connection: Close";
//添加post的字符串
$header .= $params."";
//发送post的数据
fputs($fp,$header);
$inheader = 1;
while (!feof($fp)) {
$line = fgets($fp,1024); //去除请求包的头只显示页面的返回数据
if ($inheader && ($line == "n" || $line == "")) {
$inheader = 0;
}
if ($inheader == 0) {
echo $line;
}
}
fclose($fp);
?>

  第二种方法是:使用httpclient类
代码如下:

$pageContents = HttpClient::quickPost('http://example.com/someForm', array(
'name' => 'Some Name',
'email' => 'email@example.com'
));

  使用httpclient类库,可以去官方下载最新的类库,官方地址为:http://scripts.incutio.com/httpclient/index.php
  附加一些点php httpclient的其他几个用法
  静态方法获取网页:
代码如下:

$pageContents = HttpClient::quickGet('http://bankcha.com')

  Get方法获取
代码如下:

$client = new HttpClient('bankcha.com');
if (!$client->get('/')) {
die('An error occurred: '.$client->getError());
}
$pageContents = $client->getContent();
  带调试的Get方法获取
  PHP代码
$client = new HttpClient('bankcha.com');
$client->setDebug(true);
if (!$client->get('/')) {
die('An error occurred: '.$client->getError());
}
$pageContents = $client->getContent();
  带自动转向的Get方法
  PHP代码
  $client = new HttpClient('www.bankcha.com');
$client->setDebug(true);
if (!$client->get('/')) {
die('An error occurred: '.$client->getError());
}
$pageContents = $client->getContent();
  检查页面是否存在
  PHP代码
$client = new HttpClient('bankcha.com');
$client->setDebug(true);
if (!$client->get('/thispagedoesnotexist')) {
die('An error occurred: '.$client->getError());
}
if ($client->getStatus() == '404') {
echo 'Page does not exist!';
}
$pageContents = $client->getContent();
  伪造客户端
  PHP代码
$client = new HttpClient('bankcha.com');
$client->setDebug(true);
$client->setUserAgent('Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.3a) Gecko/20021207');
if (!$client->get('/')) {
die('An error occurred: '.$client->getError());
}
$pageContents = $client->getContent();
  登录验证并请求一个网页
  PHP代码
$client = new HttpClient('bankcha.com');
$client->post('/login.php', array(
'username' => 'Simon',
'password' => 'ducks'
));
if (!$client->get('/private.php')) {
die('An error occurred: '.$client->getError());
}
$pageContents = $client->getContent();
  HTTP授权
  PHP代码
$client = new HttpClient('bankcha.com');
$client->setAuthorization('Username', 'Password');
if (!$client->get('/')) {
die('An error occurred: '.$client->getError());
}
$pageContents = $client->getContent();
  输出头信息
  PHP代码
$client = new HttpClient('bankcha.com');
if (!$client->get('/')) {
die('An error occurred: '.$client->getError());
}
print_r($client->getHeaders());
  设置一个域内重定向最多次数
  PHP代码
$client = new HttpClient('www.bankcha.com');
$client->setDebug(true);
$client->setMaxRedirects(3);
$client->get('/');

php fsockopen 伪造 post和get方法
fsockopen 伪造 post和get方法哦,如果你正在找 伪造 post和get方法的php处理代码这款不错哦。
代码如下:

<?php
//fsocket模拟post提交
$purl = "http://localhost/netphp/test2.php?uu=rrrrrrrrrrrr";
print_r(parse_url(/blog_article/$url/index.html));
sock_post($purl,"uu=55555555555555555");
//fsocket模拟get提交
function sock_get($url, $query)
{
$info = parse_url(/blog_article/$url/index.html);
$fp = fsockopen($info["host"], 80, $errno, $errstr, 3);
$head = "GET ".$info['path']."?".$info["query"]." HTTP/1.0rn";
$head .= "Host: ".$info['host']."rn";
$head .= "rn";
$write = fputs($fp, $head);
while (!feof($fp))
{
$line = fread($fp,4096);
echo $line;
}
}
sock_post($purl,"uu=rrrrrrrrrrrrrrrr");
function sock_post($url, $query)
{
$info = parse_url(/blog_article/$url/index.html);
$fp = fsockopen($info["host"], 80, $errno, $errstr, 3);
$head = "POST ".$info['path']."?".$info["query"]." HTTP/1.0rn";
$head .= "Host: ".$info['host']."rn";
$head .= "Referer: http://".$info['host'].$info['path']."rn";
$head .= "Content-type: application/x-www-form-urlencodedrn";
$head .= "Content-Length: ".strlen(trim($query))."rn";
$head .= "rn";
$head .= trim($query);
$write = fputs($fp, $head);
while (!feof($fp))
{
$line = fread($fp,4096);
echo $line;
}
}
?>

    
[2]用穿越火线快速入门php面向对象
    来源: 互联网  发布时间: 2013-11-30
代码如下:

<?php
/*
*用穿越火线快速入门php面向对象!
*php目前已经成为国内的主流web developer的首选开发语言,其强大的面向对象容易使初学者找不到思绪,一头雾水!
*,借助此文希望对初学者有所帮助,假设Crossfire用php来开发.
* 1类与对象
*/
class Crossfire
{
public $Category='1,2,3'; //枪械种类,3个选择武器类别
public $Weapon='ak|awp|m4a1';//购买的武器,拥有的武器
public $Flashlight=true;//是否购买闪光弹
public $Bomb=false; //购买了闪光同等条件下不能再次购买手雷
function attack()
{
//攻击的代码 $this->Weapon;使用武器
}
function repair()
{
//修理武器的代码
}
function destroy()
{
//武器坏了自动销毁代码
}
/*
* 我们把cf看成是一个类,cf里面有主武器,副武器,枪械,刀类,弹物,防弹衣,喷图等等..
* 以上都是类中的成员属性,假如武器坏了,那么我们就得维修,维修就是类的成员方法!
* 每种枪械都有不同的威力,不同的子弹数量,大小不同但是都是武器类,这是类和对象的关系(类的实例化结果就是对象)。
*
*/
function __construct()
{
//武器维修 $this->repair();
}
function __destruct()
{
//武器超过耐久自动消失 $this->destroy();
}
private function buy()
{
//购买武器私有属性代码
}
private function __get()
{
//调用购买的武器代码
}
private function __set()
{
//给买的武器购买子弹数量代码
}
private function __isset()
{
//检查钱数是够购买子弹数
}
private function __unset()
{
//如果中途死亡自动掉落武器
}
}
class role extends Crossfire
{
//个人角色继承cf的属性,角色可以使用购买,销毁上面的物品
function attack()
{
Crossfire::attack();
$this->Weapon='awm-a';
//如果中途换枪,加入换枪的弹量,伤害!
}
final function vip()
{
//购买vip,final关键字是禁止方法和属性继承!vip是需要money购买,所以因此不能被继承!
}
public static $awm=100;//awm 伤害是固定的所以用静态
public static function awm()
{
self::$awm;//awm攻击代码,self调用静态. 方法的重载
}
public function __toString()
{
return $this->repair(); //自动返回武器维修的费用
}
}
interface map
{
//地图代码,一个子类只能继承一次父类,地图是每个玩家都要用的,显而意见继承是不能够满足需求的,接口为我们解决瓶颈!
public function map1()
{
//黑色城镇
}
function map2()
{
//运输船
}
}
interface vipmap extends map
{
//如果是会员就显示会员地图,继承接口总地图
function _vipmap()
{
//vip建图颜色先是红色
}
function _vipmap1()
{
}
}
$cf=new Crossfire();
echo $cf->Weapon;//输出拥有的武器!
/*
* $对象名称= new 类名称();
创建新类我们使用new,我们新创建了一个cf类,$cb就是Crossfire的对象!
&nb
sp; 多态的应用,抽象类没有讲,当然一个完整的游戏是不可能从此简单的,只是做个比喻!

*/
$cf2=clone $cf; //克隆操作表示所有玩家都使用此类!
?>

    
[3]php重定向的三种方法分享
    来源: 互联网  发布时间: 2013-11-30
一、用HTTP头信息
也就是用PHP的HEADER函数。PHP里的HEADER函数的作用就是向浏览器发出由HTTP协议规定的本来应该通过WEB服务器的控制指令,例如: 声明返回信息的类型("Context-type: xxx/xxx"),页面的属性("No cache", "Expire")等等。
用HTTP头信息重定向到另外一个页面的方法如下:
代码如下:

<?php
$url = "http://www.";
if (isset($url))
{
Header("Location: $url");
}
?>

注意一下:"Localtion:"后面有一个空格,不加有时也可以,但为了正确性还是加上为好。

二、用HTML标记

用HTML标记,就是用META的REFRESH标记,举例如下:
代码如下:

<?php
$url = "http://www.";
if (!isset($url))
{
exit('没有要跳转的地址呦');
}
?>
<HTML>
<HEAD>
<META HTTP-EQUIV="REFRESH" CONTENT="5; URL='<?php echo $url;?>' ">
</HEAD>
<BODY>
</BODY>
</HTML>

注意一下:其中content="5; url='http://www.' ",表示跳转的地址以及5秒后执行。

三、用脚本来实现
代码如下:

<? php
$url="http://www.";
echo "<SCRIPT LANGUAGE=\"JavaScript\">location.href='/blog_article/$url/index.html'</SCRIPT>";
?>


不过,我个人更倾向于header的方法,这样页面的跳转速度更快点,用户从视觉上不易察觉整页的跳转,而只是局部的变化!

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3