Home  >  Article  >  Backend Development  >  php开发总结

php开发总结

WBOY
WBOYOriginal
2016-06-23 14:32:031083browse

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

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

 

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

$url = "http://www.163.com/test.html";
$file=@fopen($url,"r");
if (!$file){ 
echo "";
                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."
";;                       //得到星期几的英文名称  
echo   $wday."
";
?>

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

 

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

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

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

郁闷~

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

答案找到了

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

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

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

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

返回

返回
这个代码是返回上一页的代码,返回后,除了密码类型的所有数据均会保留在网页中,这算是比较友好了。

但有很多朋友反应使用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() 例子

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


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

例子 1. floor() 例子

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


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

例子 1. round() 例子

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()

echo intval(4.3);    //4

echo intval(4.6); // 4  

?>

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

 

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

 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn