[PHP] Closure / Anonymous Function 匿名函式指南

Intro PHP 5.3以後Closure / Anonymous Function是一個重大突破,其中callback、closure、anonymous function,與 callable都是指同一設計模式。 Guide PHP.net上已有不錯的文獻: PHP Anonymous functions PHP Closure sample code PHP Callbacks / Callables PHP Callables hint sample code 另外點燈坊有一篇蠻完整的文章:如何使用 Closure? Example 來個Sample Cdoe: function myClosure($hi) { return function($name) use ($hi) { return […]

[PHP][Yii2] 資料庫操作使用範例 – Command & Builder & AR – Demo

介紹 Yii2 Framework對Database的操作有非常良好的結構彈性,供開發者從底層到Object-Oriented自行評估選用。 這裡對Yii2 Database定義了三層設計模式:SQL Command、Query builder、Active Record(ORM) 其中效能差異在於Active Record(ORM)設計模式, 範例程式碼 SQL Command Level # Get DB componet of Application $db = Yii::$app->db; # Get data form SQL execution $arrayData = $db->createCommand(‘SELECT * FROM table limit 10’) ->queryAll(); print_r($arrayData); Query […]

[Yii2] Nginx 配置 – 讓PHP全進framework – nginx php location try_files

原由 這邊主要是要解決yii2 UrlManager應用中,網址內含.php的路由會導至nginx 404 Not Found問題。 原因為yii2官方建議的Nginx配置: location / { # Redirect everything that isn’t a real file to index.php try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9000; #fastcgi_pass unix:/var/run/php5-fpm.sock; try_files $uri […]

[jQuery] AJAX跨網域 | AJAX Cross Domain Request withCredentials (Access-Control-Allow-Origin)

做個AJAX跨網域可是容易忘記細節的,這就來篇Note, 後端部分,Server Header請開啟(以PHP動態Header為例): header(“Access-Control-Allow-Origin: *”); header(“Access-Control-Allow-Credentials: true”); Cookie夾帶 如需夾帶Cookie則前端的AJAX需開啟Credentials,JQuery為例: $.ajax({ xhrFields: { withCredentials: true }, type: “GET”, url: “http://www.example.org/ajax.php” }).done(function (data) { console.log(data); }); xhrFields中withCredentials要開啟,這就是亮點!

[PHP] 匯出處理 – CSV、EXCEL匯出實例教學

以CSV為例,PHP的Header與輸出如下: header(“Content-type: text/x-csv”); header(“Content-Disposition: attachment; filename=$filename”); echo $content; exit; 檔案格式介紹: 格式 Type 相隔符號 CSV text/x-csv , SXW application/octet-stream \t Word application/msword Excel application/vnd.ms-excel 編碼轉換: (1) iconv ( “原編碼” , “新編碼” , “內容” ); echo iconv( “UTF-8”, “Big5” , $content); (2) […]

[Yii2] Composer bower-asset 更新失敗解法

遇到的Composer update問題: yiisoft/yii2 2.*.* requires bower-asset/jquery *.*.*@stable | … -> no matching package found. Yii官網解:composer global require fxp/composer-asset-plugin 本篇是針對不使用Plugin提供解法。 原因: bower-asset在Packagist已經是Virtual Package,以下為bower因果: Update: bower 在 0.9.0 版以前可以使用 component.json,但是為了避免跟其他工具命名衝突,故 0.9.0 以後版本請改為 bower.json bower 是 Twitter 團隊開發的一套網頁工具,用來管理或安裝 Web 開發所需要的 Package,像是 CSS 和 […]

[PHP] magicQuote.php – 用PHP實作magic_quotes_gpc (適用於新環境舊架構)

Magic Quote新版PHP已不支援,但如果遇到舊架構放新環境,還是在Bootstrap就模擬Magic Quote即可治標。 PHP官方Magic Quote: Warning: This feature has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 5.4.0. 以下為遞迴對輸入做addslashes處理達到magic_quotes_gpc: function addslashesRecursively(&$data) { // print_r($data);exit; if (!is_array($data)) { $data = addslashes($data); } else { foreach ($data as $key […]