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