PHP拾贝

$_SERVER['DOCUMENT_ROOT']指向了web服务器文档树的根。(E:/wamp/www/)

**********************************************************************************************************************************************

!defined('CURSCRIPT') && define('CURSCRIPT', ''); 的含义是:如果CURSCRIPT 没定义,就定义CURSCRIPT为空。
**********************************************************************************************************************************************

将变量输出到文本

file_put_contents("./test.log","$_POST");
file_put_contents("./test.log","$_POST",FILE_APPEND);    //FILE_APPEND :如果文件 filename 已经存在,追加数据而不是覆盖。
输出数组:
$str='';
foreach ($arr as $key=>$value){
  $str .= $key.'='.$value."\n";
}
file_put_contents("c:/test.log","$str");
**********************************************************************************************************************************************

后台T型布局


**********************************************************************************************************************************************

JS实现返回上一页的按钮

<input type="button" οnclick="javascript:history.go(-1);" value="返回上一页"/>
**********************************************************************************************************************************************

在HTML里怎么给普通按钮添加超链接?

<input type="button" value="跳转按钮" οnclick="javascript:window.location.href='abc.html';"/>

**********************************************************************************************************************************************

用php在页面之间传递数组

实现大致思路:将数组转化成字符串,可以用 get方式作为一个参数来传递到另外一个页面,接受后再将字符串转成数组即可。
代码如下:

a.php

<?php
$parm=array('0'=>111,'1'=>'test','2'=>true);
$arg=implode(":",$parm);
$link="b.php?arg=$arg";
echo "<a href='$link'>将数组以参数方式传递给b</a>";
?>
b.php

<?php
$arg= $_GET['arg'];
$parm=explode(":", $arg);
print_r($parm);
?>
最终输出:Array( [0] => 111 [1] => test [2] => 1)


使用POST方式提交。应该用以下方法写表单代码(注意name是text[])。

<input name="text[]" value="1">
<input name="text[]" value="2">
提交以后得到一个名为 text 的数组。
你可以用 print_r($_POST); 查看接收到的结果。

**********************************************************************************************************************************************

mysqli::query()的使用

如果成功则返回 TRUE,失败则返回 FALSE。

mysqli_query() 仅对 SELECTSHOWEXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE例:

$result=$this->conn->query($sql);//返回的结果是资源类型 
//将结果集转换为数组:
$array = array();
//只有一条记录的时候
$array=$result->fetch_array();//$array是一维数组
//当结果集中的记录有多条的时候
while($row=$result->fetch_array()){
    $array[]= $row; //$array是二维数组
}

***************************************************************************************************************************************************

防止用户越过登陆界面,直接输入网址进入用户操作页面

当用户登陆时,添加代码:

session_start();

$_SESSION["isok"]="ok";//在登陆时把“ok”存入session

在用户操作页面的开始处加上代码:

session_start();

if($_SESSION["isok"]!="ok"){exit;}//如果session中没有包含“ok”则退出。

***************************************************************************************************************************************************

php脚本中提示一个信息之后跳转到指定页面

echo "<script>alert('一个信息');location.href='index.php';</script>";

***************************************************************************************************************************************************

exit; / exit(); / die(); / die;

php脚本中的exit;语句的作用是结束当前脚本,也就是说当代码执行到exit时将不再向下执行,相当于java中的break

***************************************************************************************************************************************************

PHP获取当前url路径的函数及服务器变量

1.$_SERVER["QUERY_STRING"]
说明:查询(query)的字符串 

2.$_SERVER["REQUEST_URI"]
说明:访问此页面所需的URI,获取当前请求的完整的(除域名的)url

3.$_SERVER["SCRIPT_NAME"]
说明:包含当前脚本的路径

4.$_SERVER["PHP_SELF"]
说明:当前正在执行脚本的文件名

