兩年前曾發過一篇《用Python嘗試RabbitMQ》,沒想到兩年後的今天,基於PHP的amqp資料還是少得可憐,原來的幾個擴充也都一個個被廢棄,只剩amqp還健在,且被PECL收錄。雖說被收錄,可官方手冊中的資訊還是略顯單薄。言歸正傳,amqp擴充的安裝就不多說了,可參看前幾天發的那篇《給PHP安裝amqp擴充》裝好了amqp後就可以開始編寫代碼了:消費者:接收訊息邏輯:建立串連-->建立channel-->建立交換器-->建立隊列-->綁定交換器/隊列/路由鍵--&g
只對比較簡單的direct模式進行了封裝,隊列支援持久化、鏡像以及auto-delete。(但是不支援交換器的auto-delete,不知道擴充中為什麼沒與支援)先執行消費者,建立對交換器、隊列並與路由鍵綁定,並監聽訊息佇列;再執行生產者,向已建立的交換器中發送訊息。直接上代碼了:/** * 消費者類 */class AsynMessageConsumer{ private $config = array(); private $durable = True; private
2013-4-17更新請參看最新一篇《詳解使用PHP CURL訪問HTTPS》--------------------------------------------------------------------------------------------------------------------標題有點長,其實就是用來向https伺服器post資料function curlPost($url, $data, $timeout = 30){ $ssl =
程式非阻塞模式,這裡也可以理解成並發。而並發又暫且可以分為網路請求並發和本地並發。 先說一下網路請求並發理論描述假設有一個client,程式邏輯是要請求三個不同的server,處理各自的響應。傳統模型當然是順序執行,先發送第一個請求,等待收到響應資料後再發送第二個請求,以此類推。就像是單核CPU,一次只能處理一件事,其他事情被暫時阻塞。而併發模式可以讓三個server同時處理各自請求,這就可以使大量時間複用。畫個圖更好說明問題:前者為阻塞模式,忽略請求響應等時間,總耗時為700ms;而後者非阻塞
我們平時做使用者登入表單提交,使用者名稱密碼都是明文直接POST到後端,這樣很容易被別人從監聽到。註:包括使用MD5等雜湊函數處理後的資料,這裡也算做明文(現在MD5爆破網站已經很多了~)。對安全性要求較高的網站,比如銀行和大型企業等都會使用HTTPS對其進行加密通訊。但是由於效率原因,使用HTTPS的代價是及其昂貴的,對於訪問量稍大的網站就會造成嚴重的效能瓶頸。解決方案一般只能採用專門的SSL硬體加速裝置如F5的BIGIP等。所以很多網站選擇了類比SSL的做法,使用RSA來對密碼等安全資訊進行
聲明:本文內容只用於研究學習使用,請勿用於非法行為!上回咱說到了最近爆出的hash表碰撞漏洞,包括java、python、php等在內的很多常用語言均未倖免,今晚咱就來實際看看它的威力。攻擊原理:通過向目標伺服器post一組精心拼湊的數組參數,到達服務端後語言底層處理接收到的數組參數時,由於該漏洞的存在造成CPU的大量消耗,最終導致伺服器資源耗盡。不用什麼花哨的手法,就用PHP簡單實現下看下效果,點到即止。檔案:dos.php// 目標地址// 只要目標地址存在,不用管它是幹嘛的$host =
題目意思就是判斷兩個圖是不是同構,就是兩個圖是不是一樣,由於該題的圖是非常特殊的,度只能為2,所以圖是由若干個鏈組成,或是若干個環,即1--->2--->3--->1,,,,,,1---》2--->3;;;這兩個圖是不一樣的,特殊的,(1--->1,,,,2--->2,,,,),
二分圖最大匹配:用鄰接矩陣逾時,需要用鄰接表;#include<cstdio>#include<algorithm>#include<string.h>#include<stdlib.h>#include<iostream>#include<vector>using namespace std;const int N=512;bool chk[N];vector<int>vis[N];int n;int
剛開始時感覺本題是二維線段樹,然後分析一下貌似不是,就是求取區間最大值的位置,感覺和之前的那道求逆序數的有一部分很像,查詢更新;這題是把查詢和更新合在了一起;但是我這個弱菜不會寫代碼,之後果斷參考了HH神牛的模板;ORZ。。。各種若,弱不經風,剛學線段樹,以後要努力,第一次這麼晚了還在寫代碼了,ORZ。。只有我這種若才才會熬夜。。。好了今天到這裡一會碎覺嘍,不然會掛的。這幾天看到網上很多新聞因為熬夜猝死的事情,我可不想這樣的事情發生在我身上。。。珍愛生命,遠離代碼#include
這個和java的序列話是一樣的。只是java要實現Serializable這個空介面。serialize() 把變數和它們的值編碼成文本形式unserialize() 恢複原先變數什麼情況下需要序列化 當你想把的記憶體中的對象寫入到硬碟
1、批量選中與刪除使用this.form<script type="text/javascript">function CheckAll(form) { for (var i=0;i<form.elements.length;i++) { var e = form.elements[i]; if (e.name != 'chkall') e.checked = form.chkall.checked; } }
phpserialize ,是一個PHP 的變數序列化和還原序列化函數在 Python 的實現。換言之,就是在 Python 語言環境中,藉助 phpserialize 可以方便的處理那些在 PHP 中序列化了的文本,將其轉變為變數(字串、數組、整數、對象等),也可以將變數按照 PHP 語言的序列化規則進行轉換,然後可以在 PHP 中將其還原序列化為 PHP 環境中的變數進行應用。phpserialize 可以作為單純的 Python 擴充件來使用,不過,通常還是經常應用在 Python
一波三折啊,老是忘記打單詞<body bgcolor="#0080FF"" ><form action="bbs.php" method="post" name="Form"><table border=0 cellpadding=2 cellspacing=0 ><tr> <td align=right>名字:</td> <td><input type=text size=40
網站www根目錄下的檔案夾名不能是中文,否則提示‘開啟’‘儲存’phpmyadmin使用者名稱密碼錯誤,重新安裝Regex字元描述/將下一個字元標記為一個特殊字元、或一個原義字元、或一個 後向引用、或一個八進位轉義符。例如,'n' 匹配字元 "n"。'/n' 匹配一個分行符號。序列 '//' 匹配 "/" 而 "/(" 則匹配 "("。^匹配輸入字串的開始位置。如果設定了 RegExp 對象的 Multiline 屬性,^ 也匹配 '/n' 或 '/r'
今天看到了feifengxlq的一篇《深入PHP編譯緩衝》,裡面介紹了Zend Engine執行PHP代碼的過程及原理,以及編譯緩衝的執行流程。可以看出,對於包含大量include檔案的項目,使用編譯緩衝可以大大加快程式運行速度。於是選了個xcache(聽說是國產,支援:P)試試。小結一下安裝步驟(win32下):1、下載你php版本適合的XCachehttp://xcache.lighttpd.net/wiki/ReleaseArchive注意,windows使用者直接下載prebuilt
除了多進程,PHP原來也可以支援非阻塞模式運行,很好很強大:D這篇轉自IBM developerworks,等隨後嘗試一下再搞篇原創:) ----------------------------------------------------- 轉帖開始 ----------------------------------------------------- 許多 PHP 開發人員認為,由於標準的 PHP 缺少線程功能,因此實際 PHP
在多個jobs server時,PHP的gearman擴充在jobs server連接埠不通的情況下會自動檢測出來,從而自動切換到另一個;但是在IP不通的情況下,就會出錯了。該封裝解決了幾個問題:1、Jobs Server的IP如果突然不可達(例如機器關機),worker會自動重新添加jobs server(預設會報錯然後worker終止);2、添加jobs
現象:使用PHP的CURL相關函數進行POST,當要POST的參數內容長度超過1024時,將無法獲得response的資料。即:curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_POSTFIELDS, $data);當 strlen($data) > 1024 時,curl_exec函數將返回Null 字元串。解決:增加一個HTTP headercurl_setopt($ch,
有史以來最坑爹的一次擴充安裝,不曉得諸位有沒有嘗試過…………各種報錯啊!有木有?!¥#@%%&*……搗鼓半天,只編譯了個0.1.x的擴充版本,瞅了下,擦,函數少的可憐啊- -||| 不行,繼續~經過一天的努力,老天總算開眼了,趕緊總結下吧~----------------------------------------------- 我是分割線
看注釋,啥也不說了,歡迎各種跨平台測試!/** * 常用對稱式加密演算法類 * 支援通行金鑰:64/128/256 bit(位元組長度8/16/32) * 支援演算法:DES/AES(根據密鑰長度自動匹配使用:DES:64bit AES:128/256bit) * 支援模式:CBC/ECB/OFB/CFB * 密文編碼:base64字串/十六進位字串/二進位字串流 * 填充方式: PKCS5Padding(DES) * * @author: linvo * @version: 1.0.0 * @