星期六, 6月 25, 2016
星期四, 6月 23, 2016
[php] 用命令提示字元檢查語法是否有誤
今天寫物件發生一些sytax錯誤,
開了display_errors, error_reporting都沒什麼錯誤印出來。
於是直接使用cmd line語法檢查..
開了display_errors, error_reporting都沒什麼錯誤印出來。
於是直接使用cmd line語法檢查..
php -l UserScoreGradeDAO.class.php
No syntax errors detected in UserScoreGradeDAO.class.php
就會告訴你錯在哪一行了,真的方便多了。
星期二, 6月 21, 2016
[CSS 3] 描繪路徑
http://codepen.io/paintbycode/pen/JDbcF/
下拉Iron Man範例
如果要用Stroke效果來描述的話,需要計算path的數值。
下拉Iron Man範例
如果要用Stroke效果來描述的話,需要計算path的數值。
以下記錄一下計算的方法
純JS
var path = document.querySelector('path');
var length = path.getTotalLength();
jQuery的方法
var path = $('#目的元素').get(0);
var pathLen = path.getTotalLength();
星期六, 6月 18, 2016
[Html] 電子信箱的html support
如果有需要在電子信箱裡面撰寫html的朋友可以參考一下以下這個網頁
看來還是要寫inline css 最安全 XD
http://templates.mailchimp.com/resources/email-client-css-support/
看來還是要寫inline css 最安全 XD
http://templates.mailchimp.com/resources/email-client-css-support/
星期一, 6月 13, 2016
[ubuntu] 調整系統時間與時區
最近在裝VM踩到系統時間未設定正確的雷,導致API的授權認證一直過期。
記錄一下這個腦洞的錯誤。
#查看系統時間 (發現時間錯誤)
date
#國家時間與頻率標準實驗室
sudo dpkg-reconfigure tzdata
記錄一下這個腦洞的錯誤。
#查看系統時間 (發現時間錯誤)
date
Sun Apr 10 19:12:58 CST 2016
sudo ntpdate time.stdtime.gov.tw
Tue Jun 14 10:20:14 CST 2016
#將硬體時間與系統時間同步
sudo hwclock -w
#重設時區 (需為root的權限)
Local time is now: Sun Apr 10 19:14:39 CST 2016.
Universal Time is now: Sun Apr 10 11:14:39 UTC 2016.
星期日, 6月 12, 2016
[C] error: unknown type name 'bool'這種錯誤
error: unknown type name 'bool'這種錯誤
可以加入#include
或換編譯 C99之後才有 http://zh.wikipedia.org/wiki/Stdbool.h
可以加入#include
或換編譯 C99之後才有 http://zh.wikipedia.org/wiki/Stdbool.h
[ubuntu] 常用的指令
記錄一下常用的指令集
安裝SMB
#安裝
apt-get install samba
#安裝完畢後,先暫停服務修改設定檔.
/etc/init.d/samba stop
#編輯設定檔
sudo vim /etc/samba/smb.conf
#測試設定檔有無錯誤 (不用在指定的目錄下執行即可)
testparm