实例:
1.http://www.biuuu.com/ (直接打开主页)
结果:
$_SERVER["QUERY_STRING"] = ""
$_SERVER["REQUEST_URI"] = "/"
$_SERVER["SCRIPT_NAME"] = "/index.php"
$_SERVER["PHP_SELF"]     = "/index.php"

2.http://www.biuuu.com/?p=222 (附带查询)
结果:
$_SERVER["QUERY_STRING"] = "p=222"
$_SERVER["REQUEST_URI"] = "/?p=222"
$_SERVER["SCRIPT_NAME"] = "/index.php"
$_SERVER["PHP_SELF"]     = "/index.php"

3.http://www.biuuu.com/index.php?p=222&q=biuuu
结果:
$_SERVER["QUERY_STRING"] = "p=222&q=biuuu"
$_SERVER["REQUEST_URI"] = "/index.php?p=222&q=biuuu"
$_SERVER["SCRIPT_NAME"] = "/index.php"
$_SERVER["PHP_SELF"]     = "/index.php"

$_SERVER["QUERY_STRING"]获取查询语句,实例中可知,获取的是?后面的值
$_SERVER["REQUEST_URI"] 获取http://www.biuuu.com后面的值,包括/
$_SERVER["SCRIPT_NAME"] 获取当前脚本的路径,如:index.php
$_SERVER["PHP_SELF"] 当前正在执行脚本的文件名

当前url"http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']

***************************************************************************************************************************************************

根据用户权限判断是否显示某一条目

<?php
  if($_SESSION["rights"]==1){//用户权限为1时,用户界面显示【管理员管理】
?>
     <li><a href="admin.php" target="main">管理员管理</a></li>
<?php
   }
?>

***************************************************************************************************************************************************

用户重新登录的问题

当修改密码后要求用户重新登录,如果session中的数据仍然存在的话,那么浏览器就会跳过登录页面直接进入用户页面

session_destroy();//销毁已存储的session 数据

echo "<script>alert('密码修改成功,请重新登录');top.location.href='login.php';</script>";

***************************************************************************************************************************************************

隐式提交用户名

<input name="username" type="hidden" id="username" size="30"  value="<?php echo $_SESSION["username"];?>"/>

<?php echo $_SESSION["username"];?>


***************************************************************************************************************************************************

js验证输入的信息

<script>
function test(){
    if(document.admin.username.value==''){
      alert('请输入管理员账号');
      return false;
    }
    if(document.admin.password.value==''){
        alert('请输入管理员密码');
        return false;
    }
 	return true;   
}
</script>
<form name="admin" id="admin" method="POST" action="admin_addSava.php" οnsubmit="return test();">
***************************************************************************************************************************************************

循环输出复选框

aaa.php文件:

<form action="idd.php" method="post">
<?php
	for($i=1;$i<5;$i++){	 
?>
		<input name="id[]" type="checkbox" value="<?php echo $i;?>" />复选框<?php echo $i;?><br/>
<?php
	}	 
?>
<input type="submit" name="button" id="button" value="确定" />
</form>

bbb.php文件:

<?php
	$value=$_POST['id'];//$value是一个数组
	//echo($value);
	var_dump($value);
	foreach($value as $v){
		echo "<br/>$v";
	}
?>

输出:array(2) { [0]=> string(1) "2" [1]=> string(1) "3" } 
            2
            3


***************************************************************************************************************************************************

只查看某一状态的部分代码实现

<?php
require_once '../plus/DbMysql.php';
$db= new DbMysql();
$sql="select * from user"; //基本语法
$parm=" where 1 ";  //条件

//条件增加
$zt=@$_GET["zt"];
if($zt!=""){
    $parm.=" and zt='$zt'";
}
$sql.=$parm;
$db->sql($sql);
$infocount=$db->affected(); //信息总数量
$pagesize=5; //每页显示数量
$page = new page($infocount, $pagesize); 

$sql.=$page->limit();
$result=$db->select($sql);
?>

......

查看:<a href='user.php'>全部</a> <a href="?zt=1">待审核</a> <a href="?zt=3">锁定</a> <a href="?zt=2">正常</a></div> 



