PHP/Java
第一页 1 2 下页 最后页 [ 显示模式: 摘要 | 列表 ]
PHP代码
  1. <?php  
  2.   
  3.     /****** 获取版本号 || 获取Cookie ******/  
  4.     if (isset($_COOKIE["BUILD_NUMBER"])){  
  5.         $_Assets = "?v=".$_COOKIE['BUILD_NUMBER'];  
  6.     }else{  
  7.         $_Assets = "";  
  8.     }  
  9.     /********** 2018年度节日汇总 || 2017-12-19 *************
  10.     元旦      -- yuandan  ||  - 201730、31-01
  11.     春节      -- chunjie  ||  - 20180215-21
  12.     元宵节    -- yuanxiao ||  - 20180302
  13.     情人节    -- qingren  ||  - 20180214
  14.     妇女节    -- funv     ||  - 20180308
  15.     劳动节    -- laodong  ||  - 20180501-
  16.     母亲节    -- muqin    ||  - 20180513
  17.     儿童节    -- ertong   ||  - 20180601
  18.     端午节    -- duanwu   ||  - 20180616-18
  19.     父亲节    -- fuqin    ||  - 20180616-18
  20.     七夕节    -- qixi     ||  - 20180817
  21.     教师节    -- jiaoshi  ||  - 20180910
  22.     中秋节    -- zhongqiu ||  - 20180922-24
  23.     国庆节    -- guoqing  ||  - 20181001-07
  24.     圣诞节    -- shengdan ||  - 20181225
  25.     双11      -- 1111     ||  - 20181111
  26.     双12      -- 1212     ||  - 20181212
  27.     京东618   -- 618      ||  - 20180618
  28.     苏宁818   -- 818      ||  - 20180818
  29.     *****************************************/  
  30.     $dayArr = array('yuandan=2017-12-30+1',    //3天-跨  
  31.                     'yuandan=2018-01-01+0',    //3天-跨  
  32.                     'chunjie=2017-02-15+6',    //7天  
  33.                     'qingren=2018-02-14+0',    //1天  
  34.                     'funv=2018-03-08+0',       //1天  
  35.                     'laodong=2018-04-29+1',    //3天-跨  
  36.                     'laodong=2018-05-01+0',    //3天-跨  
  37.                     'muqin=2018-05-13+0',      //1天  
  38.                     'ertong=2018-06-01+0',     //1天  
  39.                     'duanwu=2018-06-16+2',     //3天  
  40.                     'fuqin=2018-06-17+0',      //1天  
  41.                     'qixi=2018-08-17+0',       //1天  
  42.                     'jiaoshi=2018-09-10+0',    //1天  
  43.                     'zhongqiu=2018-09-22+2',   //3天  
  44.                     'guoqing=2018-10-01+6',    //7天  
  45.                     'shengdan=2018-12-25+0',   //1天  
  46.                     'd1111=2018-11-11+0',      //1天  
  47.                     'd1212=2018-12-12+0',      //1天  
  48.                     'd618=2018-06-18+0',       //1天  
  49.                     'd818=2017-12-12+0');      //1天  
  50.     /**********************************************
  51.      遍历数组判断,添加Class标记
  52.     **********************************************/  
  53.     $dayNux = count($dayArr);  
  54.     if(isset($_GET["day"])&&!emptyempty($_GET["day"])){  
  55.         $currentDate = $_GET["day"];  
  56.     }else{  
  57.         $currentDate = date('Ymd');  
  58.     }  
  59.     for($i=0;$i<$dayNux;++$i){  
  60.         $dayData = $dayArr[$i];  
  61.         $dayNums = substr(strrchr($dayData, "+"),1);  
  62.         $dayAlls = substr($dayData,0,strrpos($dayData,'+'));  
  63.         $dayStar = substr(strrchr($dayAlls, "="),1);  
  64.         $dayName = substr($dayAlls,0,strrpos($dayAlls,'='));  
  65.         $flagSt = $currentDate-(str_replace("-","",$dayStar));  
  66.         /****** 命中退出 ******/  
  67.         if($flagSt>-1&&$flagSt<=$dayNums){  
  68.             $dayClass=' '.$dayName;  
  69.             break;  
  70.         }else{  
  71.             if($i==$dayNux-1){  
  72.                $dayClass='';  
  73.             }  
  74.         }  
  75.     }  
  76.   
  77. ?>  

111

