簡單的一個判斷式, 如下述:
<?php $types = 0; if ($types == 'abc') echo 'a'; else echo 'b'; ?>
答案是印出 a (預期應該要印出 b, 結果卻印出 a)
- 註1: 這種情況平常比較容易出現在會給預設值的地方, ex: function abc($input, $types = 0) {...}
- 註2: 目前確定 PHP 5.3, 5.4 都是這樣子的狀況, 看官方說明這個並不算是 Bug, 應該會一直持續下去.
個人筆記, 記錄關於 系統、程式、新聞 與 日常生活 等資訊
簡單的一個判斷式, 如下述:
<?php $types = 0; if ($types == 'abc') echo 'a'; else echo 'b'; ?>
答案是印出 a (預期應該要印出 b, 結果卻印出 a)
想要過濾掉換行等字元, 最常用的就是 trim(), trim() 預設會過濾掉於 "此字串前後" 的 下述字元:
Apache、Nginx 會去設定檔案過期時間, 然後使用者的瀏覽器就會 Cache 起來, 下次訪問就不用再要一次檔案, 但是如果檔案更新了, 瀏覽器知道檔案需要來重新抓取呢? (如何防止讀取到 Cache 的檔案?)
一個最簡單的方式, 就是更改 URL, 如下述:
在 Windows 的換行是 "\r\n", 在 Unix 系列的換行是 "\n", 在 PHP 裡面 "\r" 有特殊意義.
PHP 轉換編碼會使用 iconv() 或 mb_convert_encoding(), 現在比較常用的是 mb_convert_encoding().
一般使用上, 如果有多種編碼, 可以用下述寫法:
<?php $string = mb_convert_encoding($sring, "UTF-8", "cp950,gb2312,gbk"); ?>
PHP 要秀程式碼, 除了現成的 JavaScript Plugin 等外掛外, 可以使用下述幾種方法:
Action php-source /var/highlight_source.php
AddHandler php-source .phps
highlight_source.php 如下述:
<?php highlight_file($_SERVER{"DOCUMENT_ROOT"} . $_SERVER{"PATH_INFO"}); ?>
PHP shell_exec() 於 Linux 預設會使用 sh 來執行程式, 但是否些狀況會需要使用 bash 等等的 Shell, 要怎麼作呢?
使用 PHP 將 Google Chart 的靜態圖片抓下來另存, 記錄一下 imagecreatefromstring() 的使用時機. 🙂
註: Google Chart 的產生, 除了動態的外, 靜態的部份, 只要 URL 打好, 圖片就會生出來囉~ 🙂
PHP 的 DBA(Database (dbm-style) Abstraction Layer) 可以接 Oracle Berkeley DB.
這邊有相容的 DB Layer 列表: PHP: Requirements - Manual
註: 此篇文章的範例使用 db4, 確定 PHP 5.3.3 以上可以正常執行, 不能執行的話, 可以換成 dbm 先測試看看. 🙂
PHP 最近被爆出跑 mod_cgi 會有漏洞, 可以看到 PHP code 的原始碼.