php开发总结

1.mysql取得新生成自动编号的ID

$id=mysql_insert_id(); //取得刚插入的ID

 

2.php 如何判断网络是否连通

<?php
$url = "http://www.163.com/test.html";
$file=@fopen($url,"r");
if (!$file){ 
echo "<script language=\"LiveScript\">alert(\"不能打开链接!\");</script>";
                exit;
}
?>

3.判断任意日期是星期几

<?
$date="2009-03-22";  
$datearr=explode("-",$date);  
$year=$datearr[0];  
$month=sprintf('%02d',$datearr[1]);  
$day=sprintf('%02d',$datearr[2]);  
$hour=$minute=$second=0;  
$dayofweek=getdate(mktime($hour,$minute,$second,$month,$day,$year));  
$weekday=$dayofweek['weekday'];  
$wday=$dayofweek['wday'];  
echo   $weekday."<br>";;                       //得到星期几的英文名称  
echo   $wday."<br>";
?>

4.mysql 查询区分大小写的解决方案

 

今天突然发现一条查询语句执行时,居然区分大小写

如:select * from 表 where abc='BITS'      如果 abc='bits' 就查不出结果

于是上网查询,可惜查不到结果,只说在windows下mysql不区别字段大小写, 倒是有很多告诉你如何去设置区分大小的方法.

郁闷~

于是,我换了一张表,发现这张表不区分大小写, 我想问题出在字串编码上,查了一下,正常的这个表的字段是gbk_chinese_ci,出错的字段是gbk_bin

答案找到了

5.PHP-Javascript“返回上一页”无缓存问题

很多用PHP写脚本的朋友都会遇到这样的问题,比如一个注册页面(不使用任何AJAX),需要填写账号密码等信息,填写完后需要到服务端验证,如果验证不通过,就要让用户重新填写资料,这对很多用户来说这是一大煎熬,有可能就因此放弃了注册。遇到这种问题,一般有这几种解决方法:

1.仍然调用刚才的页面,输出错误提示,并把<input>中 value的值改为刚才用户输入的值。这应该是最好的方法,但缺点是要在这个页面的<input>的VALUE进行处理,比较麻烦。

2.还有很多懒人像我一样,遇到验证不通过,直接输出一个出错提示页面,并在页面中加入JavaScript的代码:

<a href="javascript:window.history.back();">返回</a>

<a href="javascript:window.history.go(-1);">返回</a>
这个代码是返回上一页的代码,返回后,除了密码类型的所有数据均会保留在网页中,这算是比较友好了。

但有很多朋友反应使用JS的返回后,网页上并没有数据的缓存,有时候却又有,真让人捉摸不定。前几天我在开发的时候也碰到了这个问题,上网Google许久未果,只好又从自己的代码分析入手。这时候,一句session_start(); 引起了我的注意。session_start(); 是开启 $_SESSION 会话的函数,开启SESSION后,似乎是每次访问一个网页都要重新调用一次网页。我把这句话去掉以后,问题就解决了。如果遇到网页数据不能缓存的,不妨去掉SESSION试试

6.计算当前日期所在月的第一天,最后一天的日期

 

php计算当前日期所在周的第一天,最后一天的日期.
function w_fl($i_date)
{
        $w_last=date("Y-m-d",strtotime("Sunday",strtotime($i_date)));
        return array(
                date("Y-m-d",strtotime("-6 days",strtotime($w_last))),
                $w_last
        );
}
 

php计算当前日期所在月的第一天,最后一天的日期.
function m_fl($i_date){
       $m_first=date("Y-m-01",strtotime($i_date));
       return array($m_first,date("Y-m-d",strtotime("+1 month -1day",strtotime($m_first))));
}

$ok=m_fl(date('Y-m-d'));
echo $ok[0]; //月初
echo $ok[1];//月末

 7. php无法删除cookie的解决方案

 

昨天在作logout.php的cookie删除时,发现怎么也无法清除cookie

注册cookie时用以下代码:

setcookie("iwho","耿良",0,"/","");

按照手册上的标准退出代码为:    setcookie("iwho", "", time() - 3600);// 将过期时间设为一小时前

但发现根本无法起作用,翻到以前的php4的书,打开查了用 setcookie("iwho") 直接删除,倒是起效果了,但是发现程序再登陆却无法注册cookie了,

看来php4根本无法与php5兼容.今天试了一下这个代码:

setcookie("iwho", "", time() - 3600,"/","");

起效,一切正常了,看来,应该按照注册时的格式(Cookie 必须用和设定时的同样的参数才能删除。),注明要删除的cookie路径

8.如何用php取得一个网页的html代码?

<?  
    $url="http://www.myukt.com/index.php";  
    $html=implode("\n",file($url));  
echo $html; 
?>

9.取整函数ceil,floor,round,intval

经常用到的PHP取整函数,主要是:ceil,floor,round,intval

ceil -- 进一法取整
说明
float ceil ( float value )
返回不小于 value 的下一个整数,value 如果有小数部分则进一位。ceil() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。

例子 1. ceil() 例子

<?php
echo ceil(4.3);     // 5
echo ceil(9.999);     // 10
?>


floor -- 舍去法取整
说明
float floor ( float value )
返回不大于 value 的下一个整数,将 value 的小数部分舍去取整。floor() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。

例子 1. floor() 例子

<?php
echo floor(4.3);     // 4
echo floor(9.999); // 9
?>


round -- 对浮点数进行四舍五入
说明
float round ( float val [, int precision] )
返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果。precision 也可以是负数或零(默认值)。

例子 1. round() 例子

<?php
echo round(3.4);             // 3
echo round(3.5);             // 4
echo round(3.6);             // 4
echo round(3.6, 0);         // 4
echo round(1.95583, 2);     // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2);     // 5.05
echo round(5.055, 2);     // 5.06
?>

intval---对变数转成整数型态

例子intval()

<?php

echo intval(4.3);    //4

echo intval(4.6); // 4  

?>

 10.php使用ImageCreateFromJPEG() 颜色丢失的非常厉害

 

使用ImageCreateFromJPEG() ,改变尺寸输出,颜色丢失的非常厉害!
而ImageCreateFromGIF() 和 ImageCreateFromPNG() 就没事。

 

posted on 2009-04-17 17:30  alon  阅读(415)  评论(0编辑  收藏  举报

导航