[PHP] 三元運算式 – Ternary Operator (?:) – 簡化if (符號:問號/冒號 | ? | : )

簡介 三元運算子,在許多程式語言都會有,基本上您可以把它想成是if的一種簡化. 直接來看例子比較: // Example usage for: Ternary Operator $action = (empty($_POST[‘action’])) ? ‘default’ : $_POST[‘action’]; // The above is identical to this if/else statement if (empty($_POST[‘action’])) { $action = ‘default’; } else { $action = $_POST[‘action’]; } 可以直接參考官方文件:PHP Comparison […]

[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: Closure function myClosure($hi) { return function($name) use ($hi) { […]

[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匯出實例教學

Intro 針對使用PHP處理CSV、EXCEL輸出的基礎程式,以及實作上使用之套件。 現行建議使用套件做匯出匯入,可使用Phpspreadsheet-helper。 輸出Header 以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 Word application/msword Excel .xls application/vnd.ms-excel \t Excel .xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Incomplete list of MIME types 編碼轉換: 中文的話得考慮編碼轉換: (1) iconv […]

[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 和 […]