PHP代码
  1. <?php   
  2. /** 
  3.  * Ajax.class.php 
  4.  * ============================================== 
  5.  * Copy right 2016-2999 http://www.cnmo.com 
  6.  * ---------------------------------------------- 
  7.  * 修改之前请加上修改人和修改日志 
  8.  * ============================================== 
  9.  * @param 手机中国 - 平台中心 - TECH 
  10.  * @return return_type 
  11.  * @author: zhangyang 
  12.  * @date: 2016-10-10 
  13.  * @version: v1.0.0 
  14.  */  
  15. class Controller_Ajax extends CC_Core_Controller  
  16. {  
  17.     /** 
  18.      * @func: 大家都在玩 
  19.      * @date: 2016-10-10  
  20.      * @author: zhangyang 
  21.      * @return: 大家都在玩 
  22.      */  
  23.     public function doGetAllPlay()  
  24.     {  
  25.         $platform = (int) $_REQUEST['platform'];  
  26.           
  27.         $appInfo  = Service_Home :: getAppList($platform, 0, 4);  
  28.         $gameInfo = Service_Home :: getGameList($platform, 0, 4);  
  29.         $allPlayInfo = CC_Kit_String :: iconv('gbk','utf-8',array('appList' => $appInfo,'gameList' => $gameInfo));  
  30.         echo json_encode($allPlayInfo);  
  31.         die;  
  32.     }  
  33.       
  34.     /** 
  35.      * @desc: 获取投诉列表 
  36.      * @author: zhangyang 
  37.      * @date: 2016-10-10 
  38.      */  
  39.     public function doGetComplain()  
  40.     {  
  41.         $complain = Service_Home::getComplain();  
  42.         $complain = CC_Kit_String::iconv('gbk''utf-8'$complain);  
  43.           
  44.         echo json_encode($complain);  
  45.         die;  
  46.     }  
  47.       
  48.     /** 
  49.      * 活动包版 
  50.      * @author lidandan 
  51.      * @version 2016-12-28 
  52.      */  
  53.     // public function doActive()  
  54.     // {  
  55.     //     $nowtime = date('Y-m-d H:i:s', time());  
  56.               
  57.     //     $status = 0;  
  58.     //     if($nowtime >= '2016-12-30 10:00:00' && $nowtime <= '2017-01-02 23:59:59'){//奥运会包版  
  59.     //         $status = 1;  
  60.     //     }elseif($nowtime >= '2017-01-23 00:00:00' && $nowtime <= '2017-02-02 23:59:59'){//新年包版  
  61.     //         $status = 2;  
  62.     //     }elseif($nowtime >= '2017-02-10 16:00:00' && $nowtime <= '2017-02-12 23:59:59'){//元宵节  
  63.     //         $status = 3;  
  64.     //     }elseif($nowtime >= '2017-02-14 00:00:00' && $nowtime <= '2017-02-14 23:59:59'){//情人节  
  65.     //         $status = 4;  
  66.     //     }elseif($nowtime >= '2017-03-07 10:00:00' && $nowtime <= '2017-03-08 23:59:59'){//妇女节  
  67.     //         $status = 5;  
  68.     //     }elseif($nowtime >= '2017-04-01 13:30:00' && $nowtime <= '2017-04-04 23:59:59'){//清明节  
  69.     //         $status = 6;  
  70.     //     }elseif($nowtime >= '2017-04-27 12:00:00' && $nowtime <= '2017-05-02 12:00:00'){//五一  
  71.     //         $status = 7;  
  72.     //     }elseif($nowtime >= '2017-05-14 00:00:00' && $nowtime <= '2017-05-14 23:59:59'){//母亲节  
  73.     //         $status = 8;  
  74.     //     }elseif($nowtime >= '2017-05-27 12:00:00' && $nowtime <= '2017-05-30 23:59:59'){//端午  
  75.     //         $status = 9;  
  76.     //     }elseif($nowtime >= '2017-06-01 03:00:00' && $nowtime <= '2017-06-01 23:59:59'){//六一  
  77.     //         $status = 10;  
  78.     //     }elseif($nowtime >= '2017-06-18 00:00:00' && $nowtime <= '2017-06-18 23:59:59'){//父亲节  
  79.     //         $status = 11;  
  80.     //     }  
  81.       
  82.     //     echo $status;  
  83.     //     exit;  
  84.     // }  
  85.   
  86.   
  87.     /** 
  88.      * 活动包版 
  89.      * @author liuxinxiu 
  90.      * @version 2017-12-20 
  91.      */  
  92.     public function doActive()  
  93.     {  
  94.         /********** 2018年度节日汇总 || 2017-12-19 ************* 
  95.         ======================================= 
  96.         名称        代码(class)  ||   时间跨度 
  97.         ======================================= 
  98.         元旦      -- yuandan   ||  - 20171230、31-01 
  99.         春节      -- chunjie   ||  - 20180215=>21 
  100.         元宵节    -- yuanxiao  ||  - 20180302=>02 
  101.         情人节    -- qingren   ||  - 20180214=>14 
  102.         妇女节    -- funv      ||  - 20180308=>08 
  103.         劳动节    -- laodong   ||  - 20180429、30-01 
  104.         母亲节    -- muqin     ||  - 20180513=>13 
  105.         儿童节    -- ertong    ||  - 20180601=>01 
  106.         端午节    -- duanwu    ||  - 20180616=>18 
  107.         父亲节    -- fuqin     ||  - 20180616=>18 
  108.         七夕节    -- qixi      ||  - 20180817=>17 
  109.         教师节    -- jiaoshi   ||  - 20180910=>10 
  110.         中秋节    -- zhongqiu  ||  - 20180922=>24 
  111.         国庆节    -- guoqing   ||  - 20181001=>07 
  112.         圣诞节    -- shengdan  ||  - 20181225=>25 
  113.         双11      -- d1111     ||  - 20181111=>11 
  114.         双12      -- d1212     ||  - 20181212=>12 
  115.         京东618   -- d618      ||  - 20180618=>18 
  116.         苏宁818   -- d818      ||  - 20180818=>18 
  117.         *****************************************/  
  118.         /******* 公共声明 ********/  
  119.         header('Content-type: text/json');  
  120.         $dayArr = array('yuandan=2017-12-22 12:00>2018-01-01 23:59',    //3天-跨  
  121.                         'chunjie=2018-02-15 00:00>2018-02-21 23:59',    //7天-跨  
  122.                         'qingren=2018-02-14 00:00>2018-02-14 23:59',    //1天  
  123.                         'funv=2018-03-08 00:00>2018-03-08 23:59',       //1天  
  124.                         'qingming=2018-04-05 00:00>2018-04-07 23:59',   //3天-跨  
  125.                         'laodong=2018-04-29 00:00>2018-05-01 23:59',    //3天-跨  
  126.                         'muqin=2018-05-13 00:00>2018-05-13 23:59',      //1天  
  127.                         'ertong=2018-06-01 00:00>2018-06-01 23:59',     //1天  
  128.                         'duanwu=2018-06-16 00:00>2018-06-18 23:59',     //3天-跨  
  129.                         'fuqin=2018-06-17 00:00>2018-06-17 23:59',      //1天-合  
  130.                         'qixi=2018-08-17 00:00>2018-08-17 23:59',       //1天  
  131.                         'jiaoshi=2018-09-10 00:00>2018-09-10 23:59',    //1天  
  132.                         'zhongqiu=2018-09-22 00:00>2018-09-24 23:59',   //3天  
  133.                         'guoqing=2018-10-01 00:00>2018-10-07 23:59',    //7天  
  134.                         'shengdan=2018-12-25 00:00>2018-12-25 23:59',   //1天  
  135.                         'd1111=2018-11-11 00:00>2018-11-11 23:59',      //1天  
  136.                         'd1212=2018-12-12 00:00>2018-12-12 23:59',      //1天  
  137.                         'd618=2018-06-18 00:00>2018-06-18 23:59',       //1天  
  138.                         'd818=2018-06-18 00:00>2018-08-18 23:59');      //1天  
  139.         /********************************************** 
  140.          遍历数组判断,添加Class标记 
  141.         **********************************************/  
  142.         $dayNux = count($dayArr);  
  143.         if(isset($_GET["day"])&&!emptyempty($_GET["day"])){  
  144.             $currentDate = $_GET["day"];  
  145.         }else{  
  146.             $currentDate = date('Ymdhi');  
  147.         }  
  148.         for($i=0;$i<$dayNux;++$i){  
  149.             $dayData = $dayArr[$i];  
  150.             $dayEndx = substr(strrchr($dayData">"),1);  
  151.             $dayAlls = substr($dayData,0,strrpos($dayData,'>'));  
  152.             $dayStar = substr(strrchr($dayAlls"="),1);  
  153.             $dayName = substr($dayAlls,0,strrpos($dayAlls,'='));  
  154.             $dStar = str_replace(array("-",":"," "),"",$dayStar);  
  155.             $dEndx = str_replace(array("-",":"," "),"",$dayEndx);  
  156.             /****** 命中退出 ******/  
  157.             if($currentDate>=$dStar && $currentDate<=$dEndx){  
  158.                 $dayClass='"'.$dayName.'"';  
  159.                 break;  
  160.             }else{  
  161.                 if($i==$dayNux-1){  
  162.                    $dayClass=0;  
  163.                 }  
  164.             }  
  165.         }  
  166.         $jsonStr='{ 
  167.             "status":1, 
  168.             "info":"请求成功!", 
  169.             "dayClass":'.$dayClass.' 
  170.         }';  
  171.         echo $jsonStr;  
  172.         exit;  
  173.     }  
  174. }  

 

