首页 > 编程技术 > php

php 来路判断 HTTP_REFERER

发布时间:2016-11-25 15:10

*/

 代码如下 复制代码
$ref = isset($_server['http_referer'])?$_server['http_referer']:'';
echo $ref;
if(strpos($ref,'192.168.0.119')!==false)
{
 echo '来路正确!';
}
else
{
 echo '错误来路';
}
?>


<a href="http://down.111cn.net/plus/download.php?open=0&aid=20861&cid=3">判断来路</a>

文章提供了多款关于多维数据排序方法,这是一款php数据排序代码,如果你还搞不清楚如何排序的话,这里的实例肯定可以帮助到你了哦。
 代码如下 复制代码

//对多个数组排序

$ar1 = array("10", 100, 100, "a");
$ar2 = array(1, 3, "2", 1);
array_multisort($ar1, $ar2);

var_dump($ar1);
var_dump($ar2);

//本例中经过排序后,第一个数组将包含 "10","a",100,100。第二个数组将包含 1,1,"2",3。第二个数组中的项目顺序完全和第一个数组中相应的项目(100 和 100)顺序一致。

$ar = array(
       array("10", 11, 100, 100, "a"),
       array( 1, 2, "2", 3, 1)
     );
array_multisort($ar[0], sort_asc, sort_string,
               $ar[1], sort_numeric, sort_desc);
var_dump($ar);

/*
排序顺序标志:
◆sort_asc - 按照上升顺序排序
◆sort_desc - 按照下降顺序排序

排序类型标志:
◆sort_regular - 将项目按照通常方法比较
◆sort_numeric - 将项目按照数值比较
◆sort_string - 将项目按照字符串比较

每个数组之后不能指定两个同类的排序标志。每个数组后指定的排序标志仅对该数组有效 - 在此之前为默认值 sort_asc 和 sort_regular

*/

 function cmp($a, $b)
{
    return strcmp($a["fruit"], $b["fruit"]);
}

$fruits[0]["fruit"] = "lemons";
$fruits[1]["fruit"] = "apples";
$fruits[2]["fruit"] = "grapes";

usort($fruits, "cmp");

while (list($key, $value) = each($fruits)) {
    echo "$fruits[$key]: " . $value["fruit"] . " ";
}

//看一个完善的

$data=array(
 array(
  'name'=>'alice',
  'key'=>'2fc4ab3d639e5400efdfc73bc27e83f1',
  'age'=>20
 ),
 array(
  'name'=>'claudia',
  'key'=>'831c2b79c1f19af39c7e3321e11e5f5e',
  'age'=>18
 ),
 array(
  'name'=>'beatrice',
  'key'=>'6f8512a2066b8f35a27a495ce1228c76',
  'age'=>100
 ),
 array(
  'name'=>'denise',
  'age'=>25,
  'key'=>'ef6de3b178bf9f69a9fef72e4ee7bbe9'
 )
);

$arr1 = sortdata($data, "name","asc");
echo "<pre>";
var_dump($arr1);
echo "</pre>";

$arr2 = sortdata($data, "age","desc");
echo "<pre>";
var_dump($arr2);
echo "</pre>";


function sortdata($data, $col, $order){
 if (count($data)) $temp_array[key($data)] = array_shift($data);

 foreach($data as $key => $val){
  $offset = 0;
  $found = false;
  foreach($temp_array as $tmp_key => $tmp_val){
   if(!$found and strtolower($val[$col]) > strtolower($tmp_val[$col])){
    $temp_array = array_merge((array)array_slice($temp_array,0,$offset),
     array($key => $val),
     array_slice($temp_array,$offset)
    );
    $found = true;
   }
   $offset++;
  }
  if(!$found) {
   $temp_array = array_merge($temp_array, array($key => $val));
   }
 }
 if (strtolower($order)=="asc"){
  $array = array_reverse($temp_array);
 } else {
  $array = $temp_array;
 }
 return $array;
}

?>

本文章提供一款简单的php文件上传程序,很简单就是利用了move_uploaded_file把文件上传到与你php 同一目录的下面哦。
 代码如下 复制代码

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>超简单的php文件上传程序</title>
</head>

<body>
<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="">
  <label for="filefield"></label>
  <input type="file" name="name" id="filefield" />
  <input type="submit" name="button" id="button" value="开始上传文件" />
</form>
</body>
</html>

<?
//文件上传

 代码如下 复制代码
if($_files )
{
 upfiles($_files,'./');
}
function upfiles($files,$path){
 global $nowtimestamp;
 $exname=strtolower(substr($files['name'],(strrpos($files['name'],'.')+1)));
 $i=1;
   if (!move_uploaded_file($files['tmp_name'], $path.$nowtimestamp.".".$exname)) {
  showmessage("上传文件失败,请稍后重试!","?job=add",true);
 }
 return  $path.$nowtimestamp.".".$exname;
}

?>

多个文件上传功能,其实很简单与单文件上传区别就是文件名用数组形式,然后获取上传的文件时就利用foreach来个个上传,这样就实例的文件批量上传的功能了哦。其它也是单文件,只是看上去是多个文件同时上传了。
 代码如下 复制代码

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>php 多个文件上传</title>
</head>

<body>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
  <p>
    <label for="select"></label>
    <label for="filefield"></label>
    <input type="file" name="name[]" id="filefield" />
  </p>
  <p>
    <input type="file" name="name[]" id="filefield2" />
  </p>
  <p>
    <input type="file" name="name[]" id="filefield3" />
  </p>
  <p>
    <input type="file" name="name[]" id="filefield4" />
  </p>
  <p>
    <input type="file" name="name[]" id="filefield5" />
  </p>
  <p>
    <input type="submit" name="button" id="button" value="批量文件上传" />
  </p>
</form>
</body>
</html>

<?php

foreach($_files as $f)
{
 //处理中文名
 if (function_exists("iconv"))  $f[name] = iconv("utf-8","gb2312",$f[name]);

 $unm=intval(mt_rand(1000,9999));
 $file="z_upload/".date("ymdhms").$unm.$f[name];

 //检查是否已经存在同名文件
 if (file_exists($file))  header("http/1.0 403");
 //保存文件
 
 if (!@move_uploaded_file($f["tmp_name"],$file)) 
 {
 header("http/1.0 404 not found");
 }else{
 if(!isset($_cookie['uploadpic'])){
   setcookie("uploadpic",$file);
}else{
unlink($_cookie['uploadpic']);
setcookie("uploadpic","");
setcookie("uploadpic",$file);
}
 echo "1";
 
 }
}
?>

这款php获取当前url 与参数的代码,一般用于分页哦,智能分页时就会要动态的获取url与参数,以方便下一页时获取正确的数据哦。
 代码如下 复制代码

 function get_url()
 {
  $url = $_server['request_uri'];
  $parse_url = parse_url($url);
  $query_url = $parse_url['query']; //取出url上的参数

  if($query_url)
  {
   //将&page 替换为空
   $query_url = ereg_replace("(^|&)page=$this->page","",$query_url);
   $url = str_replace($parse_url['query'],$query_url,$url);
   if($query_url)$url .= '&page';
   else $url .= 'page';
  }
  else
  {
   $url .= '?page';
  }
  return $url;
 }

标签:[!--infotagslink--]

您可能感兴趣的文章: