複製代碼 代碼如下:session_start(); $k=$_GET['k']; $t=$_GET['t']; $allowTime = 1800;//防重新整理時間 $ip = get_client_ip(); $allowT = md5($ip.$k.$t); if(!isset($_SESSION[$allowT])) { $refresh = true; $_SESSION[$allowT] = time(); }elseif(time() - $_SESSION[$allowT]>$
在php5.3被放棄的函數有: ereg();//直接用mb_ereg代替,或是preg_match代替,但是匹配規則需要用/包括起來 eregi();//preg_match代替,在規則後加上i,如:preg_match(“/^(style|style_)(.*)*/i”, $file); ereg_replace(); set_magic_quotes_runtime(); split(); mysql_close(); // 將不支援全部關閉,
複製代碼 代碼如下:$f=fopen("test.txt", "wb"); $text=utf8_encode("a!"); //先用函數utf8_encode將所需寫入的資料變成UTF編碼格式。 $text="\\xEF\\xBB\\xBF".$text; //"\\xEF\\xBB\\xBF",這串字元不可缺少,產生的檔案將成為UTF-8格式,否則依然是ANSI格式。 fputs($f, $text); //寫入。 fclose($f); ?>
上傳cvs並匯入到資料庫中,測試成功(部分代碼不規範,如PHP_SELF那裡要改寫成$_SERVER["PHP_SELF"] ) PHP代碼 複製代碼 代碼如下:$fname = $_FILES['MyFile']['name']; $do = copy($_FILES['MyFile']['tmp_name'],$fname); if ($do) { echo"匯入資料成功"; } else { echo ""; } ?> error_reporting(0); //匯入CSV格式的檔案 $
1) 使用 標籤設定頁面編碼這個標籤的作用是聲明用戶端的瀏覽器用什麼字元集編碼顯示該頁面,xxx 可以為 GB2312、GBK、UTF-8(和 MySQL 不同,MySQL 是 UTF8)等等。因此,大部分頁面可以採用這種方式來告訴瀏覽器顯示這個頁面的時候採用什麼編碼,這樣才不會造成編碼錯誤而產生亂碼。但是有的時候我們會發現有了這句還是不行,不管 xxx 是哪一種,瀏覽器採用的始終都是一種編碼,這個情況我後面會談到。 請注意, 是屬於 HTML 資訊的,僅僅是一個聲明,僅表明伺服器已經把
在php 編程中雙引號"與單引號'是字串與字元表現形式,那麼我們要輸出它怎麼做呢,下面我們就來看個簡單的輸出單雙引號的執行個體吧。 首頁我們來看輸出雙引號的幾種方法 方法一. 複製代碼 代碼如下:$str ='我要輸出雙引號"'; echo $str; 結果為:我要輸出雙引號" 方法二 複製代碼 代碼如下:$str ="輸出雙引號\""; echo $str; //結果輸出雙引號" 輸出單引號與雙引號 複製代碼 代碼如下:$str ="輸出單引號'"; $str1='輸出單引號\'';
近來看到了一個巧妙地方法,原理是 $var_a ='var_b'; $$var_a ='test'; 則echo $var_b;為'test' 因此可以這樣處理 複製代碼 代碼如下:foreach(array('_COOKIE', '_POST', '_GET') as $_request) { foreach($$_request as $_key => $_value) { $_key{0} != '_' && $$_key = addslashes($_value);
以區分大小寫方式比較兩個字串 Strcmp()函數對兩個字串進行二進位安全的比較,並區分大小寫。其形式為: int strcmp ( string str1 , string str2 )根據比較的結果將返回如下的一個可能值。 •如果str1 和str2 相等則返回0 。 •如果str1小於str2則返回-1 。 •如果str1大於str2則返回1 。
然後我用PHP實現了這個功能,我覺得用PHP來做這項工作簡直是一種享受!使用其提供的強大的HTML頁面處理函數和Regex,短短的幾行代碼就能搞定這個功能。 貼一下關鍵代碼: 複製代碼 代碼如下://擷取優酷頁面中的flash地址 function get_flash_url( $url ) { $lines = file($url); foreach ($lines as $linenum=> $line) { preg_match_all('|]+)" />|',$line,$result)
載入基本檔案 cake/basics.php 裡面定義了常用的方法以及時間常量 $TIME_START = getMicrotime(); 記錄開始執行時間 cake/config/paths.php 裡面定義一些基本路徑 cake/lib/object.php cake的基本類 cake/lib/inflector.php 這裡主要是處理單複數,帶下劃開命名以及駝峰式命名 cake/lib/configure.php 裡面提供檔案配置的讀寫,路徑的設定,以及負載檔案的方法
如果訪問量大的話會給資料庫造成很大的負擔,所以對於變化不經常的內容要做好php 資料cache(緩衝)是十分必要的,我做了一個簡單的php“檔案快取”的類,希望對大家有所協助。 思路是這樣的:對於一般的變數,把該變數變成php語言的格式,寫到檔案中,用時只要include這個檔案就相當於載入了cache了; 對於array型的變數,把array轉化為php語言定義array的字串,寫到檔案中,用時也只要include就相當於載入了cache了;
mysql_real_escape_string() 所以得SQL語句如果有類似這樣的寫法:"select * from cdr where src =".$userId; 都要改成 $userId=mysql_real_escape_string($userId) 所有有列印的語句如echo,print等 在列印前都要使用htmlentities() 進行過濾,這樣可以防止Xss,注意中文要寫出htmlentities($name,ENT_NOQUOTES,GB2312) 。
首先去php網站下載所用到的安裝檔案。根據自己的不同需要選擇,我選擇安裝的是這個版本:php-5.3.2-Win32-VC9-x86.msi。大家可以根據需要下載選擇。然後就可以下載安裝了,一路next下去就可以了。然後在IIS管理器裡面加入一個程式映射即可。在這期間遇到了fastcgi出錯的問題,然後google尋找結果都是空手而回的。估計是跟我裝的版本不一樣導致的,為了配置好這個環境自己又卸載重新安裝php安裝檔案,然後就只在
複製代碼 代碼如下:function cat_options($spec_cat_id, $arr) { static $cat_options = array(); if (isset($cat_options[$spec_cat_id])) { return $cat_options[$spec_cat_id]; } /* 初始化關鍵參數: $level:當前子節點深度 $last_cat_id:當前父節點ID $options:帶有縮排層級的數組
PHP裡有$_GET,$_POST,但是沒有$_PUT,所以如果需要使用它的話,則你不得不自己類比一下: 複製代碼 代碼如下:$_PUT = array(); if ('PUT' == $_SERVER['REQUEST_METHOD']) { parse_str(file_get_contents('php://input'), $_PUT); } 通過php://input得到的資料是raw data,所以需要用parse_str解析一下。
Xdebug安裝 下載xdebug擴充的時候注意xdebug的版本與php版本相對應,不然出現不必要的麻煩! 我自己使用的是PHP5.2.5,下載的xdebug檔案名稱為:php_xdebug-2.0.3-5.2.5.dll,將檔案放到php/ext檔案夾下即可 3.配置 xdebug配置 開啟php.ini 在最後一行加入以下配置代碼,配置說明已經做好注釋 ;載入Xdebug zend_extensi ;如果使用相對路徑可以這樣寫 ;extension= "php_xdebug-2.0.4-5
今天弄了一天,總算把win2003下的問題給解決了, LoadModule php5_module E:\server\php528\php5apache2_2.dll 可能有些朋友也知道,添加這句後,就不用把php.ini拷貝到系統目錄: PHPIniDir E:\server\php528\php.ini 現在我說說不用把libmysql.dll拷到系統目錄的辦法,就是在載入php5_module前,添加這句: LoadFile "E:\server\php528\libmysql.dll"
我們知道,java中有包的概念,而.NET中則有更加方便的DLL程式集引用的概念,通過這些以打包形式組合在一起的對象集合,我們可以很方便的在自己的類中引用其他地方定義的類或其他對象,但由於PHP中沒有相應的概念,所以在需要引用其他檔案中定義的對象時,PHP程式員最常用的兩個函數莫過於require_once和include了,通過這兩個函數,我們可以使用其他類庫中定義的類等對象。但很多人在使用包含相同目錄下的其他檔案時,僅僅簡單使用下面的代碼進行檔案引用: 複製代碼 代碼如下:include('
核心代碼starttime=this->getmicrotime(); } function display()//顯示頁面執行的時間 { this->stoptime=this->getmicrotime(); this->spendtime=this->stoptime-this->starttime; return round(this->spendtime,10); } } /*調用方法 timer=new Timer(); timer->start();
每個PHP指令碼都限制了執行時間,所以我們需要通過 set_time_limit 來設定一個指令碼的執行時間為無限長;然後使用 flush() 和 ob_flush() 來清除伺服器緩衝區,隨時輸出指令碼的傳回值。 如下面這段指令碼: 複製代碼 代碼如下:header("Content-Type: text/plain"); set_time_limit(0); $infoString = "Hello World" . "\n"; while( isset($infoString) ) {