PHP替换字符串

[不指定 2017/12/19 10:03 | by 刘新修 ]
PHP代码
  1. <?php  
  2. $str =  "我_们_的_=家+园";  
  3. $str = str_replace(array("_","=","+"),"",$str);  
  4. echo  $str; //我们的家园  
  5. ?>  
Tags: ,
PHP代码
  1. <?php  
  2.     echo '<h1 style="margin-top:100px;">xxxx--11-</h1>';  
  3.     echo $redis;  
  4.   
  5.     /****** 获取最新版本号 ******/  
  6.     $optsJson = array(  
  7.         'http'=>array(  
  8.             'method'=>"GET",  
  9.             'timeout'=>60,  
  10.         )  
  11.     );  
  12.     $contextJson = stream_context_create($optsJson);  
  13.     $dataJson =file_get_contents('http://statict.cnmo-img.com.cn/origin/assets.json', false, $contextJson);  
  14.     $arrJson = json_decode($dataJson,true);  
  15.     $buildNumber = $arrJson['BUILD_NUMBER'];  
  16.     //输出  
  17.     //var_dump($arr['BUILD_NUMBER']);  
  18.     echo $buildNumber;  
  19.     setcookie("Age","18");  
  20.     if(isset($buildNumber)&&!emptyempty($buildNumber)){  
  21.         setcookie("BUILD_NUMBER",$buildNumber, time()+3600*24);  
  22.     }else{  
  23.         setcookie("NULL",$buildNumber, time()+3600*24);  
  24.     }  
  25.   
  26. ?>  

  当我们实例化一个php类的时候,要怎么传递参数呢?这取决于该类的构造方法。

  例:

  person.class.php

  

  class person{

  var $name;

  var $color;

  var $sex;

  var $age;

  function __construct($name,$age='',$sex='boy'){

  $this->name = $name;

  $this->age = $age;

  $this->sex = $sex;

  $this->color = 'yello';

  }

  function eat(){

  echo $this->name.'要吃饭';

  }

  function xinxi(){

  echo $this->name.' is '.$this->sex.' and age is '.$this->age.' fuse is '.$this->color;

  }

  }

  ?>

  son.php

  

  include('person.class.php');

  $son = new person('cuihua',25,'girl');//此处的参数传递要和类的构造方法里面的参数顺序对应

  //$son->xinxi();//cuihua is girl and age is 25 fuse is yello

  $son->name = '田妞';

  $son->eat();//田妞要吃饭

  ?>

