php開發總結

來源:互聯網
上載者:User

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() 就沒事。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.