***************************************************************************************************************************************************

查询的部分代码实现

user.php文件:

<?php
  ......
  if($key!=""){
      $parm.= " and ".$stype." like '%$key%' ";
  }
  $sql.=$parm;
  ......
?>

<form action="user.php" method="get" name="userso" οnsubmit="return test();">//test()判断是否输入内容
     用户名:
     <select name="stype" id="stype">
           <option value="username">用户名</option>
           <option value="email">邮箱</option>
           <option value="xingming">真实姓名</option>
     </select>
     <input name="key" type="text" id="key" />
     <input name="" type="submit" value="搜索" />
</form>

***************************************************************************************************************************************************

批量审核的代码实现

<script>
function plzt(n){ 
	document.userinfo.zt.value=n;
	document.userinfo.action="user_ztshenhe.php";
	document.userinfo.submit();//js中提交表单
}
</script>
.....
<form action="user_alldel.php" method="post" name="userinfo">
......
<input type="submit" value="批量删除" />
<input type="button" name="button" id="button" value="批量审核" οnclick="plzt(2)" />
<input type="button" name="button2" id="button2" value="批量待审核" οnclick="plzt(1)" />
<input type="button" name="button3" id="button3" value="批量锁定" οnclick="plzt(3)" />
<input type="hidden" name="zt" id="zt" />

点击“批量审核”按钮后:user_ztshenhe.php文件中会通过post方式获取提交的id(数组)zt,然后更改数据库的相应字段。


***************************************************************************************************************************************************

按类别显示内容的部分代码实现


<select name="select" id="select" οnchange="javascript:location.href=this.options[selectedIndex].value">
       <option value="feedback.php">查看全部</option>       
     <?php
       $typeInfo = $db->select("select id,typename from feedbackType where typezt=1  order by typeorder ");
       foreach($typeInfo as $row){
           if($typeid==$row["id"]){//为了实现:选择某一类别后,该类别名称默认显示在红圈处
              echo "<option value='?typeid=".$row["id"]."' selected>".$row["typename"]."</option>";      
           }else{
              echo "<option value='?typeid=".$row["id"]."'>".$row["typename"]."</option>";
           }
       }
     ?>
</select>
***************************************************************************************************************************************************

在父页面中添加内容

parent.php文件:
  <form action="aaa.php" method="POST"  name="admin" id="admin" οnsubmit="return test();">
  ......
  <tr id="logotr">
                <td>图片地址:</td>
                <td> </td>
                <td><input name="picurl" type="text" id="picurl" size="30" /></td>
                <td>
                    <iframe src="son.php" frameborder="0" width="350" height="30"></iframe>
                </td>
             </tr>
    ......
  </form>
son.php文件:
  echo "<script>parent.document.admin.picurl.value='要在图片地址栏目的文本框中添加的内容';</script>";
***************************************************************************************************************************************************

双引号内解析php变量

<?php
$a = 123;
echo "dsfsdf $a fsfds";
?>
正常来说,双引号内的变量会自动解析,输出:dsfsdf 123 fsfds
可是类似于这样的变量$_SESSION['pid'],插入到字符串中回报语法错误,此时可以在变量外包裹{}解决:
echo "dsfsdf {$_SESSION['pid']} fsfds";
**********************************************************************************************************************************************

检查一个日期是否有效

你想要检查一个日期是否有效。例如,你想要确保用户不会提交一个类似“1962年2月30日”这样的生日。
解决方案:使用checkdate()函数
$valid = checkdate($month,$day,$year);
**********************************************************************************************************************************************

为变量设定默认值

$a = isset($_REQUEST['a']) ? $_REQUEST['a'] : $default;
在为变量指定默认值时,使用isset()是必须的。如果不使用这个函数,那么变量的非默认值就不能是0或者其他能转换成false的值。比如:
$a = $_REQUEST['a'] ? $_REQUEST['a'] : $default;
如果$_REQUEST['a']为0,那么$a会被直接指定为$default。

