Time of Update: 2017-01-19
(1).REMOTE_ADDR:瀏覽當前頁面的使用者電腦的ip地址 (2).HTTP_X_FORWARDED_FOR: 瀏覽當前頁面的使用者電腦的網關 (3).HTTP_CLIENT_IP:用戶端的ip 在PHP 中使用 $_SERVER["REMOTE_ADDR"] 來取得用戶端的 IP 位址,但如果用戶端是使用Proxy 伺服器來訪問,那取到的就是Proxy 伺服器的 IP 位址,而不是真正的用戶端 IP 位址。要想透過Proxy 伺服器取得用戶端的真實 IP 位址,就要使用
Time of Update: 2017-01-19
PHP實現: 複製代碼 代碼如下: <?php /** * 計算四則運算運算式 */ error_reporting(E_ALL); $exp = '(1+2*(3+5)/4)*(3+(5-4)*2)'; $arr_exp = array(); for($i=0;$i<strlen($exp);$i++){ $arr_exp[] = $exp[$i]; } $result = calcexp( array_reverse($arr_exp) ); echo $exp . '=' .
Time of Update: 2017-01-19
使用檔案尾碼和MIME類型檢測 通常我們想嚴格限制檔案類型的時候,可以簡單地用$_FILES['myFile']['type'] 取得檔案的 MIME類型然後來檢測它是否是合法的類型。 或者我們可以取檔案名稱的最後幾個字元來擷取檔案尾碼,不幸的是,這些方法並不足夠,可以很容易地改變檔案的副檔名繞過這個限制。此外,MIME類型資訊是由瀏覽器發送的,而且,對於大多數瀏覽器,即使不是全部,是根據檔案的副檔名的來給出MIME類型資訊的!因此,MIME類型,就像副檔名一樣,可以很容易地欺騙。
Time of Update: 2017-01-19
1.使用一個SQL注射備忘單 一個基本的原則就是,永遠不要相信使用者提交的資料。 另一個規則就是,在你發送或者儲存資料時對它進行轉義(escape)。 可以總結為:filter input, escape output (FIEO). 輸入過濾,輸出轉義。 通常導致SQL注射漏洞的原因是沒有對輸入進行過濾,如下語句: 複製代碼 代碼如下: <?php $query = "SELECT * FROM users WHERE name = '{$_GET['name']}'";
Time of Update: 2017-01-19
複製代碼 代碼如下: function geturl($url) { $ch = curl_init(); $timeout = 5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); //在需要使用者檢測的網頁裡需要增加下面兩行 //curl_setopt($ch,
Time of Update: 2017-01-19
1,和PHP手冊成為好朋友 2,開啟Error Reporting Error reporting 在 PHP 開發時是很有協助的. 你可以在你代碼中發現先前你沒有發現的錯誤,因為並不是所有的BUG都會讓程式運行不了的。當產品正式使用時,才有必要關掉錯誤報表,不然顧客看到一堆奇怪的字元不知道那是什麼意思。 3,使用IDE IDE (整合式開發環境,Integrated Development Environments)對於開發人員來說是很有協助的工具. 荒野在這裡推薦netbeans IDE 。
Time of Update: 2017-01-19
zend給php的所有變數都用結構的方式去儲存,而字串的儲存和數組的儲存也是不同的,數組採用的是hash表的方式去儲存(大家知道hash儲存的地址有效減少衝突-hash散列表的概念你懂的),而在php中的結構體上表現如下: 複製代碼 代碼如下: //檔案1:zend/zend.h /* * zval */ typedef struct _zval_struct zval; ... typedef union _zvalue_value { long lval; /* long value */
Time of Update: 2017-01-19
步驟如下: 1. 進到對應擴充目錄 # cd /usr/local/src/php-5.2.12/ext/curl 2. 調用phpize程式產生編譯設定檔 # /usr/local/php5/bin/phpize 3. 調用configure產生Makefile檔案,然後調用make編譯,make install安裝 # ./configure -with-curl=/usr/local/curl -with-php-config=/usr/local/php5/bin/php-config#
Time of Update: 2017-01-19
得到HTTP_USER_AGENT 的方法很簡單,比如php代碼: 複製代碼 代碼如下: <?php print_r($_SERVER); ?> 複製代碼 代碼如下: <?php print_r($_SERVER['HTTP_USER_AGENT']); ?> 這兩種都可以得到User-Agents和IP等資訊,最好配合Regex,對資訊進行篩選剔除。 ————– User-Agents列表————- Internet Explorer 6 Internet
Time of Update: 2017-01-19
複製代碼 代碼如下: /** * 判斷是否為搜尋引擎蜘蛛 * * @author Eddy * @return bool */ function isCrawler() { $agent= strtolower($_SERVER['HTTP_USER_AGENT']); if (!empty($agent)) { $spiderSite= array( "TencentTraveler", "Baiduspider+", "BaiduGame", "Googlebot", "msnbot", "
Time of Update: 2017-01-19
雖然知道這個參數表示“中華人民共和國”的意思,但官方文檔 中並沒有這樣的參數,只有Asia/Shanghai、Asia/Hong_Kong等這些參數啊,為何這裡可以設定為RPC,哪位給指點指點,這個參數 究竟是在哪兒?官方文檔中看來看去的確並沒有此參數啊,不解。 一般都設成Asia/Shanghai 使用xampp時間不久,今天為了糾正php擷取函數是擷取伺服器時間。
Time of Update: 2017-01-19
它是一個開源軟體,是完全採用PHP語言編寫的、通過HTTP收發SOAP訊息的一系列PHP類,由NuSphere Corporation(http://dietrich.ganx4.com/nusoap/ )開發。NuSOAP的一個優勢是不需要擴充庫的支援,這種特性使得NuSoap可以用於所有的PHP環境,不受伺服器安全設定的影響。 方法一:直接調用 複製代碼 代碼如下: <? include(‘NuSoap.php'); //
Time of Update: 2017-01-19
複製代碼 代碼如下: <?php /* <?xml version="1.0" encoding="utf-8"?> <article> <item> <title name="t1">11</title> <content>content1</content> <pubdate>2009-10-11</pubdate> </item> <item> <
Time of Update: 2017-01-19
不知道原創要寫到隨筆裡。 All right ,第一篇博文。 有三個類: 1 . 過濾輸入(輕量級的) class input_filter 負責將參數,如$_GET,$_POST 這些過濾 傳回值類型為 數組,用作 made_sql 類的參數 2 . 轉換成SQL語句 class made_sql 參數的類型為數組和表名(字串),數組的鍵名為表的列名,值為插入值 傳回值類型為 字串 ,用作 mysql ->query方法 的參數 3 . 資料庫查詢 class mysql
Time of Update: 2017-01-19
複製代碼 代碼如下: <?php //post.php function Post($host,$port) { //$host="127.0.0.1"; //建立串連 $conn = fsockopen($host,$port); if (!$conn) { die("Con error"); } //迴圈發送5次資料 // for($i = 0;$i<5;$i++) { $data="user_name=admin".$i;
Time of Update: 2017-01-19
PHP的一個有效變數名由字母或者底線開頭,後面跟上任意數量的字母,數字,或者底線。按照正常的Regex,它將被表述為:'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'。 注: 在此所說的字母是 a-z,A-Z,以及 ASCII 字元從 127 到 255(0x7f-0xff)。 複製代碼 代碼如下: <?php $var = 'Bob'; $Var = 'Joe'; echo "$var, $Var"; // 輸出 "Bob, Joe" $4site =
Time of Update: 2017-01-19
簡單的試用心得如下: 安裝pman 使用傳說中的pear來安裝pman sudo pear install doc.php.net/pman 如果pear版本比較老,需要先升級pear才可以繼續 sudo pear upgrade pear pman使用方法 pman的使用方法很傻瓜,比如我們想查看strlen的協助資訊: pman strlen 協助文本的內容是彩色的,能和chm版本的php協助文檔媲美。pman的詳細使用協助如下 #pman
Time of Update: 2017-01-19
一、邏輯代數基礎: 1,數字用二進位表示,所有可能出現的數只有0和1兩個。 2,基本運算只有“與”、“或”、“非”三種。 與運算定義為:(用 & 表示與運算) 0 & 0 = 0 0 & 1 = 0 1 & 0 = 0 1 & 1 = 1 可以簡單理解為:只要有一個0,結果就是0,和乘法類似。 或運算定義為:(用 表示與運算) 0 0 = 0 0 1 = 1 1 0 = 1 1 1 = 1
Time of Update: 2017-01-19
代碼如下 複製代碼 代碼如下: $dir = 'D:\Program Files\resource\application\Skin\PNG\\';//注意這裡的路徑,最後要加兩個\,第一個表示轉意,但是這樣容易遇到其他特定轉義,還要仔細判斷,可以寫為如下方式 $dir = 'D:/Program Files/resource/application/Skin/PNG/';//寫成這樣的路徑,就不用擔心轉義問題了。最後面的/不要漏寫 if ($dh = opendir($dir)) {
Time of Update: 2017-01-19
只有一個php_pdo_odbc.dll。 so~最新最好的php串連mssql方法應該是這樣: 複製代碼 代碼如下: <?php $cnx = new PDO("odbc:Driver={SQL Server};Server=127.0.0.1;Database=test;",'sa','asd123'); var_dump($cnx); $a = $cnx->query("SELECT * FROM [user]"); var_dump($a); foreach ($a as $