有时我们想截取最后一个斜杠'/'后面的数字;

有时我们又需要截取第一个斜杠'/'前面的内容判断用户输入的url链接带不带http://等等;

字符串的截取php内置函数就有很多种;简单的写几个示例;

1
$str='123/456/789/abc';

截取第一个斜杠前面的内容可以这样来:

1
echo substr($str,0,strpos($str'/'))

    或者

1
2
3
$array=explode('/'$str);
echo $array[0];
// 输出 123

截取第一个斜杠后面的内容可以这样来:

1
2
echo substr($str,strpos($str,'/')+1);
//输出 456/789/abc

 

截取最后一个斜杠后面的内容可以这样来:

1
echo trim(strrchr($str'/'),'/');

    或者如果知道斜杠的个数

1
2
3
$array=explode('/'$str);
echo $array[3];
//输出 abc

 

但是问题来了;如果不知道有多少个斜杠呢?如果想要第二个斜杠和第三个斜杠中间的内容呢?

下面我写的这个函数就可以轻松解决如上 所有问题;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/**
 * 按符号截取字符串的指定部分
 * @param string $str 需要截取的字符串
 * @param string $sign 需要截取的符号
 * @param int $number 如是正数以0为起点从左向右截  负数则从右向左截
 * @return string 返回截取的内容
 */
 
function cut_str($str,$sign,$number){
    $array=explode($sign$str);
    $length=count($array);
    if($number<0){
        $new_array=array_reverse($array);
        $abs_number=abs($number);
        if($abs_number>$length){
            return 'error';
        }else{
            return $new_array[$abs_number-1];
        }
    }else{
        if($number>=$length){
            return 'error';
        }else{
            return $array[$number];
        }
    }
}

示例:

1
2
3
4
echo cut_str($str,'/',0); //输出 123
echo cut_str($str,'/',2); //输出 789
echo cut_str($str,'/',-1);//输出 abc
echo cut_str($str,'/',-3);//输出 456
Tags: ,

使用PHP实现CORS 跨域资源共享,可传参origin通过限制,代码如下:

