| 導購 | 订阅 | 在线投稿
分享
 
 
 

PHP日常實用小Tips

來源:互聯網  2006-07-20 09:11:34  評論

【 服務器學院】1.簡易判斷ip地址合法性

if(!strcmp(long2ip(sprintf("%u",ip2long($ip))),$ip)) echo "is ipn";

2.email的正則判斷

eregi("^[_.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z_-]+.)+[a-zA-Z]$", $email);

3.檢測ip地址和mask是否合法的例子

$ip = '192.168.0.84';

$mask = '255.255.255.0';

$network = '192.168.0';

$ip = ip2long($ip);

$mask = ip2long($mask);

$network = ip2long($network);

if( ($ip & $mask) == $network) echo "valid ip and maskn";

?>

4.關于表單刷新

問:爲什麽我在點擊浏覽器的後退按鈕後,所有字段的信息都被清空了?

答:這是由于你在你的表單提交頁面中使用了 session_start 函數。該函數會強制當前頁面不被緩存。解決辦法爲,在你的 Session_start 函數後加入 header("Cache-control: private"); 注意在本行之前你的PHP程序不能有任何輸出。

補充:還有基于session的解決方法,在session_start前加上

session_cache_limiter('nocache');// 清空表單

session_cache_limiter('private'); //不清空表單,只在session生效期間

session_cache_limiter('public'); //不清空表單,如同沒使用session一般

可以在session_start();前加上session_cache_limiter("private,max-age=10800");

5.快速搞定文件下載頭部輸出

header("Content-type: application/x-download");

header("Content-Disposition: attachment; filename=$file_download_name;");

header("Accept-Ranges: bytes");

header("Content-Length: $download_size");

echo 'xxx'

6.用header輸出ftp下載方式,並且支持斷點續傳

一個例子:

header('Pragma: public');

header('Cache-Control: private');

header('Cache-Control: no-cache, must-revalidate');

header('Accept-Ranges: bytes');

header('Connection: close');

header("Content-Type: audio/mpeg");

header("Location:ftp://download:1bk3l4s3k9s2@218.30.116.103/1001/咖哩辣椒/咖喱辣椒.rmvb");

7.正則匹配中文

ereg("^[".chr(0xa1)."-".chr(0xff)."]+$", $str);

8.批量替換文本裏面的超級鏈接

function urlParse($str = '')

{

if ('' == $str) return $str;

$types = array("http", "ftp", "https");

$replace = << ''.htmlentities('1').htmlentities('2').''

EOPHP;

$ret = $str;

while(list(,$type) = each($types))

{

$ret = preg_replace("|($type://)([^s]*)|ie ", $replace, $ret);

}

return $ret;

}

?>

【 服務器學院】1.簡易判斷ip地址合法性   if(!strcmp(long2ip(sprintf("%u",ip2long($ip))),$ip)) echo "is ipn";   2.email的正則判斷   eregi("^[_.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z_-]+.)+[a-zA-Z]$", $email);   3.檢測ip地址和mask是否合法的例子   $ip = '192.168.0.84';   $mask = '255.255.255.0';   $network = '192.168.0';   $ip = ip2long($ip);   $mask = ip2long($mask);   $network = ip2long($network);   if( ($ip & $mask) == $network) echo "valid ip and maskn";   ?>   4.關于表單刷新   問:爲什麽我在點擊浏覽器的後退按鈕後,所有字段的信息都被清空了?   答:這是由于你在你的表單提交頁面中使用了 session_start 函數。該函數會強制當前頁面不被緩存。解決辦法爲,在你的 Session_start 函數後加入 header("Cache-control: private"); 注意在本行之前你的PHP程序不能有任何輸出。   補充:還有基于session的解決方法,在session_start前加上   session_cache_limiter('nocache');// 清空表單   session_cache_limiter('private'); //不清空表單,只在session生效期間   session_cache_limiter('public'); //不清空表單,如同沒使用session一般   可以在session_start();前加上session_cache_limiter("private,max-age=10800");   5.快速搞定文件下載頭部輸出   header("Content-type: application/x-download");   header("Content-Disposition: attachment; filename=$file_download_name;");   header("Accept-Ranges: bytes");   header("Content-Length: $download_size");   echo 'xxx'   6.用header輸出ftp下載方式,並且支持斷點續傳   一個例子:   header('Pragma: public');   header('Cache-Control: private');   header('Cache-Control: no-cache, must-revalidate');   header('Accept-Ranges: bytes');   header('Connection: close');   header("Content-Type: audio/mpeg");   header("Location:ftp://download:1bk3l4s3k9s2@218.30.116.103/1001/咖哩辣椒/咖喱辣椒.rmvb");   7.正則匹配中文   ereg("^[".chr(0xa1)."-".chr(0xff)."]+$", $str);   8.批量替換文本裏面的超級鏈接   function urlParse($str = '')   {    if ('' == $str) return $str;   $types = array("http", "ftp", "https");   $replace = << ''.htmlentities('1').htmlentities('2').''   EOPHP;   $ret = $str;   while(list(,$type) = each($types))   {    $ret = preg_replace("|($type://)([^s]*)|ie ", $replace, $ret);   }   return $ret;   }   ?>
󰈣󰈤
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
王朝網路微信公眾號
微信掃碼關註本站公眾號 wangchaonetcn
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有