#重新啟動
/etc/init.d/samba restart
#顯示目前smb的狀態
sudo smbstatus
#新版後的ubuntu
#新版後的ubuntu
sudo service smbd start
Stop
sudo service smbd stop
Restart
sudo service smbd restart
sudo service smbd start
sudo service smbd stop
sudo service smbd restart網路設定
[CSS] 使用css transition 做出underline的效果
作者示範了各種underline的動畫效果,有需要的朋友可以參考一下。
我的案例需要下圖中記錄的SlideIn效果。
http://bradsknutson.com/blog/css-sliding-underline/
我的案例需要下圖中記錄的SlideIn效果。
http://bradsknutson.com/blog/css-sliding-underline/
星期日, 5月 29, 2016
星期三, 5月 25, 2016
星期二, 5月 24, 2016
[PHP] php-extension: 範例練習
經過前幾次的練習與說明,筆記一下因為自已的需求測試的範例
範例: 從自已建一個額外的C語言的檔案呼叫
1.修正一下config.m4指定載入額外的C語言
dnl config.m4 for extension
PHP_ARG_ENABLE(foo, whether to enable foo extension support,
[--enable-foo Enable foo extension support])
dnl 檢測extension是否已被啟動
if test $PHP_FOO != "no"; then
AC_MSG_CHECKING("start to enable extension");
dnl PHP_NEW_EXTENSION(foo, php_foo.c, $ext_shared)
dnl 注意多引用了自定義C語言func
PHP_NEW_EXTENSION(foo, php_foo.c hello_world_c.c, $ext_shared)
fi
2.先建立自已的C的實作與標頭檔
hello_world_c.h, hello_world_c.c
int hello_world_c_add(int, int);
/*Hello World program*/
#include <stdio.h>
#include "hello_world_c.h"
int hello_world_c_add(int a,int b){
int sum = 0;
printf("hello_world_c_add is coming Orz\n");
printf("%d\n", a);
printf("%d\n", b);
sum = a+b;
printf("sum=%d\n", sum);
return sum;
}
int main(){
printf("Hello World C :D");
printf("sum=%d",hello_world_c_add(10,10));
return 0;
}
3. 在php_foo.c裡面include hello_world_c.h檔
#include "hello_world_c.h"//內部的c func
#include "php_foo.h"
#if COMPILE_DL_FOO
ZEND_GET_MODULE(foo)
#endif
....
3. 新增一個PHP_FUNCTION: 呼叫剛剛的hello_world_c_add
//呼叫自定義的c函數,來處理加法
PHP_FUNCTION(foo_hello_add) {
php_printf("run foo_hello_add\n");
int val1;
int val2;
int sum;
//parse parameters
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll", &val1,&val2 ) == FAILURE) {
RETURN_FALSE;
}
php_printf("val1=%d\n",val1);
php_printf("val2=%d\n",val2);
sum = hello_world_c_add(val1,val2);
RETURN_DOUBLE(sum);
}
範例: C實作/標頭檔搬到子資料夾
接著想把不同自定義的C函式庫分裝到不同的sub-folder後就爆了以下訊息:
目前這個範例卡關中...
範例: 全域變數的操作
範例: 回傳resouce
參考
- https://github.com/jheth/hello-php-extension
- 在 PHP Extension 中加入 static 和 dynamic library
- Linux静态链接库与动态链接库的区别及动态库的创建
- Linux中创建静态库和动态库
- http://php.net/manual/en/internals2.structure.globals.php
- https://github.com/walu/phpbook/blob/master/12.5.md
星期一, 5月 23, 2016
[PHP] php-extension編譯C++
如有c++函式庫需要處理,請在config.m4加入以下指令:
PHP_REQUIRE_CXX()
PHP_SUBST(YOUREXTENSION_SHARED_LIBADD)
PHP_ADD_LIBRARY_WITH_PATH(stdc++, "", YOUREXTENSION_SHARED_LIBADD)
PHP_ADD_LIBRARY(stdc++,EXTRA_LDFLAGS)
dnl 上面設定好了,PHP_NEW_EXTENSION的第二個參數就可以輸入 c++的檔案了,下面的例子還是C
PHP_NEW_EXTENSION(foo, php_foo.c, $ext_shared)
[PHP] config.m4 指令集筆記
記錄一下一定會忘記的php-ext常用的指令說明。
指令集
- AC_MSG_CHECKING
畫面輸出訊息
checking whether to enable foo extension support
PHP_SUBST(XXXX_SHARED_LIBADD), 其中 XXXX 為 PHP Extension 的名稱 (全大寫)
完整指令
XXXX: 你想要載入的extension name
PHP_ADD_LIBRARY_WITH_PATH([library name], [library path], XXXX_SHARED_LIBADD)
例如我們想加入 libabc.so, 而該檔案在 /usr/lib, 則我們會加入: PHP_ADD_LIBRARY_WITH_PATH(abc, /usr/lib, XXXX_SHARED_LIBADD)
範例 PHP_NEW_EXTENSION(foo, foo.c bar.c baz.cpp, $ext_shared)
參考
http://tglcowcow.blogspot.tw/2008/05/php-extension-static-dynamic-library.html
- PHP_SUBST
PHP_SUBST(XXXX_SHARED_LIBADD), 其中 XXXX 為 PHP Extension 的名稱 (全大寫)
- PHP_ADD_LIBRARY_WITH_PATH
- PHP_CHECK_LIBRARY
- PHP_ADD_INCLUDE
- PHP_ADD_BUILD_DIR
- PHP_ADD_LIBRARY_WITH_PATH
完整指令
XXXX: 你想要載入的extension name
PHP_ADD_LIBRARY_WITH_PATH([library name], [library path], XXXX_SHARED_LIBADD)
例如我們想加入 libabc.so, 而該檔案在 /usr/lib, 則我們會加入: PHP_ADD_LIBRARY_WITH_PATH(abc, /usr/lib, XXXX_SHARED_LIBADD)
- PHP_NEW_EXTENSION
範例 PHP_NEW_EXTENSION(foo, foo.c bar.c baz.cpp, $ext_shared)
參考
http://tglcowcow.blogspot.tw/2008/05/php-extension-static-dynamic-library.html
星期五, 5月 20, 2016
[Flickrlinkr] phpFlickr: The web service endpoint returned a "HTTP/1.1 403 Forbidden" response
今天在VM重建flickrlinkr偵錯時發生了以下錯誤:
The web service endpoint returned a "HTTP/1.1 403 Forbidden" response
由於使用phpFlickr類別時,有用到curl,所以請安裝curl for php元件
安裝方法如下
sudo apt-get install php5-curl
安裝完畢後,請重啟apache2
sudo service apache2 restart
[GIT] server certificate verification failed. 錯誤排除
fatal: unable to access 'https://bigd@bitbucket.org/shark_tech/thegrand.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
bigd@ubuntu:/var/www/thegrand$ export GIT_SSL_NO_VERIFY=1
bigd@ubuntu:/var/www/thegrand$ git submodule update --init --recursive
星期三, 5月 18, 2016
[CSS 3動畫] animation 語法動畫筆記
最近一些case需要使用大量的css動畫,把一些處理到的指令筆記一下
animation: name duration timing-function delay iteration-count direction;
animation-fill-mode : none | forwards | backwards | both;
none:不改变默认行为。
forwards :当动画完成后,保持最后一个属性值(在最后一个关键帧中定义)。
backwards:在 animation-delay 所指定的一段时间内,在动画显示之前,应用开始属性值(在第一个关键帧中定义)。
both:向前和向后填充模式都被应用。
animation的短指令
animation: name duration timing-function delay iteration-count direction;
定義動畫結束後如何停止最後一個狀態
animation-fill-mode : none | forwards | backwards | both;none:不改变默认行为。
forwards :当动画完成后,保持最后一个属性值(在最后一个关键帧中定义)。
backwards:在 animation-delay 所指定的一段时间内,在动画显示之前,应用开始属性值(在第一个关键帧中定义)。
both:向前和向后填充模式都被应用。
星期一, 5月 16, 2016
[PHP] php extension 初試: extension parser parameter (接收參數)
接續先前的基本範例,接著要來練習怎麼接收帶入extension的參數:
zend_parse_parameters方法
zend_parse_parameters提供不同的接收變數的方式,
變數1: ZEND_NUM_ARGS() TSRMLS_CC, 二個值中間是空白,ZEND_NUM_ARGS表示傳入參數的個數
變數2: 傳入變數的格式化字串
星期五, 5月 13, 2016
[PHP] php extension 初試
拜讀完php-extension骨架練習,
如果C語言忘得差不多錄影檔有從基本的C語言開始教起:D
Note:
如果C語言忘得差不多錄影檔有從基本的C語言開始教起:D
如果C語言已經很熟的話,可以跳至26:38秒開始
測試環境
- MacOSX EI
- MAMP (所以流程中有其他錯誤要處理一下:D)
ZVal是什麼
http://php.net/manual/en/internals2.variables.intro.php
Note:
PHP is a dynamic, loosely typed language, that uses copy-on-write and reference counting.
所有的php變數型態都是定義在一個zval的struct,並且使用copy-on-write(寫入時複製)與reference counting(來判斷變數是否還有被使用)。
初始化 ZVAL
簡化
ZVAL設定值
ZVAL_STRING
ZVAL_LONG
ZVAL_BOOL
星期四, 5月 12, 2016
[PHP] php 呼叫 C library一些方法
最近工作轉換跑道寫php,然後還要用php呼叫同事寫的c library,找了一些相關的筆記:
1. 寫php extension
中文相關
學習資源
1. 寫php extension- http://php.net/manual/en/internals2.ze1.zendapi.php
- http://www.phpinternalsbook.com/
- PHP Extensions Made Eldrich: Installing PHP
- PHP Extensions – How and Why?
- https://programm.froscon.de/2012/system/attachments/182/original/main.pdf
中文相關
- 手動編譯
安裝PHP Extension、 Linux( ) - 如何寫 PHP Extension
- PHP Extension & Makefile 製作
- 撰寫自己的 PHP extensions - 1 hello world
- [PHP] PHP 也有 Day #21 - c9s 主講:從 C 語言到 PHP Extension 學習筆記
- PHP 也有 Day #21 - 從 C 語言到 PHP Extension by 林佑安
c9s)( - 寫一個Hello World的PHP Extension
星期二, 5月 10, 2016
訂閱:
意見 (Atom)