PHP代码
  1. <?php  
  2. /******** 定义Response返回header头格式及编码 ********/  
  3. header('Content-type: application/json; charset=utf-8');  
  4.   
  5. /******** 回调参数设置 ********/  
  6. $param="origin";  
  7. $origin_URL=$_REQUEST[$param];  
  8.   
  9.   
  10. /******** json_encode 转成=> encode_json *******/  
  11. function encode_json($str){  
  12.     return urldecode(json_encode(url_encode($str)));  
  13. }  
  14. function url_encode($str){  
  15.     if(is_array($str)){  
  16.         foreach($str as $key=>$value){  
  17.             $str[urlencode($key)]=url_encode($value);  
  18.         }  
  19.     }else{  
  20.         $str=urlencode($str);  
  21.     }  
  22.     return $str;  
  23. }  
  24.   
  25. /**************** \/\/反转义范例 ********************/  
  26. function stripslashes_deep($value){  
  27.     $value=is_array($value)?  
  28.                 array_map('stripslashes_deep',$value):  
  29.                 stripslashes($value);  
  30.     return $value;  
  31. }  
  32.   
  33. /******************** Example ******************************/  
  34. $array=array("f\\'oo", "b\\'ar", array("fo\\'o", "b\\'ar"));  
  35. $array=stripslashes_deep($array);  
  36.   
  37. /******************** Output *******************************/  
  38.   
  39. //echo encode_json(array('china'=>'钓鱼岛是中国的!','Japan'=>array('name'=>'日本狗!')));  
  40.   
  41.   
  42. /************ 定义Post过来什么数据就返回什么数据 ***********/  
  43. $res=array(  
  44.     'status'=>-1,
  45.     'name'=>isset($_POST['name'])?$_POST['name']:'',
  46.     'gender'=>isset($_POST['gender'])?$_POST['gender']:''
  47. );
  48. $arr=array(
  49.      "status"=>1,
  50.      "url"=>"http://www.liuxinxiu.com/",
  51.      "dataList"=>array(
  52.           "siteId"=>"1",
  53.           "title"=>urldecode('我的博客'),
  54.           "images"=>"http://192.168.9.100/upload/2015/06/20/moren.gif",
  55.           "indexNum"=>10,
  56.           "pageNum"=>"300",
  57.           "tagNum"=>"20",
  58.           "linkType"=>"linkTaobao",
  59.           "publishTime"=>"20:00:00"
  60.       )
  61. );
  62. $arr['dataList']['images']="http://www.liuxinxiu.com/upload/2015/06/20/moren.gif";
  63. //print_r($arr);
  64. /*************** 定义错误信息 ***************/
  65. $errStr='{"status":-1,"info":"Request Error"}';
  66. $errJson=json_decode($errStr,true); //json_decode转成了array数组
  67. //print_r($errJson) //转成了array数组
  68. /************** 获取客户端的Origin域名 **************/
  69. $origin=isset($_SERVER['HTTP_ORIGIN'])?$_SERVER['HTTP_ORIGIN']:'';
  70. /******** 定义符合规则的域名数组 ********/
  71. $allow_origin=array(
  72.     'http://liuxinxiu.com',  
  73.     'http://code.liuxinxiu.com',  
  74.     'http://test.liuxinxiu.com'  
  75. );  
  76.   
  77. /****************** 判断如果有POST过来数据 *********************/  
  78. if(isset($_POST['name'])&&isset($_POST['gender'])){
  79.     /********** 只要是POST请求过来无论合法与否都要正常通信 **********/
  80.      header('Access-Control-Allow-Methods:POST');
  81.      header('Access-Control-Allow-Headers:x-requested-with,content-type');
  82.     /******** 匹配客户端域名是否在数组列表中 ******/
  83.     if(in_array($origin,$allow_origin)){
  84.         header('Access-Control-Allow-Origin:'.$origin);
  85.         $res['status']=1;
  86.         $res['getUser']=$arr;
  87.         echo json_encode($res);
  88.     }
  89.     else if(!in_array($origin,$allow_origin)){
  90.         /******** 如有设置就取设置URL返回头信息 ********/
  91.         if(isset($origin_URL)){
  92.             header('Access-Control-Allow-Origin:'.$origin_URL);
  93.             $res['status']=1;
  94.             $res['getUser']=$arr;
  95.             echo encode_json($res);
  96.             //echo json_encode("中文", JSON_UNESCAPED_UNICODE);
  97.         }
  98.         /******** 如没有设置URL就返回错误信息  ********/
  99.         else{
  100.             header('Access-Control-Allow-Origin:'.$origin);
  101.             $errJson['status']=-1;
  102.             $errJson['info']="You don't have permission to submit!";  
  103.             echo encode_json($errJson);  
  104.         }  
  105.     }  
  106. }  
  107. /************ 没有所匹配的POST提交数据 ***********/  
  108. else{  
  109.     if($GLOBALS['HTTP_RAW_POST_DATA']){  
  110.             header('Access-Control-Allow-Origin:'.$origin);  
  111.             $errJson['status']=-1;  
  112.             $errJson['info']="Syntax error in parameters or arguments.";  
  113.             echo encode_json($errJson);  
  114.     }  
  115.     else{  
  116.         header("Content-type: text/html; charset=utf-8");  
  117.         echo 'It is forbidden for the URL request!';  
  118.     }  
  119. }  
  120. ?>  

PHP数据提交接口地址 (禁止使用GET访问):http://code.liuxinxiu.com/php/Interface/server.php

配合HTML代码如下:

