如何排除Eclipse Error This Project Needs To Migrate WTP Metadata
最近很少開Eclipse,結果一開後發現怎麼編譯程式都有一個錯誤訊息
上網查一查才知,在該專案按滑鼠右鍵,跑出選單後,執行Valiadate就好了
真神奇,問題排除了~但怎麼發生的我還是不知道
不過我也不想深入瞭解原因~XD
最近很少開Eclipse,結果一開後發現怎麼編譯程式都有一個錯誤訊息
上網查一查才知,在該專案按滑鼠右鍵,跑出選單後,執行Valiadate就好了
真神奇,問題排除了~但怎麼發生的我還是不知道
不過我也不想深入瞭解原因~XD
CKEDITOR 很多專案都有採用,不過似乎不太可能直接下載解開就直接採用
雖然常有工程師都是偷懶的直接全放上去,但其實對資安及友善度來說都是不建議的
像一般工具列,如按完整的版本上去,出現的畫面會如下:
看到了吧,這未免也太多功能按鈕了而且又沒有列的很好,有時想要一個自訂的工具列,如下圖
雖然他目前有提供基本、標準、完整、及客製,不過前三個大多都不是我個人慣用的工具列
而客製看來有點小複雜,因為不太清楚哪個功能是哪個plugin 所以試了試也就放棄,還是上網找找傳統在fckeditor的一些設定調整方式好了
(先前fckeditor 都會把相關參數設定放置fckconfig.js,要調整都非常方便,可是ckeditor config.js 現在變的太乾淨了…全都拿掉了)
可以參考http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Toolbar 這篇,就有提及如何調整工具列,所以可以參考該篇將
config.toolbar = 'Full'; config.toolbar_Full = [ { name: 'document', items : [ 'Source','-','Save','NewPage','DocProps','Preview','Print','-','Templates' ] }, { name: 'clipboard', items : [ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ] }, { name: 'editing', items : [ 'Find','Replace','-','SelectAll','-','SpellChecker', 'Scayt' ] }, { name: 'forms', items : [ 'Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField' ] }, '/', { name: 'basicstyles', items : [ 'Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat' ] }, { name: 'paragraph', items : [ 'NumberedList','BulletedList','-','Outdent','Indent','-','Blockquote','CreateDiv', '-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock','-','BidiLtr','BidiRtl' ] }, { name: 'links', items : [ 'Link','Unlink','Anchor' ] }, { name: 'insert', items : [ 'Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak','Iframe' ] }, '/', { name: 'styles', items : [ 'Styles','Format','Font','FontSize' ] }, { name: 'colors', items : [ 'TextColor','BGColor' ] }, { name: 'tools', items : [ 'Maximize', 'ShowBlocks','-','About' ] } ];
直接放入config.js CKEDITOR.editorConfig = function( config ) { …} 之中即可,然後再依按鈕的順序調整一版是自己要的工具列即可,是不是比客製的還容易呢?
如果要在字型之中加上中文字型,可以參考 http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.font_names 這篇
一樣在其中加上你要的字型即可,以下範例是偷懶作法,用預設值直接加上中文字型 (記得config.js要轉換編碼為UTF8 不然看到會是亂碼
config.font_names = "新細明體;標楷體;微軟正黑體;" +config.font_names ;
最後如果編輯框想設定預設寬高的話,只要再加上:
config.height = 250; config.width = 600;
這樣就可以調整成如你想要的編輯器了!!
當然還有很多參數要再調整,但這上述這幾個是最常用的,所以先寫下來介紹給大家!!
在PHP5 之後,有提供了字串處理時忽略大小寫的函式,蠻不錯用的而且也很好記憶,在此列出常用的幾個函式介紹:
strstr($str ,$keyword) 對應的函式就是stristr
該函式主要是找出$keyword之後的字串(可以將原本要用substr函式才能處理的事簡化)
值得一提,在PHP 5.3.0 之後 strstr函式,增加一個參數 strstr($str ,$keyword [,$before_boolean=false]),如設定為true,則效果反向可以找出$keyword之前的字串
請參考http://php.net/manual/zh/function.stristr.php
strpos($str, $keyword [,$offset=0]) 對應的函式就是stripos
主要是回傳$str之中$keyword首次出現的位置
如果是要找最後一次出現的位置可以改用 strrpos 當然對應的函式是strripos
請參考http://www.php.net/manual/zh/function.stripos.php
str_replace($searchKeyword , $replace ,$str) 對應的函式就是str_ireplace
可以將$str之中,全部的$searchKeyword都會換成$replace
請參考http://php.net/manual/zh/function.str-ireplace.php
strcmp($str1 ,$str2) 對應的函式,要注意就不是常用的加上i 而是strcasecmp
可以針對$str1,及$str2 進行字串大小比對,$str1>$str2會回傳正數, 小於會回傳負數,相等會回傳0
請參考http://www.php.net/manual/zh/function.strcmp.php
然而這函式還有其它類似作用的函式 ,都一樣有提供忽略大小寫,如下:
strncmp(可指定比較時使用的最大長度) 對應的是strncasecmp,請參考http://www.php.net/manual/zh/function.strncmp.php
strnatcmp (自然順序的比較)對應的是strnatcasecmp,請參考http://www.php.net/manual/zh/function.strnatcmp.php
如果是要在preg_ match 或是preg_ match_all 之中忽略大小寫進行比對呢?
只要在$pattern之中加上i即可,例如 原本preg_match("/HI (.*?) from/",$str,$martchs) 只要改成這樣即可
preg_match("/HI (.*?) from/i",$str,$martchs)
詳細使用請參考 http://www.php.net/manual/zh/function.preg-match.php
最近在處理PHP,有用到一些PHP函式都有限定PHP某版本之後才支援或是某版本之後有些參數就作廢了
以前其實很好區分,多半只要注意PHP 3 4 5 這種大版本就好,但像PHP 5.3.0 之前及之後就有蠻多差別
所以如要判斷時,只要在程式中用phpversion()即可得到目前使用的PHP版本號
<? if(phpversion()>='5.3.0') echo "HI"; ?>
詳請參考http://tw1.php.net/manual/en/function.phpversion.php
就是這麼簡單,那如果要判斷這函式是否有提供呢? 我們可以用function_exists即可判斷:
<? if (function_exists('imap_open')) { echo "IMAP functions are available.<br />\n"; } else { echo "IMAP functions are not available.<br />\n"; } ?>
詳請參考http://php.net/manual/en/function.function-exists.php
如果我們要找某個PHP系統參數值呢? 我們可以用get_ini來查出來
在Client Server 架構,最麻煩的就是debug,單單server 可以用開發工具的debug mode來抓問題,而client只能借助一些瀏覽器的工具來抓問題而且也沒有debug mode,頂多只有console.log 可以用,多半都要用alert 來顯示相關資訊,而現在ajax 盛行,要抓問題時,不再只是顯示一個單值這麼容易,所以今天來介紹一下如何顯示json的值!
在查資料的同時,才發現自己都是東摸一點,西學一點,沒有學習一個完整性,所以都要花上不少時間,或浪費不少時間,json格式已經瞭解並大量在使用了,但看到JSON.stringify才知,這麼好用的函式怎麼這麼晚才去瞭解呀! 在Firefox 3.1、Internet Explorer 8以上,已經都有支援,它可以將物件轉成JSON字串,所以在查詢時就很方便,以往當我們要將javascript 的物件查看其內容時,在alert 這物件只會顯示這是個[object],還要特別去指定一個屬性才會顯示該屬性質,要查詢時蠻不方便的,而透過JSON.stringify轉成JSON字串後,就可以很輕鬆查看
使用語法:
如果你有個物件要顯示,最簡單的方式如下:
var obj= new Object(); obj.name="Tony"; obj.age=33; obj.tel="0912332112"; obj.sex="M"; alert(JSON.stringify(obj));
這時你可以得到:
多棒呀!!,JSON完整的資訊全顯示出來了,不過還有更棒的,可以在後面加上空白
alert(JSON.stringify(obj,null,4));
顯示時排列的很整理,更方便閱讀了說!!
至於中間參數replacer的用法,就是可以進行過濾的動作,將符合replacer的顯示出來,相關用法我這邊就不多寫了,如有興趣,可以看這篇文章,寫的蠻不錯的~簡單易懂 : JSON.stringify 语法讲解 – 随风浪迹天涯 – 博客园
以往再使用json都是透過ajax 傳遞,所以可以透過查看response就可以看到相關內容,這次單單用在client就覺得JSON.stringify特好用的,看來還是要多多把基本功打好才行呀~^^
近期留言