php 模拟用户POST GET源代码

 更新时间:2016年11月25日 15:54  点击:1572
下面的代码使用两种方式来调facebook的接口,第一种县判断用户的环境是否开启了curl库,开启了这个库,就采用这种方式来获取请求。里面详细的参数讲解大家可以参考手册。

if(function_exists('curl_init'))
{
  $ch = curl_init();
  curl_setopt($ch, curlopt_url, $url_with_get);
  curl_setopt($ch, curlopt_post, 1);
  curl_setopt($ch, curlopt_postfields, $post);
  curl_setopt($ch, curlopt_returntransfer, true);
  $result = curl_exec($ch);
  curl_close($ch);
}
else
{
  $content = http_build_query($post)
  $content_length = strlen($content);
  $context =
  array('http' =>
array('method' => 'post',
'user_agent' => $user_agent,
'header' => 'content-type: ' . $content_type . " " .
'content-length: ' . $content_length,
'content' => $content));
$context_id = stream_context_create($context);
$sock = fopen($url_with_get, 'r', false, $context_id);
$result = '';
if ($sock)
  {
    while (!feof($sock))
  $result .= fgets($sock, 4096);
  fclose($sock);
}
return $result;
}
}

测试代码

 代码如下 复制代码


$url_with_get= "http://api.facebook.com/restserver.php?method=facebook.friends.get&session_key=&api_key=1232121311&v=1.0";
$post = array('sig'=>12312123234353);

这种一款可以统计你网站当前在线人数的代码哦,由php+txt实现的无需数据来来支持。

  $time = gettimeofday(void);

  //文件初始化 start
  if(@filesize("time.text")<=0){

   $fd_time = fopen("time.text","w+");
   fputs($fd_time,$time[sec]);
   fclose($fd_time);

   $fd_time = fopen("ip.text","w+");
   fclose($fd_time);

  }
  //文件初始化 over


  //更新时间 start
  $tamp = file("time.text");
  $equal = ($time[sec] - $tamp[0]);
  if($equal > 60){

   $fd_time = fopen("time.text","w+");
   fputs($fd_time,"");
    fclose($fd_time);

  }
  //更新时间 over


  //检查ip start
  $fd_ip = fopen("ip.text","a+");

 //获取用户ip地址
  if ($http_server_vars["http_x_forwarded_for"])
 {
 $ip = $http_server_vars["http_x_forwarded_for"];
 }
 elseif ($http_server_vars["http_client_ip"])
 {
 $ip = $http_server_vars["http_client_ip"];
 }
 elseif ($http_server_vars["remote_addr"])
 {
 $ip = $http_server_vars["remote_addr"];
 }
 elseif (getenv("http_x_forwarded_for"))
 {
 $ip = getenv("http_x_forwarded_for");
 }
 elseif (getenv("http_client_ip"))
 {
 $ip = getenv("http_client_ip");
 }
 elseif (getenv("remote_addr"))
 {
 $ip = getenv("remote_addr");
 }
 else
 {
 $ip = "unknown";
 }


    $ip_adds = file("ip.text");
    for($i;$i<count($ip_adds);$i++){

        if($ip." "==$ip_adds[$i]){
         $ip_check = 1;
         break;
        }
    }

    if($ip_check!=1){
     fputs($fd_ip,$ip." ");
    }
    fclose($fd_ip);
  //检查ip over


  $ip_adds = count(file("ip.text"));

?>
调用 方法

<?php
/*
 * 标题:简单在线人数统计
 *
 * 作者:邓东东
 *
 * 创建于:2010-4-27下午09:42:31
 *
 * 技术支持:php100学习交流22 :108610071
 **/
?>
<?
include("online.php");
$fd_ip = file("ip.text");
?>
<title>在线人数</title>
<center><font color=blue size=6>php100论坛在线总人数为:<font color=red size=8><?=$ip_adds?>08610071</font>人<br>
用户ip:<?

echo "<select>";
for($i = 0;$i < count($ip_adds);$i++){
 echo"<option value = '$i'>".substr($fd_ip[$i],0,0-strlen(strrchr($fd_ip[$i],'.'))).".*</option> ";
}
echo "</select>";

 

 

?></font></center>

本文章提供的确款正则表达式来检测url地址,日期格式,ip地址,与邮箱地址是否合法的验证代码,希望本文章对各位同学会带来帮助。
 代码如下 复制代码
class validation{
 function check_email($value){ //check a email address
  return (bool) preg_match('/^[a-z0-9._%+-]+@(?:[a-z0-9-]+.)+[a-z]{2,4}$/i', $value);
 }
 
 function check_ip($value){ //check a ip address
  return (bool) preg_match("/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){4}$/", $value.".");
 }
 
 function check_date($date, $format="dd/mm/yy"){ //check a date
  if(!preg_match("/([0-9]+)([./-])([0-9]+)(\2)([0-9]+)/", $date, $m)) return false;
  $f = explode("/", $format);
  $d[$f[0]] = $m[1];
  $d[$f[1]] = $m[3];
  $d[$f[2]] = $m[5];
  return checkdate($d['mm'], $d['dd'], $d['yyyy'].$d['yy']);
 }
 
