Recent Comments
Archives
- May 2012 (8)
- April 2012 (11)
- March 2012 (10)
- February 2012 (11)
- January 2012 (5)
- December 2011 (13)
- November 2011 (12)
- October 2011 (10)
- September 2011 (7)
- August 2011 (5)
- July 2011 (11)
- June 2011 (21)
- May 2011 (22)
- April 2011 (36)
- March 2011 (43)
- February 2011 (23)
- January 2011 (24)
- December 2010 (34)
- November 2010 (19)
- October 2010 (16)
- September 2010 (15)
- August 2010 (10)
- July 2010 (12)
- June 2010 (3)
- May 2010 (3)
- April 2010 (4)
- March 2010 (8)
- February 2010 (14)
- January 2010 (13)
- December 2009 (16)
- November 2009 (28)
- October 2009 (24)
- September 2009 (12)
- August 2009 (7)
- July 2009 (10)
- June 2009 (11)
- May 2009 (22)
- April 2009 (21)
- March 2009 (18)
- February 2009 (7)
- January 2009 (32)
- December 2008 (19)
- November 2008 (12)
- October 2008 (15)
- September 2008 (14)
- August 2008 (15)
- July 2008 (18)
- June 2008 (20)
- May 2008 (19)
- April 2008 (27)
- March 2008 (22)
- February 2008 (21)
- January 2008 (15)
- December 2007 (22)
- November 2007 (17)
- October 2007 (29)
- September 2007 (31)
- August 2007 (34)
- July 2007 (31)
- June 2007 (36)
- May 2007 (23)
- April 2007 (22)
- March 2007 (30)
- February 2007 (50)
- January 2007 (75)
- December 2006 (48)
- November 2006 (59)
- October 2006 (89)
- September 2006 (29)
- August 2006 (48)
- July 2006 (14)
- June 2006 (35)
- May 2006 (62)
- April 2006 (63)
- March 2006 (72)
- February 2006 (83)
- January 2006 (56)
- December 2005 (46)
- November 2005 (60)
- October 2005 (27)
- September 2005 (54)
- August 2005 (83)
Tags
amazon android api aws bittorrent browser cdn certificate chrome cloud cloudfront cpan database dns ec2 facebook firefox freebsd google hosting html https ie image ipv6 javascript jquery js linux mobile mozilla mysql p2p performance perl php secure security ssl twitter ubuntu video web wordpress yahooCategories
- Anime (25)
- AWS (51)
- BBS (17)
- Blog (201)
- Book (18)
- Bridge (1)
- Browser (283)
- CDN (21)
- Cloud (66)
- CMS (33)
- Comic (17)
- Computer (1980)
- Computer and Network Center (32)
- CSS (31)
- Database (132)
- DNS (50)
- Editor (11)
- Financial (37)
- Firefox (149)
- Food (11)
- FreeBSD (115)
- Game (25)
- GoogleChrome (25)
- Hardware (144)
- IE (64)
- Joke (131)
- Lab (3)
- Linux (72)
- MacOS (4)
- Mail (69)
- Movie (18)
- Murmuring (2056)
- Music (37)
- MySQL (97)
- NCTU (63)
- NetBSD (7)
- Network (1486)
- OpenBSD (3)
- Opera (21)
- OS (205)
- P2P (86)
- Photo (57)
- Political (48)
- Programming (315)
- Recreation (372)
- RSS (65)
- Safari (22)
- Science (28)
- Search Engine (126)
- Security (336)
- SMS (5)
- Social (60)
- Software (1062)
- Spam (86)
- Sport (4)
- Telephone (62)
- Television (35)
- Usenet (13)
- Vim (3)
- Wiki (25)
- Windows (48)
- WWW (782)
Blogroll
Meta
Tag Archives: php
PHP 5.4 與 php-test-helpers
先給連結,PHP 5.4 可以編的版本在這裡:github.com/gslin/php-test-helpers,clone 下來後的安裝方法是: phpize ./configure make make install 另外自己增加 extensions.ini: extension=test_helpers.so 主要是 PHP 內部的資料結構有變動,本來存取的方式要改掉。發了 pull request 但不知道作者會不會收,如果有需要的人可以自己先裝。 會用到 php-test-helpers 是因為寫 test case 的時候要換掉整個 HttpRequest,而 RunKit 不能換系統的 HttpRequest,所以找了不少 extension 發現 php-test-helpers 可以用。 換法是這樣: set_new_overload(function($name){ if (‘HttpRequest’ == $name) { return … Continue reading
Posted in Computer, Murmuring, Programming, Software Tagged helpers, pecl, php, test Leave a comment
PHP 5.4
PHP 5.4 前幾天正式釋出了:「PHP 5.4.0 released!」,新增與改變了很多東西。 有些蠻值得注意的地方: safe mode 與 magic quote 都消失了,升級後需要重新檢查 php.ini。 array_combine(array(), array()) 不再傳回 FALSE 了,總算是傳回 array()。 可以用 [] 表示 array() 了。 function 傳回 array 後可以直接對 array 取值,也就是 foo()[0] 變合法語法了。 new 完後可以直接 call function 了,也就是 (new Foo)->bar() 變合法語法了。 … Continue reading
Posted in Computer, Murmuring, Programming, Software Tagged performance, php, programming Leave a comment
PHP 提供的資料結構…
從「How big are PHP arrays (and values) really? (Hint: BIG!)」這篇看到的。文章本身值得花些時間看過了解,不過對我來說重點在最後面的 SplFixedArray。 PHP 的 Datastructures 說明目前 PHP SPL 所支援的 data structure,在記憶體用量以及效率上面都會比自己實作來的小且快。 可以看到很多都支援 Countable、Iterator,以及 ArrayAccess,代表可以用 foreach() 或是對應的方式存取… 如果自己寫 library 的時候應該要善用這些 SPL。
Posted in Computer, Murmuring, Programming, Software Tagged array, data, php, spl, structure Leave a comment
PHP 5.3 的 anonymous function
在看到 PHPConf Taiwan 2011 的議程介紹後,看到有人在推薦 Slim Framework,一連上去就看到包含 anonymous function 的 sample code: <?php require ‘Slim/Slim.php’; $app = new Slim(); $app->get(‘/hello/:name’, function ($name) { echo “Hello, $name!”; }); $app->run(); ?> 然後回頭去翻 PHP 的說明:「Anonymous functions」,發現是從 PHP 5.3 開始支援。 於是在 JavaScript 上常用到的技巧就也可以在 PHP … Continue reading
Posted in Computer, Murmuring, Network, Programming, WWW Tagged anonymous, function, php, programming 2 Comments
Heroku 上跑 PHP 的心得與感想…
Heroku 不愧是 PaaS 中的領先品牌,deploy 的操作及穩定性都相當好,加上 Heroku 每個 project 都有 1 free dyno 可以使用,對於 prototyping 其實相當棒… 關於要怎麼在 Heroku 上跑 PHP,可以參考 xdite 寫的「Create PHP application on Heroku without Facebook account」這篇文章。 有幾個要抱怨的: PHP 是用 Apache HTTP Server 跑的,所以可以用 .htaccess 寫 rewrite rule,不過 Options … Continue reading
Posted in Cloud, Computer, Murmuring, Network, Programming, WWW Tagged cloud, gd, heroku, image, imagemagick, jpeg, php Leave a comment
PHP 長期計畫:廢除 ext/mysql,改用 pdo_mysql 或 mysqli
在 Hacker News 上看到的長期計畫,要廢除 ext/mysql:「deprecating ext/mysql」。 主要的原因是 security 習慣問題。因為 ext/mysql 不支援 prepare 與 execute 這類不需要自己處理 escape 的函式,所以使用 ext/mysql 的人必須自己處理 escape 的問題,也就是透過 mysql_escape_string 或是 mysql_real_escape_string。而很多書籍為了讓初學者容易了解,會給出很糟的範例,像是: mysql_query(“SELECT * FROM `user` WHERE `username` = ‘$username’;”); 而 $username 沒有先檢查過。 依照提議,目前只會在文件上建議改用 PDO 或是 mysqli,不會對目前版本有任何改變。接下來是 5.5 … Continue reading
mod_fcgid 與 PHP
先不論效能之類的問題,mod_fcgid 跑 PHP 的設定比 mod_fastcgi 簡單許多。(參考之前寫的「apache22 (worker) + mod_fastcgi + php5-fcgi」這篇文章) 首先是把 module load 進來: LoadModule fcgid_module libexec/apache22/mod_fcgid.so 再來是把副檔名加上去,以及告知什麼副檔名要用什麼程式包: AddHandler fcgid-script .php FcgidWrapper /usr/local/bin/php-cgi .php 就這樣而已… 預設會跑一隻 php-cgi,需要的時候會再多拉幾隻。以他的方式看起來 code segment 不會共用,這種設定方式給小站台用還可以… 接下來看看有沒有辦法在 .htaccess 內直接吃本地的 FastCGI process…
PHP 的 Heroku
在「PHP Fog Raises $1.8 Million To Be The Heroku Of PHP」裡面提到兩家:PHP Fog 與 cloudControl。 兩者都是以 PHP 為底層語言基礎的平台。其中 PHP Fog 還沒開張,而 cloudControl 已經開張了,以歐洲的 EC2 為底層。 不過 cloudControl 選用 Bazaar 為版本管理系統,這點不知道是什麼考量… (PHP 是用 Subversion)
用 Plack 提供的 CGI 跑 Adminer…
在「用 Plack 跑 CGI」提到用 Plack 跑 CGI,目的是把 PHP 寫的 Adminer (一個取代 phpMyAdmin 的工具) 跑起來。 文章裡提到 PHP 沒辦法以 CGI mode 執行,主要有兩個原因。一個是 PHP 本身有安全機制,php-cgi 必須在有 REDIRECT_STATUS 這個環境變數下才能執行,另外一個是 php-cgi 需要用到 SCRIPT_FILENAME 這個非 CGI/1.1 標準 (RFC 3875 – The Common Gateway Interface (CGI) Version … Continue reading
