天天看點

PHP寫UltraEdit插件腳本

需求:

1 svn上的代碼在本地(編輯器ultraedit)有一套,在開發機(centos)上有一套,需要本地的代碼修改以後上傳到開發機上

2 不直接在開發機上修改和使用,原因是有多個人都使用同一個開發機,為了保留本地備份

思路:

1 寫一個腳本作為ultraedit的插件,使得代碼修改後按下制定按鍵就能直接将代碼本地儲存後上傳到centos上

2 本地是windows,遠端是linux,檔案上傳工具可以使用pscp.exe,腳本語言使用php或者python

3 本地必須安裝php,不需要安裝資料庫和apache

4 在php中起一個程序調用pscp.exe, 解析路徑等邏輯放在php中

步驟:

1 ultaedit中在工具配置中設定好腳本

php  "c:\users\nickyjf\desktop\mesh\tools\syncfile\sync142.php" %p%n%e

後面的%p%n%e是目前編輯檔案的絕對路徑,作為參數傳入synv142.php中

PHP寫UltraEdit插件腳本

2 sync142.php代碼

PHP寫UltraEdit插件腳本
PHP寫UltraEdit插件腳本

<?php

//插件,将windwos檔案同步到linux上

//php "rsync142.php" %p%n%e

//valid    argv

//testcode

/*

$argv = array(

    "rsync142.php",

    "e:\\svn\\test\\www\\include\\ggg\\test\\dtest.php",

);

*/

if(count($argv)    == 2)

{

    $sfilepath = $argv[1];

    $sservername = "192.168.10.142";

    $sserverusername = "name";

    $sserverpassword = "password";

    $sserverpath = sgetserverpath($sfilepath);

    $realpath = sprintf("%s@%s:/%s", $sserverusername, $sservername, $sserverpath);

    try

    {

        $cmd = sprintf("pscp.exe -pw %s %s %s", $sserverpassword, $sfilepath, $realpath);

        echo $cmd."\n";

        system($cmd);

    }

    catch(exception $e)

        print_r($e);exit;

}

function sgetserverpath($swindowspath)

    $ret = "";

    $paths = explode("\\", $swindowspath);

    if($startkey = array_search("www", $paths))

        $ret = "test/";

        for($i=$startkey+1;    $i<count($paths); $i++)

        {

            $ret .=    $paths[$i] . "/";

        }

        $ret = trim($ret, "/");

    return $ret;

?>

PHP寫UltraEdit插件腳本

3 将pscp.exe放在sync142同級目錄下

PHP寫UltraEdit插件腳本

4 将按鍵ctrl + 1 映射到這個腳本

于是在編寫程式的時候隻要按下ctrl + 1就可以将目前腳本替換遠端腳本

PHP寫UltraEdit插件腳本