 function check_url($url){ //check a url
  return (bool) preg_match("/^(?:(?:ht|f)tp(?:s?)://|~/|/)?(?:(?:w+.)+)w+(?::d+)?(?:(?:/[^/?#]+)+)?/?(?:?[^?]*)?(#.*)?$/i", $url);
 }
}

//调用方法

 代码如下 复制代码
$validation = new validation();
//检测邮箱
var_dump($validation->check_email("abc@abc.abc.com"));//true
var_dump($validation->check_email("abc.abc@abc.com"));//false

//ip检测

 代码如下 复制代码
var_dump($validation->check_ip("127.0.0.1.0"));
var_dump($validation->check_ip("256.0.0.1"));

//日期格式检测

 代码如下 复制代码

//true
var_dump($validation->check_date("2010/1/20", "yyyy/mm/dd"));
var_dump($validation->check_date("1/20/10", "mm/dd/yy"));
var_dump($validation->check_date("2010-20-1", "yyyy/dd/mm"));
//false
var_dump($validation->check_date("2010/2/29", "yyyy/mm/dd"));
var_dump($validation->check_date("2010/1/20", "yyyy/dd/mm"));
var_dump($validation->check_date("2010-20/1", "yyyy/dd/mm"));

/*
此类的使用方法非常简单吧,只要创建类就可以轻松的验证邮箱,日期,地址,ip是否为合法的的哦。
*/

 

php正则判断中文字符

php教程正则判断中文字符

$str = "中国";
echo $str;
echo "<hr>";

//if   (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str)) {   //只能在gb2312情况下使用
if   (preg_match("/^[x7f-xff]+$/", $str)) { //兼容gb2312,utf-8
     echo "正确输入";
} else {
     echo "错误输入";
}
?>


双字节字符编码范围

1. gbk (gb2312/gb18030)
x00-xff gbk双字节编码范围
x20-x7f ascii
xa1-xff 中文 gb2312
x80-xff 中文 gbk

2. utf-8 (unicode)