XML/HTML代码
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4.     <meta charset="utf-8"/>  
  5.   
  6.     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />  
  7.     <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"/>  
  8.     <meta name="format-detection"content="telephone=no">  
  9.     <meta name="apple-mobile-web-app-capable" content="yes" />  
  10.     <meta name="apple-mobile-web-app-status-bar-style" content="black" />  
  11.     <style>body,html {background:#fff;font-family: "Lucida Grande",Calibri,Arial;font-size:12pt;color: #333;background: #f8f8f8;text-align:center;}*{margin:0;padding:0;}h1{line-height:1.6em;font-size:24px;text-indent:.5em;padding-top:.6em}i{line-height:2em;font-size:18px;color:#999;}.line{height:10px;border-bottom:1px solid #ccc;font-size:0;overflow:hidden;}</style>  
  12.     <title>跨域测试</title>  
  13. </head>  
  14. <body>  
  15. <h1 id="show"></h1>  
  16. <input type="button" value="Click me" onclick="msg()" />  
  17.   
  18. </body>  
  19. <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>  
  20. <script type='text/javascript'>  
  21. /********** 获取URL参数 **********/  
  22. function getQueryString(name){  
  23. var reg=new RegExp("(^|&)"+name+"=([^&]*)(&|$)","i");  
  24. var r=window.location.search.substr(1).match(reg);  
  25. if (r!=null) return unescape(r[2]); return null;  
  26. }  
  27.   
  28.   
  29. /********** 发起Ajax请求 **********/  
  30. function msg(){  
  31.     /******* 动态切换提交数据 *******/  
  32.     if(_origin){  
  33.         if(_name&&_gender){  
  34.             var data={name:_name,gender:_gender,origin:_origin};  
  35.         }  
  36.         else{  
  37.             var data={name:"xiaoming",gender:"male",origin:_origin};  
  38.         }  
  39.     }  
  40.     else if(_error==null){  
  41.         var data={name:"xiaoming",gender:"male"};  
  42.     }  
  43.     else if(_error){  
  44.         var data={xxx:111};  
  45.     }  
  46.     /******* 动态设置提交URL *******/  
  47.     if(_url){  
  48.         var urlPath=_url;  
  49.     }  
  50.     else{  
  51.         var urlPath='http://code.liuxinxiu.com/php/Interface/server.php';  
  52.     }  
  53.     $.ajax({  
  54.        type:'post',  
  55.        url:urlPath,  
  56.        data:data,  
  57.        cache:false,  
  58.        dataType:'json',  
  59.        success:function(data){  
  60.            if(data.name){  
  61.                 document.getElementById("show").innerHTML=data.name+' '+data.gender;  
  62.            }  
  63.            else if(data.status!=1){  
  64.                 document.getElementById("show").innerHTML=data.info;  
  65.            }  
  66.        },  
  67.        error:function(){  
  68.            console.log("请求错误//")  
  69.        }  
  70.     });  
  71. };  
  72.   
  73. /***********************************************************************************************  
  74. $.post("http://www.server.com/server.php",{name:"fdipzone",gender:"male"}).done(function(data){  
  75.     document.getElementById("show").innerHTML=data.name+' '+data.gender;  
  76. });  
  77. **********************************************************************************************/  
  78. </script>  
  79. </html>  

HTML访问地址 (测试跨域) ==> http://test1.liuxinxiu.com/php/Interface/html/server.html?n=php

HTML访问地址 (非法参数) ==> http://test1.liuxinxiu.com/php/Interface/html/server.html?error=php

Tags: ,

PHP处理HTTP请求的几种方式

[不指定 2016/09/05 17:48 | by 刘新修 ]

GET,一般是明文的,比如XXX.php?a=1&b=2,这里的a,b就必须用GET方式接收,接收代码如下:
$a = $_GET['a'];
$b = $_GET['b'];
//接收a,b两个变量
POST,一般是隐藏的非明文的,一般表单设置成POST的,接收方式如下:
//比如有个表单,表单中有两个文本框,name 分别是 a,b,那么代码如下:
$a = $_POST['a'];
$b = $_POST['b'];
另外:$_REQUEST,可以同时接收GET、POST的变量,用法如:
$_REQUEST['a'];//接收变量a,a可以是GET的也可以是POST的

另外说说PHP获取POST请求的几种方式:

方法1、最常见的方法是:$_POST['fieldname'];
说明:只能接收Content-Type: application/x-www-form-urlencoded提交的数据
解释:也就是表单POST过来的数据

方法2、file_get_contents(“php://input”);
说明:
允许读取 POST 的原始数据。
和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置。
php://input 不能用于 enctype=”multipart/form-data”。
解释:
对于未指定 Content-Type 的POST数据,则可以使用file_get_contents(“php://input”);来获取原始数据。
事实上,用PHP接收POST的任何数据都可以使用本方法。而不用考虑Content-Type,包括二进制文件流也可以。
所以用方法二是最保险的方法。

方法3、$GLOBALS['HTTP_RAW_POST_DATA'];
说明:
总是产生 $HTTP_RAW_POST_DATA  变量包含有原始的 POST 数据。
此变量仅在碰到未识别 MIME 类型的数据时产生。
$HTTP_RAW_POST_DATA  对于 enctype=”multipart/form-data”  表单数据不可用
如果post过来的数据不是PHP能够识别的,可以用 $GLOBALS['HTTP_RAW_POST_DATA']来接收,
比如 text/xml 或者 soap 等等
解释:
$GLOBALS['HTTP_RAW_POST_DATA']存放的是POST过来的原始数据。
$_POST或$_REQUEST存放的是 PHP以key=>value的形式格式化以后的数据。
但$GLOBALS['HTTP_RAW_POST_DATA']中是否保存POST过来的数据取决于centent-Type的设置,即POST数据时 必须显式示指明Content-Type: application/x-www-form-urlencoded,POST的数据才会存放到 $GLOBALS['HTTP_RAW_POST_DATA']中。
Tags:

php [urlencode urldecode] 函数

[不指定 2016/03/29 13:28 | by 刘新修 ]

 urlencode()编码:对字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。

urldecode()解码:还原 URL 编码字符串。
示例:
<?php
header("Content-Type:text/html; charset=utf-8");
//对参数值进行编码
$parm=urlencode("演示php-mysql");
 
//拼接url
$url="decode.php?par=".$parm;
?>
 
<a href="<?php echo $url;?>">urlencode演示</a>
 
点击连接后地址栏中汉字被编码了:
http://localhost/decode.php?par=%E6%BC%94%E7%A4%BAphp-mysql
------------------------------------------------------------------------
 
//decode.php
<?php
//获取参数值
$parValue=$_GET['par'];
 
//解码
echo urldecode($parValue);
//运行结果:演示php-mysql
?>
PHP代码
  1. <?php  
  2.     //创建画布,返回一个资源类型的变量$image,并在内存中开辟一个临时区域  
  3.     $image = imagecreatetruecolor(400,400);                //创建画布大小为400x400  
  4.   
  5.     //设置图像中所需的颜色,相当于在画画时准备的染料盒  
  6.     $white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);          //为图像分配颜色为白色  
  7.     $gray = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);           //为图像分配颜色为灰色  
  8.     $darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);       //为图像分配颜色为暗灰色  
  9.     $navy = imagecolorallocate($image, 0x00, 0x00, 0x80);           //为图像分配颜色为深蓝色  
  10.     $darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);       //为图像分配颜色为暗深蓝色  
  11.     $red = imagecolorallocate($image, 0xFF, 0x00, 0x00);           //为图像分配颜色为红色  
  12.     $darkred = imagecolorallocate($image, 0x90, 0x00, 0x00);       //为图像分配颜色为暗红色  
  13.   
  14.     imagefill($image, 0, 0, $white);            //为画布背景填充背景颜色  
  15.     //动态制作3D效果  
  16.     for ($i=220;$i>200;$i--){                //循环10次画出立体效果  
  17.         imagefilledarc($image, 200, $i, 400, 200, -160, 40, $darknavy, IMG_ARC_PIE);  
  18.         imagefilledarc($image, 200, $i, 400, 200, 40, 75, $darkgray, IMG_ARC_PIE);  
  19.         imagefilledarc($image, 200, $i, 400, 200, 75, 200, $darkred, IMG_ARC_PIE);  
  20.     }  
  21.   
  22.     imagefilledarc($image, 200, 200, 400, 200, -160, 40, $navy, IMG_ARC_PIE);      //画一椭圆弧且填充  
  23.     imagefilledarc($image, 200, 200, 400, 200, 40 , 75, $gray, IMG_ARC_PIE);      //画一椭圆弧且填充  
  24.     imagefilledarc($image, 200, 200, 400, 200, 75, 200, $red, IMG_ARC_PIE);      //画一椭圆弧且填充  
  25.   
  26.     imagestring($image, 20, 100, 230, '34.7%', $white);                //水平地画一行字符串,依次是F/X/Y/--数值越大向右、向下  
  27.     imagestring($image, 20, 200, 150, '55.5%', $white);                //水平地画一行字符串,依次是F/X/Y/--数值越大向右、向下  
  28.   
  29.     //向浏览器中输出一个GIF格式的图片  
  30.     header('Content-type:image/png');       //使用头函数告诉浏览器以图像方式处理以下输出  
  31.     imagepng($image);                       //向浏览器输出  
  32.     imagedestroy($image);                   //销毁图像释放资源  
  33.   
  34.     //header("Content-type: text/html; charset=utf-8");  
  35.     //$str="<div>'$image'</div>";  
  36.     //echo $str;  
  37. ?>  

