Category Archives: PHP 新手筆記

PHP Warning: Cannot open ‘\xampp\php\extras\browscap.ini’ for reading in

之前介紹過怎樣在Windows 執行 PHP Command E.G. 設定環境變數
和怎樣解決 PHP Unable to load dynamic library 的問題

到最後我們還有另一個問題要解決..
就是
PHP Warning: Cannot open ‘\xampp\php\extras\browscap.ini’ for reading in Unknown on line 0
PHP Warning:  Cannot open '\xampp\php\extras\browscap.ini' for reading in Unknown on line 0

問題出現的原因和之前的一樣..是一個路徑計定的問題

解決方法十分簡單
我們可以開啟 php.ini 檔案.. 之後
browscap 的 路徑

browcap = "\xampp\php\extras\browscap.ini"

browscap path on php.ini

轉為

browcap = "d:\xampp\php\extras\browscap.ini"

Cannot load browscap xampp php.ini fixed

之後再嘗試一下.. browscap 的問題應該解決了

PHP Command Successfully set up on Windows machine

Hope you find it useful

PHP Unable to load dynamic library ‘\xampp\php\ext\php_bz2.dll’

當我嘗試在Command Prompt上執行 php的指令時..出現以下的錯誤
PHP Warning: PHP Startup: Unable to load dynamic library ‘\xampp\php\ext\php_bz2.dll
PHP Startup: Unable to load dynamic library php_bz2.dll

PHP Warning: PHP Startup: Unable to load dynamic library ‘\xampp\php\ext\php_curl.dll
PHP Startup: Unable to load dynamic library php_curl.dll

還有很多其他的Dynamic Library
PHP unable to load dynamic library

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_bz2.dll

Warning: PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_bz2.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_curl.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_mbstring.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_exif.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_gd2.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_gettext.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_mysql.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_mysqli.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_openssl.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_pdo_mysql.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_pdo_sqlite.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_soap.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_sockets.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_sqlite3.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_xmlrpc.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_xsl.dll

PHP Warning:  Cannot open '\xampp\php\extras\browscap.ini' for reading in Unknown on line 0

之後去查看了 php/ext 資料來..
[由于我是使用 xampp 的關係..我的xampp 資料夾是儲存在d:\
所以我的 xampp path 是這樣的 D:\xampp\php\ext\]

發現上面說明’Unable to load‘ 的 Dynamic Library 都可以在這裡找到
PHP Ext Folder in XAMPP

所以應該不是Library的問題
而是php.ini 內的一些設定問題

做了一會research 之後發現

解決方法十分簡單
只要將預設的 extension_dir 設定變成我們的 absolute path便可以
E.G. D:\xampp\php\ext\

extension_dir = "\xampp\php\ext"

php.ini extension_dir
轉成

extension_dir = "d:\xampp\php\ext"

php.ini extension_dir with absolute path

之後問題便可以解決
PHP command works

Hope you find it useful

‘php’ is not recognized as an internal or external command – How to run PHP Command Line on Windows – 怎樣在Windows 上執行php 指令

最近用多了PHPLibrary..
很多時候都需要以PHP Command 來執行的
當我在Command Prompt 上輸入 php之後執行時 出現了以下錯誤
“‘php’ is not recognized as an internal or external command, operable program or batch file.”
PHP is not recognized as an internal or external command, operable program or batch file

Command Prompt 上執行 PHP 指令其實很容易的
Windows 上我們只需要把 php.exe 的資料夾 註冊在 Windows 的 Environment Variable /環境變數 便可以

首先要找到我們的PHP.exe 儲存在那裡
XAMPP PHP Folder
由於我是使用xampp的所以我的 php.exe 會存在
[xampp 的儲存路徑]\php\

Advanced System Settings/進階系統設定” -> “Advanced tab/進階 分頁” ->”Environment Variables / 環境變數” 按一下
在之前的網誌有介紹如何修改”Environment Variables / 環境變數” 有興趣的朋友可以到以下網誌參考
How to install Ant on Windows – 如何在Windows 上安裝Ant

Environment Variable
儲存之後按 “OK/確定
之後再登出再登入Windows 便可

Execute PHP on Windows Command Prompt
我的PHP config 檔案出現了小小問題..之後的網誌會介紹怎樣解決這些1

Hope you find it useful

PHP Create Json Object/String 如何使用PHP 來建立 Json Object/String

有時候有一些API / Web Service 需要 pass 一些JSON string 變數
那麼怎樣可以在PHP 來建立 Json Object/String

解決方法十分簡單
我們可以把Json Objectproperty/屬性 以Array Object 的方法來建立
E.G.

    
//定義變數
$subValue1= 'subValue1';
    $subValue2= 2;
    
//建立 Array Object
    $jsonVariable = array(
        'arrayProperty1' => array(
            'subProperty1' => $subValue1,
            'subProperty2' => $subValue2
        ),
        'property1' => 'value1'
    );

            
 //之後我們可以使用 json_encode 來把這個array object轉成 Json String
 echo json_encode($jsonVariable);

從前的我可能會用string concatenation 的做法 <–絕對不建議使用這個方法 [反面教材]
e.g.

$jsonVar = '{"arrayProperty1":{"' . $subProperty1. '":"subValue1","'.subProperty2.'":2},"property1":"value1"} ';

Hope you find it useful

PHP Maximum execution time of 30 seconds exceeded

今天寫了一個PHP 功能去負責把一些資料從JSON 加到 MySQL Database
可能是資料比較多的關係..
所以他便出現了這樣的錯誤信息

Message: Maximum execution time of 30 seconds exceeded
Filename: mysql/mysql_driver.php
Maximum execution time of 30 seconds exceeded
開頭還以為是MySQL DatabaseTimeout 問題
做了一會Research 終於找到解決方法了

解決方法
我們只需要在執行的PHP 頁面上overwrite 了原先PHP 定下的 Execution time limit 便可以
大家可以在頁面上加上 以下功能便可以了 set_time_limit(“數值 以秒”) 來作單位
E.G.

// Set Timeout for 3 minutes 把Timeout設定為三分鐘 [180秒]
set_time_limit(180);

之後再執行之前的功能便沒有出現Timeout

Hope you find it useful

PHP Time with microseconds – 如何在PHP 上取後 日期時間包括微秒

今天嘗試在PHP 做測試時想使用日期時間包括微秒/microsecond來做一些記錄
但是當我使用 “u” 這個format / 格式時..不論什麼時候..他只會出現 “000000” 的結果

做了一會學research後發現..
Date()這個功能只會輸出”000000“為Microsecords

所以我們便要自行定義一個小小的功能來解決這個問題

解決方法:

為了方便自己..所以我建立了一個新的function
這個功能可以自己定義日期時間輸出的格式

function CurrentDateTimeWithMicroseconds($format = "Y-m-d H:i:s") {
    // 設定microtime 為 true 令他可以輸出 Unix timestamp with microseconds
    $timestamp = microtime(true);
    
    // 取出microseconds
    $microseconds = (int) round(($timestamp - floor($timestamp)) * 1000.0, 0);
    
    // 把結果組合一起..
    return date($format . $microseconds, $timestamp);
}

使用方法:

echo CurrentDateTimeWithMicroseconds();

PHP Date Time with Microseconds

PHP Time with microseconds Demo

Hope you find it useful