在检测数组是否经过设置时,需要使用另外一个函数array_key_exists():
$a = array_key_exists('a',$_REQUEST) ? $_REQUEST['a'] : $default;
isset()和array_key_exists()之间的一个区别是,当数组中存在一个键但对应的值为null时,array_key_exists()返回true,isset()则返回false。

**********************************************************************************************************************************************

验证表单输入:必填字段

<?php
//在检查长度之前,先检查$_POST['flavor']是否存在
if(!(isset($_POST['flavor']) && strlen($_POST['flavor']))){
    echo 'flavor栏目不能为空'
}

//$_POST['flavor']是可选的,但如果没有留空,就必须大于5个字符
if(isset($_POST['flavor']) && (strlen($_POST['flavor'])<=5)){
    echo 'flavor必须大于5个字符';
}

//确保$_POST['flavor']存在,并且是一个数组
if(!(isset($_POST['flavor']) && is_array($_POST['flavor']))){
    echo 'flavor没有选择任何选项';
}
?>

**********************************************************************************************************************************************

动态创建变量名

如果在一个变量名称前面放两个“$”符号,php就会废弃右面的变量,而取其值,然后,将该值作为“真正”的变量名称。

$annimal = 'turtles';
$turtles = 103;
print $$animal; //103
这段代码会输出103。因为$annimal = 'turtles',那么$$animal就是$turtles。
如果使用花括号,还能构造出用于表示变量名的更复杂的表达式:
${'stooge_'.strtolower($s)};

**********************************************************************************************************************************************

通过名字来为函数指定参数

当向函数中传递参数时,必须注意参数的顺序,而且当多次调用同一个函数时,有可能每次需要传递到该函数中的参数不一样(有时需要传的是$a、$b,有时需要传的是$b、$c),这个时候使用function f($a,$b,$c){}这样的传参方式则显得不够灵活。
解决方案:让函数只接受一个参数,此参数的类型是一个关联数组。

function image($img){
    $src = $img['src'];
    $alt = $img['alt'];
    return "<img src=$src alt=$alt />";
}
$image = image(array('src'=>'cow.jpg','alt'=>'is cow'));

扩展阅读:php的func_get_args()函数使用(http://php.net/manual/zh/book.funchand.php)

**********************************************************************************************************************************************

调用可变函数

问题:你想要依据变量的值来调用不同的函数。
方案:
使用call_user_func()

function get_file($filename){
    return $filename;
}
$funtion = 'get_file';
$filename = 'a.jpg';
//调用get_file('a.jpg')
call_user_func($function,$filename);
如果要求函数能够接受不同个数的参数,可以用call_user_func_array()
function get_file($filename){
    return 'get_'.$filename;
}
function put_file($filename1,$filename2){
    return 'put_'.$filename1.'_'.$filename2;
}
if($action=='get'){
    $function = 'get_file';
    $args = array('a.jpg');
}elseif($action=='put'){
    $function = 'put_file';
    $args = array('a.jpg','b.jpg');
}
call_user_func_array($function,$args);

**********************************************************************************************************************************************

数字检测is_numeric与ctype_digit的区别

is_numeric:检测是否为数字字符串,可为负数和小数
ctype_digit:检测字符串中的字符是否都是数字,负数和小数会检测不通过
注意,参数一定要是字符串,如果不是字符串,则会返回0/FASLE 

**********************************************************************************************************************************************

怎样禁用artDialog右上角关闭按钮

cancel:false

**********************************************************************************************************************************************

关于form/input 的autocomplete="off"属性

input 的属性autocomplete默认为on,其含义代表是否让浏览器自动记录之前输入的值。
很多时候,需要对客户的资料进行保密,防止浏览器软件或者恶意插件获取到,可以在input中加入autocomplete="off"来关闭记录。
另外,如果整个表单都不想让浏览器自动记录之前输入的值,我们可以给from表单加上,这样整个表单都不会记录用户输入的值。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值