gd-png.php

PHP代码
  1. <?php  
  2.     //创建画布,返回一个资源类型的变量$image,并在内存中开辟一个临时区域  
  3.     $image = imagecreatetruecolor(375,375);                //创建画布大小为375x375 iPhone6 375X627  
  4.   
  5.     //设置图像中所需的颜色,相当于在画画时准备的染料盒  
  6.     $white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);          //为图像分配颜色为白色  
  7.     $gray = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);           //为图像分配颜色为灰色  
  8.     $darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);       //为图像分配颜色为暗灰色  
  9.     $navy = imagecolorallocate($image, 0x00, 0x00, 0x80);           //为图像分配颜色为深蓝色  
  10.     $darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);       //为图像分配颜色为暗深蓝色  
  11.     $red = imagecolorallocate($image, 0xFF, 0x00, 0x00);           //为图像分配颜色为红色  
  12.     $darkred = imagecolorallocate($image, 0x90, 0x00, 0x00);       //为图像分配颜色为暗红色  
  13.   
  14.     imagefill($image, 0, 0, $white);            //为画布背景填充背景颜色  
  15.     //动态制作3D效果  
  16.     for ($i=200;$i>180;$i--){                //循环10次画出立体效果  
  17.         imagefilledarc($image, 187, $i, 360, 180, -160, 40, $darknavy, IMG_ARC_PIE);   //  
  18.         imagefilledarc($image, 187, $i, 360, 180, 40, 75, $darkgray, IMG_ARC_PIE);  
  19.         imagefilledarc($image, 187, $i, 360, 180, 75, 200, $darkred, IMG_ARC_PIE);  
  20.     }  
  21.   
  22.     imagefilledarc($image, 187, 180, 360, 180, -160, 40, $navy, IMG_ARC_PIE);      //画一椭圆弧且填充,第一个187-180 是错开7像素  
  23.     imagefilledarc($image, 187, 180, 360, 180, 40 , 75, $gray, IMG_ARC_PIE);      //画一椭圆弧且填充  
  24.     imagefilledarc($image, 187, 180, 360, 180, 75, 200, $red, IMG_ARC_PIE);      //画一椭圆弧且填充  
  25.   
  26.     imagestring($image, 20, 180, 130, '55.5%'$white);                //水平地画一行字符串,依次是F/X/Y/--数值越大向右、向下  
  27.     imagestring($image, 20, 100, 200, '34.7%'$white);                //水平地画一行字符串,依次是F/X/Y/--数值越大向右、向下  
  28.   
  29.   
  30.     //向浏览器中输出一个GIF格式的图片  
  31.     //header("Content-type:text/html;charset=utf-8"); // 设置页面的编码风格  
  32.     header('Content-type:image/png');       //使用头函数告诉浏览器以图像方式处理以下输出--通知浏览器输出的是图像  
  33.     imagepng($image);                       //向浏览器输出  
  34.     imagedestroy($image);                   //销毁图像释放资源  
  35.   
  36.     //header("Content-type: text/html; charset=utf-8");  
  37.     //$str="<div>'$image'</div>";  
  38.     //echo $str;  
  39. ?>  
