Time of Update: 2017-01-19
Apache 2.2.27和PHP 5.5.12在Mac OS X 10.8.5編譯安裝過程:在開始之前首先升級Xcode的組件: preferences => Downloads => 下載Command Line Tools包然後進入Apache的源碼包,對於大部分的源碼包都可以使用下面這個指令來查看編譯選項:./configure --help配置編譯選項:./configure --prefix=/Users/levin/dev/apache2.2.27
Time of Update: 2017-01-19
最近在做一個使用支付寶轉賬的項目,其中有需求把我難到了:批量支付成功後不知道怎麼接收系統返回的通知,經過朋友幫忙,此功能實現,下面小編把具體代碼整理分享給大家,供大家參考廢話不多說了,直接給大家貼php代碼了,具體代碼如下所示://批量付款非同步通知處理class Notify{ public $notifyParams; //處理成功的資訊 protected $success = []; //處理失敗的資訊 protected $fail = []; //批次號
Time of Update: 2017-01-19
cli(Command Line Interface)即PHP的命令列模式,現在此SAPI是預設安裝的,我們在伺服器上安裝完PHP之後,一般會產生一個可執行檔,假設此檔案為/usr/local/bin/php ,那麼我們在SHELL下可以用以下命令來執行一個PHP指令碼:複製代碼 代碼如下:/usr/local/bin/php -f test.php以CLI
Time of Update: 2017-01-19
今天在伺服器做了遷移以後,前台可以正常顯示和調用,登陸後台顯示500錯誤,一般這種情況下都要查看核心跳轉檔案,經查看發現login.php檔案並沒有調用.因為找不到login.php檔案,那就證明這個檔案裡是有語法錯誤。開啟伺服器報錯資訊發現.Fatal error:Call-time pass-by-reference has been removed經過尋找資料發現,自己原來的伺服器環境是5.2版本的,更換了伺服器以後升級到了5.4版本,所以就出現了參數傳遞錯誤.Fatal
Time of Update: 2017-01-19
直接用file_get_contents,會報錯; 複製代碼 代碼如下: $url = (https://xxx.com"); file_get_contents($url); 錯誤: Warning: file_get_contents(https://xxx.com) [function.file-get-contents]: failed to open stream: No such file or directory in
Time of Update: 2017-01-19
因為這個是語言的問題,常規方案比較難以解決。下面是一種通過string 解決的方案。 複製代碼 代碼如下: $total = 100000; $double = ""; for ($i = 0; $i < $total; $i++) { $double .= pack("d", $i + 0.1); } for ($i = 0; $i < $total; $i++) { unpack("@" . ($i * 8) . "/d", $double); } 這個例子用一個string
Time of Update: 2017-01-19
之前嘗試用的是memcache,後來發現memcached支援setMulti方法,準備轉向使用memcached庫了。(試了下,實際上,memcache從支援多值set,但文檔上還沒有,看changelog好像是3.0開始支援,穩定版可能不帶此功能。)至於效率,也不清楚會有多大差距。這裡有一篇文章也說到,memcached是基於libmemcached,可能要好一些。終於,基於libmemached的php擴充在pecl發布了。於是,現在pecl上有兩個memcache用戶端了。一個是完全在P
Time of Update: 2017-01-19
1尋找字元位置函數: strpos($str,search,[int]):尋找search在$str中的第一次位置從int開始; stripos($str,search,[int]):函數返回字串在另一個字串中第一次出現的位置。該函數對大小寫不敏感 strrpos($str,search,[int]):尋找search在$str中的最後一次出現的位置從int 2、提取子字元函數(雙位元組) submit($str,int start[,int
Time of Update: 2017-01-19
【1】頁面之間無法傳遞變數 get,post,session在最新的php版本中自動全域變數是關閉的,所以要從上一頁面取得提交過來得變數要使用$_GET['foo'],$_POST['foo'],$_SESSION['foo']來得到 當然也可以修改自動全域變數為開(php.ini改為register_globals = On);考慮到相容性,還是強迫自己熟悉新的寫法比較好。 【2】Win32下apache2 用get方法傳遞中文參數會出錯 test.php?a=你好&b=你也好
Time of Update: 2017-01-19
1.echo和print的區別PHP中echo和print的功能基本相同(輸出),但是兩者之間還是有細微差別的。echo輸出後沒有傳回值,但print有傳回值,當其執行失敗時返回flase。因此可以作為一個普通函數來使用,例如執行下面的代碼後變數$r的值將為1。$r = print “Hello World”; 這意味著print可用在一些複雜的運算式中,而echo則不行。但是,因為echo語句不要求返回任何數值,所已在代碼中echo語句的運行效率要略微快於print語句。
Time of Update: 2017-01-19
觀察者模式 複製代碼 代碼如下: interface Subject { public function Attach($Observer); //添加觀察者 public function Detach($Observer); //踢出觀察者 public function Notify(); //滿足條件時通知觀察者 public function SubjectState($Subject); //觀察條件 } class Boss Implements Subject { public
Time of Update: 2017-01-19
如下函數: 複製代碼 代碼如下: <? /** 擷取遠程檔案內容 @param $url 檔案http地址 */ function fopen_url($url) { if (function_exists('file_get_contents')) { $file_content = @file_get_contents($url); } elseif (ini_get('allow_url_fopen') && ($file = @fopen($url, 'rb'))){ $i = 0
Time of Update: 2017-01-19
1. 提高PHP的運行效率 PHP的優點之一是速度很快,對於一般的網站應用程式,可以說是已經足夠了。不過如果網站的訪問量很高、頻寬窄或者其它的因素令伺服器產生效能瓶頸的時候,你可能得想想其它的辦法來進一步提高PHP的速度了。 1.1. 代碼最佳化 1、用i+=1代替i=i+1。符合c/c++的習慣,效率還高。 2、儘可能的使用PHP內建函式。自己編寫函數之前要詳細查閱手冊,看有沒有相關的函數,否則費力不討好。
Time of Update: 2017-01-19
想實現這樣一個功能:開展一個網站邀請活動,然後參與者(owner)將推廣的網站地址連結發給好友,好友點選連結後在網站註冊成功,owner的邀請日誌記錄條數加1。 活動類 Activity 複製代碼 代碼如下: class Activity extends ElggEntity { private $strategy; //用於儲存策略執行個體 public function __construction($guid) { ... $this->load($guid); //載入實體 }
Time of Update: 2017-01-19
很多時候當我們通過某個通用型RCE漏洞批量抓取了很多的webshell後,可能想要批量傳個後門以備後用。這時,我們不禁會面臨一個問題,使用菜刀一個個上傳顯得太慢,那麼如何快速的實現檔案的批量上傳呢?本文給大家介紹基於php如何?這類需求。0×01 原理分析首先,我們必須瞭解菜刀是如何通過一句話木馬來實現web伺服器的檔案管理的。下面是最常見的php一句話木馬:<?php eval($_POST[1]);
Time of Update: 2017-01-19
開發的時候我都是使用XDebug在本地調試,但是最近加入一些項目中去,環境太複雜了,要在本地搭建一個開發環境真的太麻煩了,那麼我們怎麼使用xdebug來遠端偵錯呢?我這裡使用虛擬機器搭建了一個類比環境來實驗說明:1.虛擬機器IP:192.168.174.130 ,虛擬機器用於搭建lampp環境2.實體機IP:192.168.174.1,這個是IDE的開發環境。首先我在虛擬機器裡面安裝了一個lampp,而且增加了一vhosts,具體如下:vim
Time of Update: 2017-01-19
php讀取檔案內容的五種方式分享下php讀取檔案內容的五種方法:好吧,寫完後發現檔案全部沒有關閉。實際應用當中,請注意關閉 fclose($fp);--php讀取檔案內容:-----第一種方法-----fread()--------<?php$file_path = "test.txt";if(file_exists($file_path)){$fp = fopen($file_path,"r");$str =
Time of Update: 2017-01-19
1、用單引號代替雙引號來包含字串,這樣做會更快一些。因為PHP會在雙引號包圍的字串中搜尋變數, 單引號則不會,注意:只有echo能這麼做,它是一種可以把多個字串當作參數的”函數”(譯註:PHP手冊中說echo是語言結構,不是真正的函數,故 把函數加上了雙引號)。2、如果能將類的方法定義成static,就盡量定義成static,它的速度會提升將近4倍。3、$row[‘id'] 的速度是$row[id]的7倍。4、echo 比 print
Time of Update: 2017-01-19
PHP還是比較常用的,於是我研究了一下PHP二維數組。在處理php數組的時候,有一種需求特別的頻繁,如下二維數組:$arr = array(1=>array('id' => 5,'name' => '張三'),2=>array('id' => 6,'name' => '李四'));目的就是要取到key為name的集合,得到這個結果:$arr2 =
Time of Update: 2017-01-19
不知算不算手賤,把VPS伺服器上的php升級到7.0, 雖然7.x與之前的相容性是很高的,但移除了一大堆過時用法,而某些老應用仍然在使用。對個人wordpress網站裡出現的錯誤,修正記錄如下。全部是外掛程式,wordpress官方程式,是沒有問題的。mysql_escape_string() 函數改為addslashes()wp-thread-comment外掛程式