php 獲取flash的尺寸信息

2013年8月14日 沒有評論

如果你還想著通過解析swf文件頭信息來獲取flash文件的尺寸信息,那真的有點走遠了。因為從PHP 4開始已經內置getimagesize函數來做這個事。其功能測定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 圖像文件的大小并返回圖像的尺寸以及文件類型和一個可以用于普通 HTML 文件中 IMG 標記中的 height/width 文本字符串。而且從PHP 4.0.5起還支持參數是一個url。例如:

print_r(getimagesize('http://www.google.com.hk/images/srpr/logo4w.png'));
輸出的結果為:
Array
(
    [0] => 550
    [1] => 190
    [2] => 3
    [3] => width="550" height="190"
    [bits] => 8
    [mime] => image/png
)
分類: PHP 標簽:

Mac OSX say

2013年8月14日 沒有評論

say命令是Mac OSX 獨一無二的,say 后輸入一個單詞或句子,它會采用TTS的方式朗讀出來。如果只是這樣那就沒有什么亮點,當你使用man say查看該命令的詳細用法,看到可以指定聲音的類型、語速,甚至還可以把結果輸出到一個m4a格式的文件中。如果你正使用著mac osx,可以打開終端拷貝粘貼下面的內容到里面看看效果。

say --voice="Good News" goal

say --voice="Good News" Specify the voice to be used. Default is the voice selected in System Preferences.

say -r 1 Specify the voice to be used. Default is the voice selected in System Preferences.
分類: 其它 標簽:

php 判斷常量、變量和函數是否存在

2013年8月13日 沒有評論

對應標題所提的問題,php內部自帶了函數提供檢測。

常量檢測使用defined,定義常量則是define。注意待檢測的常量需要使用引號(單雙均可),如:

if (defined('CONST_NAME')) {
    //do something	
}

變量檢測則是使用isset,注意變量未聲明或聲明時賦值為NULL,isset均返回FALSE,如:

if (isset($var_name)) {
    //do something
}

函數檢測用function_exists,注意待檢測的函數名也需要使用引號,如:

if (function_exists('fun_name')) {
	fun_name();
}
分類: PHP 標簽:

mysql order by null

2013年8月11日 沒有評論

order by null用途是強制對查詢結果禁用排序。通過explain檢查查詢語句時候,如果看到Extra列中有Using filesort,這是對性能有一定影響的,特別是使用了group by時,就算你沒有顯示的指定order by,mysql會默認按照分組字段進行排序。某些情況下是沒有必要使用排序的,例如在處理表報數據的時候(把原始表數據統計后插入到一個用于報表查詢的表),則完全可以可以使用order by null來取消排序。如:

insert into reportTable(day, clicks, revenue)
    select day, count(*), sum(revenue) from clickOriginTalbe
    group by day
    order by null
分類: MySQL 標簽:

php 創建多級目錄

2013年8月11日 沒有評論

php提供了mkdir來創建文件,但對應5.0一下的版本不支持遞歸創建多級目錄,也就是說給定要創建的目錄的上級目錄不存在,那么就會創建失敗。5.0及以上版本通過吧第三個參數設置為TRUE,就能遞歸創建指定的目錄。不過自己實現一個遞歸創建多目錄的函數也很簡單,具體代碼如下:

function mkdirs($dir){
    if(!is_dir($dir)){
        if(!mkdirs(dirname($dir))){
            return FALSE;
        }

        if(!mkdir($dir, 0777)){
            return FALSE;
        }
    }

    return TRUE;
}
分類: Linux 標簽:

php 獲取月第一天和最后一天

2013年8月11日 沒有評論

借助于date和strtotime函數,可以輕松的獲取本月、下月以及上月的第一天和最后一天,下面分別給出其實現。其中函數的參數date格式為yyyy-MM-dd。

1、給定一個日期,獲取其本月的第一天和最后一天

function getCurMonthFirstDay($date) {
    return date('Y-m-01', strtotime($date));
}

function getCurMonthLastDay($date) {
    return date('Y-m-d', strtotime(date('Y-m-01', strtotime($date)) . ' +1 month -1 day'));
}

2、給定一個日期,獲取其下月的第一天和最后一天

function getNextMonthFirstDay($date) {
    return date('Y-m-d', strtotime(date('Y-m-01', strtotime($date)) . ' +1 month'));
}

function getNextMonthLastDay($date) {
    return date('Y-m-d', strtotime(date('Y-m-01', strtotime($date)) . ' +2 month -1 day'));
}

3、給定一個日期,獲取其下月的第一天和最后一天

function getPrevMonthFirstDay($date) {
    return date('Y-m-d', strtotime(date('Y-m-01', strtotime($date)) . ' -1 month'));
}

function getPrevMonthLastDay($date) {
    return date('Y-m-d', strtotime(date('Y-m-01', strtotime($date)) . ' -1 day'));
}