Java代码
  1. <%@page trimDirectiveWhitespaces="true"%>  
  2. <%@page language="java" pageEncoding="utf-8"%>  
  3. <%@page import="sun.misc.*"%>  
  4. <%@page import="java.io.*"%>  
  5. <%@page import="java.util.*"%>  
  6. <%  
  7. List<String> htmltempList=new ArrayList<String>();  
  8. //String[][] students = {{'小明','1101','23','52819911'},{'夏利','1101','23','52819911'},{'小强','1102','21','52819901'}};  
  9.   
  10. //创建6行4列二位数组  
  11. String[][] book=new String [6][4];  
  12. book[0]=new String[]{"风清扬","1101","23","52819911"};  
  13. book[1]=new String[]{"许志飞","1101","23","52819911"};  
  14. book[2]=new String[]{"令狐冲","1102","21","52819901"};  
  15. book[3]=new String[]{"任我行","1103","22","52819991"};  
  16. book[4]=new String[]{"任盈盈","1104","24","52819981"};  
  17. book[5]=new String[]{"东方不败","1105","26","52819981"};  
  18.   
  19. String[][] arr1={{"11","22"},{"aaa","bbb"},{"AAA","BBB"}};  
  20. String[][] arr2=new String[3][2];  
  21. for(int i=0;i<book.length;i++){  
  22.     htmltempList.add("<ul>");  
  23.     for(int j=0;j<book[i].length;j++){  
  24.         //out.println(book[i][j]);  
  25.         htmltempList.add("<li>" +book[i][j]+"</li>");  
  26.     }  
  27.     htmltempList.add("</ul>");  
  28. }  
  29.   
  30. /*
  31. int [][]a=new int[8][8];
  32. for (int i=0;i<8;i++){
  33.    for(int j=0;j<8;j++){
  34.     a[i][j]=i+j;
  35.     out.println(a[i][j]+"---");
  36.    }
  37. }*/  
  38. //out.println("---");  
  39.   
  40. %>  
  41.   
  42. <%  
  43. for (int i=0;i<9;i++){  
  44. //htmltempList.add("<li><span>" + i+"</span></li>");  
  45. }  
  46. /*
  47. for (int i=0; i<htmltempList.size();i++){
  48. out.print(htmltempList.get(i));
  49. }
  50. out.print(testCol(htmltempList) + "====================");
  51. */  
  52. %>  
  53. <%  
  54. response.setContentType("text/json");  
  55. response.setCharacterEncoding("utf-8");  
  56. String callback=request.getParameter("Jsoncallback");  
  57. if(callback!=null&&!"".equals(callback)){  
  58.     out.print(callback+"({\"dataList\":\"" +testColCon(htmltempList) + "\"})");  
  59. }  
  60.   
  61. %>  
  62. <%!  
  63. public static int testCol(List<String> testList){  
  64. return testList.size();  
  65. }  
  66. public static String testColCon(List<String> testList){  
  67. String str="";  
  68. String html="<style>*{margin:0;padding:0;}h1{font-size:16px;text-align:center; line-height:45px;}body{color:#333;font-size:14px;font-family:'MicrosoftYahei';background:#B7CACC;}div{border:1px solid #405E7B; border-bottom:0; width:95%; margin:0 auto;background:#fff;content:'';display:table;clear:both}li{line-height:35px;list-style:none;width:25%;text-align:center;border-bottom:1px solid #405E7B;float:left;}</style><h1>最近风云人员名单</h1><div>";  
  69. for (int i=0; i<testList.size();i++){  
  70.     str+=testList.get(i);  
  71. }  
  72. html+=str;  
  73.         byte[] b=null;  
  74.         String s=null;  
  75.         try{    
  76.             b=html.getBytes("utf-8");  
  77.         }catch(UnsupportedEncodingException e){  
  78.             e.printStackTrace();    
  79.         }    
  80.         if (b!=null){  
  81.             s=new BASE64Encoder().encode(b);    
  82.               
  83.             s=s.replaceAll("\r\n","");  
  84.             s=s.replaceAll("\n","");  
  85. //          s = s.replaceAll("","");  
  86.             //s="PGxpPjxzcGFuPjA8L3NwYW4+PC9saT48bGk+PHNwYW4+MTwvc3Bhbj48L2xpPjxsaT48c3Bhbj4yPC9zcGFuPjwvbGk+PGxpPjxzcGFuPjM8L3NwYW4+PC9saT48bGk+PHNwYW4+NDwvc3Bhbj48L2xpPjxsaT48c3Bhbj41PC9zcGFuPjwvbGk+PGxpPjxzcGFuPjY8L3NwYW4+PC9saT48bGk+PHNwYW4+Nzwvc3Bhbj48L2xpPjxsaT48c3Bhbj44PC9zcGFuPjwvbGk+";  
  87.         }    
  88.         return s;  
  89.               
  90. }  
  91.   
  92. %>  
第一页 1 2 下页 最后页 [ 显示模式: 摘要 | 列表 ]