Time of Update: 2017-01-19
概述在物件導向編程中,PHP提供了一系列的魔術方法,這些魔術方法為編程提供了很多便利。PHP中的魔術方法通常以__(兩個底線)開始,並且不需要顯示的調用而是由某種特定的條件出發。這篇文章簡單總結了PHP中提供的魔術方法。開始之前在總結PHP的魔術方法之前先來定義兩個類,以便後邊樣本使用:複製代碼 代碼如下:<?phpclass Device { public
Time of Update: 2017-01-19
概述爬蟲是我們在做程式時經常會遇到的一種功能。PHP有許多開源的爬蟲工具,如snoopy,這些開源的爬蟲工具,通常能幫我們完成大部分功能,但是在某種情況下,我們需要自己實現一個爬蟲,本篇文章對PHP實現爬蟲的方式做個總結。PHP實現爬蟲主要方法1.file()函數2.file_get_contents()函數3.fopen()->fread()->fclose()方式4.curl方式5.fsockopen()函數,socket方式6.使用開源工具,如:snoopyPHP解析XML或H
Time of Update: 2017-01-19
概述正在學習設計模式,之前有一篇文章關於單例模式的文章,重新讀了這篇文章,發現對static關鍵字掌握不是很牢靠,重新溫習一下。static關鍵字PHP手冊裡對static關鍵字的介紹如下:複製代碼 代碼如下:Declaring class properties or methods as static makes them accessible without needing an instantiation of the class. A property declared as
Time of Update: 2017-01-19
單例模式的概念單例模式是指整個應用中某個類只有一個對象執行個體的設計模式。具體來說,作為對象的建立方式,單例模式確保某一個類只有一個執行個體,而且自行執行個體化並向整個系統全域的提供這個執行個體。它不會建立執行個體副本,而是會向單例類內部儲存的執行個體返回一個引用。單例模式的特點單例模式的主要特點是“三私一公”:需要一個儲存類的唯一執行個體的私人靜態成員變數建構函式必須聲明為私人的,防止外部程式new一個對象從而失去單例的意義複製函數必須聲明為私人的,防止對象被複製必須提供一個訪問這個執行個體的
Time of Update: 2017-01-19
概述想做一個微信的公眾平台,閱讀了微信官方給的網址接入的範例程式碼,發現有個問題好像一直都是半知半解的,就是在類裡邊直接使用$_GET。仔細查了下關於這方面的知識,發現PHP中這部分的基礎知識掌握的不是很牢靠。變數的範圍提到PHP的超全域數組,就不能不說下變數的範圍。變數的範圍是任何一門程式設計語言中都有的概念,也是必須掌握的。關於PHP中的變數範圍,這裡不再多說,大家可以自己查看資料。超全域數組超全域數組是PHP中特殊定義的陣列變數,之所以稱為超全域數組是因為這些數組在指令碼中的任何地方、任何
Time of Update: 2017-01-19
複製代碼 代碼如下:$(document).ready(function(){ <?php $f="'name'"?> var t=<?php echo $f?>; alert(t) })或複製代碼
Time of Update: 2017-01-19
#touch a.php //建立a.php檔案#vi a.php //用vi 編輯a.php檔案將<?php echo md5(123456); ?>輸入進去後儲存#php a.php
Time of Update: 2017-01-19
在進行Web應用程式開發的時候,人們經常會用Session儲存資料。但可能有人不知道,在PHP中,Session使用不當可能會引起並發問題。印度醫學行業軟體方案提供者Plus91 Technologies進階工程師Kishan Gor在個人部落格上對這個問題進行了闡釋。 如果同一個用戶端並發發送多個請求,而每個請求都使用了Session,那麼PHP
Time of Update: 2017-01-19
照此配置流程,絕對一路暢通,可保無虞。昨天弄了個PHP小程式,想在本地跑一下測試,可是工作電腦沒有安裝環境,於是下載了一個wamp,一路暢通,Apache、Mysql、PHP就全有了。啟動wamp服務,在瀏覽器裡輸入“http://localhost”,訪問正常,跳出wamp首頁。於是,下面想把自己的CrashServer網站配置到Apache裡,可以通過虛擬網域名稱在本地訪問測試,結果遇到不少問題,今日一通Google研究,終於任督二脈全通。1、首先,Apache的設定檔是httpd.conf
Time of Update: 2017-01-19
總共分成3大部分來完成php的ajax調用邏輯,以下是大致的結構第一部分:ajax請求:主要是action這個參數,LoginController是php的類名,login是LoginController這個類中的函數名$('#submit').on('click', function (e) { e.stopPropagation(); $.ajax({ url: "../../controllers/Controller.php", data: {
Time of Update: 2017-01-19
會不會碰到這樣一種情況呢?每次擷取資料將資料和曆史版本都有一定的差別,然而用ThinkPHP的addAll()函數,卻會將已有的資料刪掉再重新寫入。這明顯不是我們想要的。但自己寫sql每次幾十個欄位也是醉了。如何優雅而又輕鬆地實現sql的自動產生呢?於是有了下面這個方法。/** * [array_to_sql 根據數組key和value拼接成需要的sql] * @param [type] $array [key, value結構數組] * @param string $type
Time of Update: 2017-01-19
最近在用ThinkPHP開發一個京東服務市場的應用,然而京東服務市場介面返回的資料是個對象數組。然而需要一個個屬性取出來放到數組裡面然後再利用ThinkPHP的addAll或者add方法寫入資料庫。然而每次返回的欄位有幾十個,每次這麼拼接都要崩潰了。果然還是那句話,當你感到無法忍受的時候你就會想辦法改變。於是想了下,如果有個函數傳個對象數組進去可以自動轉成普通數組就好了。因而萬能的互連網搜尋又來了。百度了一通。。。果然有前輩已經處理過了,在此記錄一下。複製代碼 代碼如下:/***
Time of Update: 2017-01-19
isset 判斷變數是否已存在empty 判斷變數是否為空白或為0is_null 判斷變數是否為NULL 變數 empty is_null isset $a=”” true false true $a=null true true false var $a true true
Time of Update: 2017-01-19
之前不知道php內建有base_convert可以實現任意進位之間的轉換,自己寫了一個。。。。<?php /** * 進位轉換類 * @author sgf@funcity * @version 2011-02-15 */Class Hex{ private static $element = array( '0','1','2','3','4','5','6','7','8','9', 'A','B','C','D','E','F','G','H','I','J', 'K',
Time of Update: 2017-01-19
1.在PHP中,當前指令碼的名稱(不包括路徑和查詢字串)記錄在預定義變數(1)中;而連結到當前頁面的URL記錄在預定義變數(2)中。複製代碼 代碼如下:答:echo $_SERVER['PHP_SELF']; echo $_SERVER["HTTP_REFERER"];2.執行程式段將輸出(3)。複製代碼 代碼如下:答:03.在HTTP 1.0中,狀態代碼 401 的含義是(4);如果返回“找不到檔案”的提示,則可用 header 函數,其語句為(5)。複製代碼 代碼如下:答:(4)未授權 (5
Time of Update: 2017-01-19
<?php /* @ PHP 線上人數統計程式 Copyright (c) by Pader 1:25 2009年1月7日 How to use it: <script src="online.php"></script> note: 一般獨立線上人數統計程式都是統計線上的IP數,而這並不準確 例如區域網路的訪問者,比如公司,學校機房和網吧,雖然內網IP不同,但是外網IP都是一樣 如果同一個區域網路的無論多少人人訪問你的網站則只被認為是一個人
Time of Update: 2017-01-19
今天在改論文線上的時候遇到了一個語句看不懂:$if_summary = $row['IF_SUMMARY']==2?'是':'否';後來百度後發現是PHP的三元運算子這句話的意思就等於是if($row['IF_SUMMARY']==2){$if_summary="是";}else{$if_summary="否";}三元運算子的功能與“if...else”流程語句一致,它在一行中書寫,代碼非常精練、執行效率更高。在PHP程式中恰當地使用三元運算子能夠令指令碼更為簡潔、高效。代碼格式如下:(
Time of Update: 2017-01-19
概述以前研究過PHP的輸入輸出緩衝,不過部落格搬家以後,原來文章找不到了,今天看到一篇好文,順便轉載過來。簡介說到輸出緩衝,首先要說的是一個叫做緩衝器(buffer)的東西。舉個簡單的例子說明他的作用:我們在編輯一篇文檔時,在我們沒有儲存之前,系統是不會向磁碟寫入的,而是寫到buffer中,當buffer寫滿或者執行了儲存操作,才會將資料寫入磁碟。對於PHP來說,每一次像 echo 這樣的輸出操作,同樣是先寫入到了 php buffer
Time of Update: 2017-01-19
概述流(streams)是PHP4.3版本引入的一個特性,主要是為了統一檔案、sockets以及其他類似資源的工作方法。PHP4.3距今已經有很長時間了,但是很多程式員似乎都不能正確使用PHP中的流,當然這也包括我。以前也在一些程式中遇到過流的使用,如php://input,但是一直沒機會整理,今天就把這部分知識整理下。流是由PHP提供的資源,可以供我們透明的使用,而且流是一個非常強大的工具。適當的在程式中使用流,可以將我們的程式帶到一個新的高度。PHP手冊中對流的描述如下:複製代碼 代碼如下:
Time of Update: 2017-01-19
概述本部落格的前面兩篇文章:curl和libcurl簡介以及PHP中使用curl對PHP中curl的使用做了簡單介紹,但是PHP中curl的使用卻並不簡單,尤其是curl的各種配置項,本篇文章會講解幾個PHP的執行個體,以便大家更好的理解curl。執行個體:抓取頁面使用curl抓取頁面相對來說比較簡單,但是這裡有一點需要注意的是,curl預設會將抓取的頁面直接輸出到瀏覽器。然而,我們經常遇到的情況是擷取抓取的內容,對內容做一定的處理之後再進行操作。因此,這裡寫出兩種不同的情況。直接輸出到瀏覽器複