u4e00-u9fa5 (中文)
x3130-x318f (韩文
xac00-xd7a3 (韩文)
u0800-u4e00 (日文)

这是一款可以按时间日期来生成html类,他可以生成文件,同时也支持删除文件,删除目录,具有生成静态所有功能哦。

 

 代码如下 复制代码
class html
{
    var $dir; //dir for the htmls(www.111cn.net/)
    var $rootdir; //root of html files(www.111cn.net/):html
    var $name; //html文件存放路径
    var $dirname; //指定的文件夹名称
    var $url; //获取html文件信息的来源网页地址
    var $time; //html文件信息填加时的时间
    var $dirtype; //目录存放方式:year,month,,,,
    var $nametype; //html文件命名方式:name
   
   
    function html($nametype = 'name', $dirtype = 'year', $rootdir = 'html')
    {
        $this -> setvar($nametype, $dirtype, $rootdir);
        }
   
    function setvar($nametype = 'name', $dirtype = 'year', $rootdir = 'html')
    {
        $this -> rootdir = $rootdir;
        $this -> dirtype = $dirtype;
        $this -> nametype = $nametype;
        }
   
    function createdir($dir = '')
    {
        $this -> dir = $dir?$dir:$this -> dir;
       
        if (!is_dir($this -> dir))
            {
            $temp = explode('/', $this -> dir);
            $cur_dir = '';
            for($i = 0;$i < count($temp);$i++)
            {
                $cur_dir .= $temp[$i] . '/';
                if (!is_dir($cur_dir))
                    {
                    @mkdir($cur_dir, 0777);
                    }
                }
            }
        }
   
    function getdir($dirname = '', $time = 0)
    {
        $this -> time = $time?$time:$this -> time;
        $this -> dirname = $dirname?$dirname:$this -> dirname;
       
        switch($this -> dirtype)
        {
        case 'name':
            if(empty($this -> dirname))
                $this -> dir = $this -> rootdir;
            else
                $this -> dir = $this -> rootdir . '/' . $this -> dirname;
            break;
        case 'year':
            $this -> dir = $this -> rootdir . '/' . date("y", $this -> time);
            break;
       
        case 'month':
            $this -> dir = $this -> rootdir . '/' . date("y-m", $this -> time);
            break;
       
        case 'day':
            $this -> dir = $this -> rootdir . '/' . date("y-m-d", $this -> time);
            break;
            }
       
        $this -> createdir();
       
        return $this -> dir;
        }
   
    function geturlname($url = '')
    {
        $this -> url = $url?$url:$this -> url;
       
        $filename = basename($this -> url);
        $filename = explode(".", $filename);
        return $filename[0];
        }
   
    function geturlquery($url = '')
    {
        $this -> url = $url?$url:$this -> url;
       
        $durl = parse_url($this -> url);
        $durl = explode("&", $durl[query]);
        foreach($durl as $surl)
        {
            $gurl = explode("=", $surl);
            $eurl[] = $gurl[1];
            }
        return join("_", $eurl);
        }
   
    function getname($url = '', $time = 0, $dirname = '')
    {
        $this -> url = $url?$url:$this -> url;
        $this -> dirname = $dirname?$dirname:$this -> dirname;
        $this -> time = $time?$time:$this -> time;
       
        $this -> getdir();
       
        switch($this -> nametype)
        {
        case 'name':
            $filename = $this -> geturlname() . '.htm';
            $this -> name = $this -> dir . '/' . $filename;
            break;
       
        case 'time':
            $this -> name = $this -> dir . '/' . $this -> time . '.htm';
            break;
       
        case 'query':
            $this -> name = $this -> dir . '/' . $this -> geturlquery() . '.htm';
            break;
       
        case 'namequery':
            $this -> name = $this -> dir . '/' . $this -> geturlname() . '-' . $this -> geturlquery() . '.htm';
            break;
       
        case 'nametime':
            $this -> name = $this -> dir . '/' . $this -> geturlname() . '-' . $this -> time . '.htm';
            break;
           
            }
        return $this -> name;
        }
   
    function createhtml($url = '', $time = 0, $dirname = '', $htmlname = '')
    {
        $this -> url = $url?$url:$this -> url;
        $this -> dirname = $dirname?$dirname:$this -> dirname;
        $this -> time = $time?$time:$this -> time;
        // 上面保证不重复地把变量赋予该类成员
        if(empty($htmlname))
            $this -> getname();
        else
            $this -> name = $dirname . '/' . $htmlname; //得到name
       
       
        $content = file($this -> url) or die("failed to open the url " . $this -> url . " !");;
       
        // /////////////关键步---用file读取$this->url
       
        $content = join("", $content);
        $fp = @fopen($this -> name, "w") or die("failed to open the file " . $this -> name . " !");
        if(@fwrite($fp, $content))
            return true;
        else
            return false;
        fclose($fp);
        }
    // ///////////////以name为名字生成html
    function deletehtml($url = '', $time = 0, $dirname = '')
    {
        $this -> url = $url?$url:$this -> url;
        $this -> time = $time?$time:$this -> time;
       
        $this -> getname();
       
        if(@unlink($this -> name))
            return true;
        else
            return false;
        }
   
    /**
     * function::deletedir()
     * 删除目录
     *
     * @param $file 目录名(不带/)
     * @return
     */
    function deletedir($file)
    {
        if(file_exists($file))
            {
            if(is_dir($file))
                {
                $handle = opendir($file);
                while(false !== ($filename = readdir($handle)))
                {
                    if($filename != "." && $filename != "..")
                        $this -> deletedir($file . "/" . $filename);
                    }
                closedir($handle);
                rmdir($file);
                return true;
                }else{
                unlink($file);
                }
            }
        }
   
    }
[!--infotagslink--]

相关文章

  • php 获取用户IP与IE信息程序

    php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • JS基于Mootools实现的个性菜单效果代码

    本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • php 取除连续空格与换行代码

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • PHP实现清除wordpress里恶意代码

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
  • JS实现双击屏幕滚动效果代码

    本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
  • js识别uc浏览器的代码

    其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
  • JS日期加减,日期运算代码

    一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
  • PHP开发微信支付的代码分享

    微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布。必须到你通过程序测试提交订单、发货通知等数据到微信的系统中,才能申请发布。然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到...2014-05-31
  • PHP常用的小程序代码段

    本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
  • php根据用户语言跳转相应网页

    当来访者浏览器语言是中文就进入中文版面,国外的用户默认浏览器不是中文的就跳转英文页面。 <&#63;php $lan = substr(&#8194;$HTTP_ACCEPT_LANGUAGE,0,5); if ($lan == "zh-cn") print("<meta http-equiv='refresh' c...2015-11-08
  • 几种延迟加载JS代码的方法加快网页的访问速度

    本文介绍了如何延迟javascript代码的加载,加快网页的访问速度。 当一个网站有很多js代码要加载,js代码放置的位置在一定程度上将会影像网页的加载速度,为了让我们的网页加载速度更快,本文总结了一下几个注意点...2013-10-13
  • php怎么用拼音 简单的php中文转拼音的实现代码

    小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
  • js检测用户输入密码强度

    一个用Javascript检测用户输入密码强度的效果代码,以下代码主要是从以下四个方面检测用户输入的密码的强度的,有兴趣的朋友可以自己添加或修改成自己想要的形式! 1. 如果输入的密码位数少于5位,那么就判定为弱。 2. 如果...2015-10-23
  • php有效防止同一用户多次登录

    【问题描述】:同一用户在同一时间多次登录如果不能检测出来,是危险的。因为,你无法知道是否有其他用户在登录你的账户。如何禁止同一用户多次登录呢? 【解决方案】 (1) 每次登录,身份认证成功后,重新产生一个session_id。 s...2015-11-24
  • php导出csv格式数据并将数字转换成文本的思路以及代码分享

    php导出csv格式数据实现:先定义一个字符串 存储内容,例如 $exportdata = '规则111,规则222,审222,规222,服2222,规则1,规则2,规则3,匹配字符,设置时间,有效期'."/n";然后对需要保存csv的数组进行foreach循环,例如复制代...2014-06-07