發表文章

[PHP] 50個提高PHP程序運行效率的方法

50 個提高PHP 編程效率的方法: 0、用單引號代替雙引號來包含字符串,這樣做會更快一些。因為PHP 會在雙引號包圍的字符串中搜尋變量,單引號則不會,注意:只有echo 能這麼做,它是一種可以把多個字符串當作參數的“函數”(譯註:PHP 手冊中說echo 是語言結構,不是真正的函數,故把函數加上了雙引號)。 1、如果能將類的方法定義成static,就盡量定義成static,它的速度會提升將近4 倍。 2、$row['id'] 的速度是$row[id]的7 倍。 3、echo 比print 快,並且使用echo 的多重參數(譯註:指用逗號而不是句點)代替字符串連接,比如echo $str1,$str2。 4、在執行for 循環之前確定最大循環數,不要每循環一次都計算最大值,最好運用foreach 代替。 5、註銷那些不用的變量尤其是大數組,以便釋放內存。 6、盡量避免使用__get,__set,__autoload。 7、require_once()代價昂貴。 8、include 文件時盡量使用絕對路徑,因為它避免了PHP 去include_path 裡查找文件的速度,解析操作系統路徑所需的時間會更少。 9、如果你想知道腳本開始執行(譯註:即服務器端收到客戶端請求)的時刻,使用$_SERVER['REQUEST_TIME'] 要好於time() 10、函數代替正則表達式完成相同功能。 11、str_replace 函數比preg_replace 函數快,但strtr 函數的效率是str_replace 函數的四倍。 12、如果一個字符串替換函數,可接受數組或字符作為參數,並且參數長度不太長,那麼可以考慮額外寫一段替換代碼, 使得每次傳遞參數是​​一個字符, 而不是只寫一行代碼接受數組作為查詢和替換的參數。 13、使用選擇分支語句(譯註:即switch case)好於使用多個if,else if 語句。 14、用@屏蔽錯誤消息的做法非常低效,極其低效。 15、打開apache 的mod_deflate 模塊,可以提高網頁的瀏覽速度。 16、數據庫連接當使用完畢時應關掉,不要用長連接。 17、錯誤消息代價昂貴。 18、在方法中遞增局部變量,速度是最快的。幾乎與在...

[Phpmyadmin] PhpMyAdmin 403錯誤 解決辦法

在使用php的過程中,出現了phpmyadmin 403錯誤: phpmyadmin 403 You don't have permission to access /phpmyadmin/ on this server 該如何解決呢?本文我們就介紹一下這類問題的解決思路與方法,希望能夠對您有所幫助。 解決辦法: 查看網上的資料說是selinux的問題,於是將其關掉但還是不行。還有一種說法說是selinux給httpd分配的權限問題,總之就是和權限有關。 於是進行下面的操作: 1、修改權限 2、修改phpmyadmin的權限使其得到selinux分配給httpd的權限,不過上面操作之後都沒有用。 3、在http.conf文件中加入:(紅字請替換成自己的路徑) < Directory  “ /usr/share/phpmyadmin/ ”>    AllowOverride None    Order allow,deny    Allow from all    Require all granted </ Directory > 之後,就能成功啟動httpd服務了,問題解決。 有任何疑問歡迎留言 By 艾摩杰~

[Linux] CentOS 5 / 6 原始安裝 圖文教學

圖片
CentOS(Community Enterprise Operating System)是Linux發行版之一,它是來自於Red Hat Enterprise Linux依照開放原始碼規定釋出的原始碼所編譯而成。由於出自同樣的原始碼,因此有些要求高度穩定性的伺服器以CentOS替代商業版的Red Hat Enterprise Linux使用。兩者的不同,在於CentOS並不包含封閉原始碼軟體。CentOS對上游代碼的主要修改是為了移除不能自由使用的商標。 CentOS 下載點(義守大學FTP): 各版本  : http://ftp.isu.edu.tw/pub/Linux/CentOS/ 6.5   ISO: http://ftp.isu.edu.tw/pub/Linux/CentOS/6.5/isos/i386/CentOS-6.5-i386-bin-DVD1.iso  5.10 ISO: http://ftp.isu.edu.tw/pub/Linux/CentOS/5.10/isos/i386/CentOS-5.10-i386-bin-DVD-1of2.iso 以下安裝教學使用6.4版示範(各版本安裝界面大同小異 應該說Linux幾乎都這樣 ) 1.放入光碟開機 即可看到此畫面,選擇第一項,按下Enter即可進行安裝 2.測試光碟( 安裝媒體 )裡的檔案是否正常,按Skip跳過即可~ 3.進入安裝畫面,點NEXT 4.選擇語系,選正體中文,點NEXT 5.選擇鍵盤系統,選英式英文,點 下一步 6.點 下一步 7.選放棄資料,下一步 8.命名電腦,點 下一步 9.選擇時區,點 下一步 10.設定管理員(ROOT)密碼,務必牢記!!,點 下一步 11.配置空間,讓系統自己分配 選第一項,點 下一步 12.系統配置空間,點 下一步 13.確定將配置存入磁碟,點 下一步 14.點 下一步 15.請選擇Desktop,下方選擇 立即自訂,點 下一步 16.可選擇想安裝的軟體,此畫面務必勾選,才會有圖形介面,點 下一步 17.開始安裝~~~ 18.安裝完成,安裝Linux很簡單吧~~...

