Time of Update: 2016-07-29
作為命令語言,它互動式解釋和執行使用者輸入的命令或者自動地解釋和執行預先設定好的一連串的命令;作為程式設計語言,它定義了各種變數和參數,並提供了許多在高階語言中才具有的控制結構,包括迴圈和分支。 PHP經過長時間的發展,很多使用者都很瞭解PHP了,這裡我發表一下個人理解,和大家討論討論。大多數情況下,我使用 exec() 命令和資料數組處理所有東西。或者對更簡單的命令使用 shell_exec(),尤其是不關心結果時。如果僅需返回一個 PHP shell指令碼,我就使用 passthru()
Time of Update: 2016-07-29
第一類方法是利用數組完成的。先把檔案名稱切割成數組,然後想辦法取得數組最後一個元素就OK了。第二類方法是通過字串的處理來完成,還有一種方法是用pathinfo()函數。 複製代碼 代碼如下:$pic = 'abc.3434.342.12123.123.exe'; $pics = explode('.' , $pic); /*得到數組總數,然後取最後一個*/ echo $num = count($pics); echo ''.$pics[$num-1]; /*遍曆數組,取得最後一個元素*/
Time of Update: 2016-07-29
複製代碼 代碼如下:class FormModel extends Model { // 自動驗證設定 /* * 一:自動驗證 自動驗證的定義是這樣的:array(field,rule,message,condition,type,when,params) field:代表是資料庫的欄位名; rule:代表是規則; 它的值要看type的類型而定; 如果是condition 是function(callback),rule是一個函數名 condition 是in,rule是一個數組
Time of Update: 2016-07-29
for迴圈的經典例子就是連續求和了:1+2+3+……+100,講了一個多小時,還是有同學不會。做程式得有思想,有的同學一直敲鍵盤,也沒搞出來。在做這個求和之前,我們要思考一下,求和其實就是連續的累加,當變數$i自增的時候肯定要與之前的數求和,那麼怎麼與之前的數求和呢?我們可以做一個拆分:把$i之前的數看作一項,單獨和$i相加,同理,100加上之前99項的和,99加上之前98項的和……以此類推,2加上之前的數1,那麼1呢,就是1+0。在寫程式的時候,就是逆向思維了,先算0+1=1,再算1+2=3,
Time of Update: 2016-07-29
有了phpmail這個類,你就不用愁了。這是個外國人寫的一個類,我們就只管“拿來主義”了。下面是基於這個類裡面的send()方法寫的一個函數: 複製代碼 代碼如下:function send_mail ($title,$content,$from,$to,$charset='gbk',$attachment ='') { include '/class/PHPMail.class.php'; header('Content-Type: text/html; charset='.$charset)
Time of Update: 2016-07-29
直接上代碼吧! 複製代碼 代碼如下:/* * 插入排序(一維數組) * 每次將一個待排序的資料元素,插入到前面已經排好序的數列中的適當的位置,使數列依然有序;直到待排序的資料元素全部插入完成為止。 */ function insertSort($arr){ if(!is_array($arr) || count($arr)==0){ return $arr; } $count = count($arr); for($i=1; $iif(isset($arr[$i])){ $tmp =
Time of Update: 2016-07-29
也就是本文列舉的這13個PHP編碼好習慣,如果你有更好的建議,歡迎在本文後面的評論中發表,我這個人是喜歡求知的1、使用select從相同的資料庫查詢資訊時,使用一個join語句一次性整齊地擷取你需要的所有資訊,而不要寫多個mysql_query/while/mysql_fetch_array語句。 2、如果你在多個檔案中調用了一個資料庫連接,建立一個connection.php檔案儲存你的串連變數,在需要的地方將這個檔案包括進來。
Time of Update: 2016-07-29
複製代碼 代碼如下:/******************************************** * * 函數名:curl_string ($url,$proxy) * 作 用:檢測代理IP地址 * 作 者:李飛麟 * 日 期:2011-11-09 * ********************************************/ function curl_string ($url,$proxy) { $user_agent = "Mozilla/5.0
Time of Update: 2016-07-29
在php中,訪問類的方法/變數有兩種方法: 1. 建立對象$object = new Class(),然後使用”->”調用:$object->attribute/function,前提是該變數/方法可訪問。 2. 直接調用類方法/變數:class::attribute/function,無論是靜態/非靜態都可以。但是有前提條件: A. 如果是變數,需要該變數可訪問。 B. 如果是方法,除了該方法可訪問外,還需要滿足: b1) 如果是靜態方法,沒有特殊條件; b2)
Time of Update: 2016-07-29
複製代碼 代碼如下:function array_remove_key($array, $keys) { $num = count($keys); $num_last = $num - 1; $this_array_0 = &$array; $last_key = $keys[$num_last]; for ($i = 0; $i { $this_key = $keys[$i]; $this_var_name = 'this_array_' . $i; $next_var_name =
Time of Update: 2016-07-29
首頁大概3KB,是在本地測試的 複製代碼 代碼如下:file_get_contents('shadow.xml'); 耗時 0.0003 秒 複製代碼 代碼如下:$indexFile = fopen('shadow.xml', 'r');while ( !feof($indexFile)) fgetc( $indexFile); 耗時 0.026 秒 複製代碼 代碼如下:$indexFile = fopen('shadow.xml', 'r');fread($indexFile, 10000);
Time of Update: 2016-07-29
複製代碼 代碼如下:/** * 擷取百度的熱詞 * @user 小傑 * @from http://www.isharey.com/?p=354 * @return array 返回百度的熱詞資料(數組返回) */ function getBaiduHotKeyWord() { $templateRss = file_get_contents('http://top.baidu.com/rss_xml.php?p=top10'); If (preg_match('/(.*)/is',
Time of Update: 2016-07-29
首先ajax不能上傳檔案,這誤導了我有段時間,今晚睡不著就照著說明做了個無重新整理上傳檔案 其實原理很簡單 複製代碼 代碼如下: 和一般的標籤相比多了一個target屬性罷了,用於指定標籤頁在哪裡開啟以及提交資料。 如果沒有設定該屬性,就會像平常一樣在本頁重新導向開啟action中的url。 而如果設定為iframe的name值,即"upload"的話,就會在該iframe內開啟,因為CSS設定為隱藏,因而不會有任何動靜。若將display:none去掉,還會看到伺服器的返回資訊。
Time of Update: 2016-07-29
libcurl同時也支援HTTPS認證、HTTP POST、HTTP PUT、 FTP 上傳(這個也能通過PHP的FTP擴充完成)、HTTP 基於表單的上傳、代理、cookies和使用者名稱+密碼的認證。 php的curl真的是相當好用,網上一搜尋相關文章都是關於curl類比登陸的,很少人提供類比discuz發貼的源碼。 複製代碼 代碼如下:$discuz_url = 'http://127.0.0.1/discuz/';//論壇地址 $login_url = $discuz_url
Time of Update: 2016-07-29
call_user_func_array (PHP 4 >= 4.0.4, PHP 5) call_user_func_array -- Call a user function given with an array of parameters Description mixed call_user_func_array ( callback function, array param_arr ) Call a user defined function given by function,
Time of Update: 2016-07-29
首先來看一下cakephp的的執行流程(從百度百科借來的圖片): 1:首先你的伺服器必須支援rewrite,如果是不支援rewrite的虛擬機器主機的話cakephp是不能正常啟動並執行。 2:將所有的請求定向到cakephp架構後就進入了架構的route,cakephp帶有一套預設的分發規則(例如:http://……/test/test,在不做任何route配置的情況下cakephp會自動執行test_controller控制器中的test方法)。
Time of Update: 2016-07-29
下面就用一段程式碼範例來示範一下PHP進階對象構建中的使用多個建構函式進行對象構建的原理。 複製代碼 代碼如下:class classUtil {//這是一個參數處理的類 public static function typeof($var){ if (is_object($var)) return get_class($var);//如果是對象,擷取類名 if (is_array($var)) return "array";//如果是數組,返回"array" if
Time of Update: 2016-07-29
在使用的時候,得先把要產生摘要的內容strip_tags()一下,當然,你也可以把strip_tags()直接添加到函數中,我沒有搞,自己添加吧。下面是函數: 複製代碼 代碼如下:function cutstr($string, $length,$charset,$dot) {//字元,截取長度,字元集,結尾符 if(strlen($string) return $string; } $pre = chr(1); $end = chr(1); //保護特殊字元串 $string =
Time of Update: 2016-07-29
register_globals的值可以設定為:On或者Off,我們舉一段代碼來分別描述它們的不同。 代碼: 複製代碼 代碼如下: 當register_globals=Off的時候,下一個程式接收的時候應該用$_GET['user_name']和$_GET['user_pass']來接受傳遞過來的值。(註:當的method屬性為post的時候應該用$_POST['user_name']和$_POST['user_pass'])
Time of Update: 2016-07-29
複製代碼 代碼如下:/****** 備份資料庫結構 ******/ /* 函數名稱:table2sql() 函數功能:把表的結構轉換成為SQL 函數參數:$table: 要進行提取的表名 返 回 值:返回提取後的結果,SQL集合 函數作者:heiyeluren */ function table2sql($table) { global $db; $tabledump = "DROP TABLE IF EXISTS $table;n"; $createtable = $db--->query("