其中strtotime函數參數“+1 month”,php會根據具體月份來確定增加多少天,可能是28、29(2月)、30(小月)或 31(大月);某月的第一天 “-1 day” 自然就是上個月最后一天,php也會根據月來智能確定是28、29、30或31。

strtotime 的功能很強大,詳細用法可以查看官方文檔:http://php.net/manual/zh/function.strtotime.php

分類: PHP 標簽: ,

shell-init: error retrieving current directory

2013年8月9日 沒有評論

重命名了一個web項目,然后修改apache的配置到新目錄后重啟,出現如下錯誤提示:

shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory

由于老的目錄已經刪除,開始懷疑是apache重啟時候找不到老的目錄報錯,在網上查了一下,此錯誤是因為getcwd命令無法獲取當前執行命令時的工作目錄,可能是由于該目錄已經被其他的程序刪除。例如:你先用一個終端進入到目錄 /home/yangyz/test,再開啟另外一個終端刪除目錄 /home/yangyz/test,然后再第一個終端中執行某些命令或啟動某些服務的時候就會看到上述的錯誤提示。

解決辦法就是使用cd進入到任何一個實際存在的目錄,然后再執行相應命令即可。

分類: Linux 標簽:

php 常用文件操作備忘

2013年8月8日 沒有評論

1、獲取文件名:basename();

2、獲取文件所在的目錄:dirname();

3、pathinfo()獲取文件信息,返回結果為一個array,包括路徑、文件全名、文件名和擴展名。例如:

$file = '/com/netingcn/error.log';
print_r(pathinfo($file));
結果為:
Array(
    [dirname] => /com/netingcn
    [basename] => error.log
    [extension] => log
    [filename] => error
)

4、判斷文件是否存在:is_file();

5、判斷目錄是否存在:is_dir();

6、判斷文件或目錄是否存在:file_exists();

7、讀取文件所有內容:file()或file_get_contents(),其中file()返回的是一個一行為元素的array,file_get_contents()把文件全部內容作為一個String返回;

8、寫文件fwrite,如:

$handler = fopen($file, 'w');	// w 會沖掉以前的內容、a 是追加
fwrite($handler, 'content');
fclose($handler);              //記得關閉打開的文件句柄

9、文件讀取操作有很多,下面簡單介紹幾個:

$handler = fopen($file, 'r');

while(!feof($handler)) {
    $datas[] = fgets($handler);		//讀取一行內容
}

while(!feof($handler)) {
    $datas[] = fgetss($handler);	//讀取一行內容并過來html標記
}

while(!feof($handler)) {
    $datas[] = fgetcsv($handler);	//讀取一行內容并解析csv字段
}

$content = fread($handler, $strLength);	//讀取指定長讀的字符

fclose($handler);
分類: PHP 標簽:

禁止 centos 休眠

2013年8月8日 沒有評論

由于屏幕關閉加上長時間沒有操作可能導致centos進行深度休眠,此時只能通過電源鍵來強制重啟。可以通過修改X11的配置來禁止休眠,配置文件為/etc/X11/xorg.conf,注意修改此文件前記得備份,防止由于配置錯誤導致無法進行X11桌面。

修改涉及兩個地方,第一個是 Section “Monitor”,查看其配置中是否有 DPMS,且其值為 false,保證配置信息如下:

    Option      "DPMS" "false"

第二個修改是增加一個 Section “ServerFlags”,包含的內容如下:

Section "ServerFlags"
    Option      "BlankTime" "0"
    Option      "StandbyTime" "0"
    Option      "SuspendTime" "0"
    Option      "OffTime" "0"
EndSection
分類: Linux 標簽:

js 綁定事件

2013年8月8日 沒有評論

通常的做法是把函數指針賦值給dom對象,例如:

function loadProcess() {
    //do something
}

window.onload = loadProcess;
或
window.onload = function() {
    //do something
}

因為這種方法會出現覆蓋的問題,因此采用此種方法可能會由于其他地方也對window對象onload事件綁定事件造成上述代碼不會被執行。比較好的做法是通過attachEvent(針對IE)或addEventListener的方式來綁定事件。例如可以定義如下函數:

function bindEvent(obj, event, func) {
    if (obj.addEventListener) {
        obj.addEventListener(event, func, false);
    } else if (obj.attachEvent) {
        obj.attachEvent("on" + event, func);
    }	
}

調用方法為:
function loadProcess() {
    //do something
}

bindEvent(window, 'load', loadProcess);

或采用匿名函數的方式
bindEvent(window, 'load', function() {
   //do something
});

注意:event參數的值不需要“on”,如果同一個對象相同事件綁定了多次,則都會被執行。

無覓相關文章插件,快速提升流量

30选5怎么中奖