[PHP] PHP + CURL 傳送 Request (GET,POST或上傳檔案) 至另一個網頁

PHP傳送GET、POST、上傳檔案至另一個網址,以及PHP如何接收及處理上傳的檔案。正常來講PHP程式通常是接收端,但有些時候也會扮演傳送端,把資料送到同一個或另一個伺服器,或者讀取某個網頁資料,這時可以用fopen、fsockopen或者cURL,後者功能強大且使用起來很便利、程式碼也很美觀直覺,相當推薦使用。 簡易的使用語法(GET): $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://SomeDomain/SamplePath?SomeVar=test"); curl_exec($ch); curl_close($ch); 簡單的POST範例: $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://SomeDomain/SamplePath"); curl_setopt($ch, CURLOPT_POST, true); // 啟用POST curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query( array( "a"=>"123", "b"=>"321") )); curl_exec($ch); curl_close($ch); CURLOPT_POSTFIELDS參數即為POST的內容,而 http_build_query() 效果是將array併成 a=123&b=321 型式的字串,POST內容會在header中標示以application/x-www-form-urlencoded型式傳送,如果不用字串而直接給array也可以,傳送方式則會變成multipart/form-data,但是封包會變大,且可能不被某些Server接受,通常是傳送檔案時才用。 進階的POST範例,參數設置還可以用array的方式取代: $toURL = "http://SomeDomain/SamplePath?SomeVar=XX"; $post = array(  "a"=...

[Linux] 使用 ps 指令 查系統程序 PID

終端機中輸入 ps -aux 就可以知道有多少服務同時在你的主機上面跑了 查系統程序PID ps axu | grep php 正常的結束程序 kill -l kail -15 PID 有任何疑問歡迎留言 By 艾摩杰~

[JQuery] InfiniteScroll 無限捲動介面 如 Facebook 動態牆

InfiniteScroll 是利用 jQuery 背後 ajax 方式, 將一頁一頁的網頁, 透過不換頁, 直接 append 到目前的頁面上, 達成向下捲動而看更多內容的功能. 像是 Facebook 動態牆, 就是這樣的應用情境. 官方網站: http://www.infinite-scroll.com 來看看怎麼做這個效果吧 先加入Jquery & InfiniteScroll <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery.infinitescroll.min.js"></script> InfiniteScroll 是利用了 jQuery 在背景取出下一頁的內容, 並將指定的 selector 資料 append 到目前的網頁上, JQuery程式碼如下: <script type =" text/javascript "> $(function(){   $('#container').infinitescroll({     navSelector : 'div.nav', // selector for the paged navigation     nextSelector : 'div.nav a', // selector for the NEXT link (to page 2)     itemSelector : '.item', // selector for all items you'll retrieve     loading: {       img: 'Loading.gif', //圖片位置       msgText: '...

[Synology NAS] 9-【DSM新手篇】-欣賞你的電影Video Station DS video

圖片
馬上進入最精彩的 ​​部分,也是很多人關心的部分。 在DSM4.1發布了一個新的套件,Video Station,彌補了視頻部分的應用空白 首先我們拷貝好高清視頻MKV格式到Video目錄準備 安裝好Video Station  打開Video Station,這是一個全新的界面,第一次運行會提示你關聯好Video Station的檢索目錄 打開設置 設置到Video目錄 選擇電影的類型(這個是一個刮削器) 四部電影被正確識別,並且自動下載好了封面和簡介 詳細界面,可以播放的哦 播放中,比較流暢,字幕也正確顯示 不過因為播放器是掛載到瀏覽器中運行,限於瀏覽器的效能,對於1080P這樣的高碼率體驗不是很好 APP同樣有,iPad的DS video登陸 內容信息完全和Video Station一致,我們可以把Video Station看做是DS Video的服務器端 詳細頁,點擊播放 首先出來的界面是選擇字幕和聲道,非常不錯哦 播放中,11G的變形金剛 我們看看關於官方對於DS Video的一些特殊說明 我們都知道IOS原生是不支持MKV封裝的硬解碼的 在iPad播放時,NAS的CPU佔用很高,說明NAS是在給iPad實時轉碼為MP4格式 有任何疑問歡迎留言 By 艾摩杰~