WordPress開發部更新了哪些酷炫的功能呢? 給自己3分多鐘的時間, 你將會發現很多意想不到的功能喔~
專門提供客製化網頁設計,App快速製作,App模板產生,手機版網頁設計服務
WordPress開發部更新了哪些酷炫的功能呢? 給自己3分多鐘的時間, 你將會發現很多意想不到的功能喔~
想要自己用PHP動態做出美麗的圖? 卻又不想花大錢去買別人寫好的套件?
不用慌張, 因為這個網站會教你怎麼一步一步學GD, 趕快用你的PHP中內建的GD function來畫圖吧!
動一動腦筋可以做出意想不到的效果呢.
http://www.nyphp.org/content/presentations/GDintro/
有時候我們用中文存取MYSQL資料庫資料的時候會出現亂碼,
又也許你在PHPMYADMIN看到的時候是明碼, 但用echo抓出來後卻是” ??? ” 的亂碼.
又或是在儲存的時候就已經是亂碼了, 要怎麼解決呢?
可以試試看以下的方法:
mysql_query("SET NAMEs 'utf8' "); $sql = mysql_query("SELECT * FROM wp_posts where ID = 2");
不管INSERT 或是SELECT出來, 都在mysql_query前加入
"SET NAMES 'utf8' "
就可以確保資料庫存取時是以UTF-8的編碼儲存, 那在做資料轉換的過程應該就可以把編碼問題解決了~
台灣 IT 人的心聲,我們聽到了。微軟將於 2008 年 7 月 26 日,在京華城 B3 地心引力廣場,舉辦第一屆台灣系統管理者日。除慶祝活動外,微軟也將與您面對面對談;這天,是屬於你們的日子!
在Silverlight宣告事件的方式有兩種:
在XAML直接作宣告(eg. 在Page.xaml):
<Canvas Loaded=”Canvas_Loaded”>
<Button x:Name=”myButton” Content=”Hello”
Canvas.Left=”10″ Canvas.Top=”10″ />
</Canvas>
在Page.xaml.cs作處理:
private void Canvas_Loaded(object sender, RoutedEventArgs e)
{
theButton.Content = “Please Click Me”;
}
不需在XAML裡面宣告事件
<!– <Canvas Loaded=”Canvas_Loaded”> –>
<Canvas >
<Button x:Name=”theButton” Content=”I’m Indented!”
Canvas.Left=”150″ Canvas.Top=”20″ />
<CheckBox x:Name=”RushOrder” Content=”Rush”
Canvas.Left=”50″ Canvas.Top=”20″ FontSize=”18″ />
</Canvas>
而是直接在Page.xaml.cs的Page( ) Constructor動手腳~
public Page()
{
InitializeComponent();
Loaded += new RoutedEventHandler(Page_Loaded);
}
void Page_Loaded(object sender, RoutedEventArgs e)
{
/*throw new NotImplementedException(); 去掉這行 */
theButton.Click +=new RoutedEventHandler(theButton_Click); //事件1
RushOrder.Checked += new RoutedEventHandler(RushOrder_Changed); //事件2
RushOrder.Unchecked +=new RoutedEventHandler(RushOrder_Change); //事件3
}
void RushOrder_Changed(object sender, RoutedEventArgs e)
{
if (RushOrder.IsChecked == true)
{
RushOrder.Content = “RUSH”;
}
else
{
RushOrder.Content = “Rush”;
}
}
在SilverLight中用來規劃整個版面Layout的Control主要有三種:
Grid
Grid 在使用VS2008開啟新檔案的時候就已經存在XAML裡面了, 格式會長這個樣子:
<UserControl x:Class=”EasyGrid.Page”
xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”
xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”
Width=”400″ Height=”300″>
<Grid x:Name=”LayoutRoot” Background=”White”>
</Grid>
你可以先規劃整個SilverLight App的框線, 以便之後的對齊作業, 定義的方式如下:
<Grid x:Name=”LayoutRoot” Background=”White”>
<Grid.RowDefinitions>
<RowDefinition Height=”50″ />
<RowDefinition Height=”30*” MaxHeight=”70″ />
<RowDefinition Height=”40*” MaxHeight=”70″ />
<RowDefinition Height=”*” MinHeight=”30″ MaxHeight=”50″ />
<RowDefinition Height=”Auto” MinHeight=”5″ MaxHeight=”30″ />
</Grid.RowDefinitions>
</Grid>
Height: 每一列的高度
MaxHeight: 能夠拉伸的最大高度 (* 表示以比例的方式定義高度, 兩倍高就是 2*)
MinHeight: 能夠拉伸的最小高度
StackPanel
Stack就是堆疊的意思, 使用StackPanel你可以將你的物件以左右堆疊或者上下堆疊的方式排列, 就像書本在書架上一樣. 它也是在SilverLight2.0經常使用的對齊工具. 下面以放置TextBlock, TextBox, CheckBox及Button 為例:
<StackPanel Background=”Beige” Orientation=”Vertical” >
<TextBlock Text=”Your name?”
HorizontalAlignment=”Left” Margin=”10,2,0,1″/>
<TextBox Width=”150″ Height=”30″
HorizontalAlignment=”Left” Margin=”10,2,0,1″/>
<Button Content=”Submit this information”
HorizontalAlignment=”Left”
Margin=”10,2,0,1″ Height=”30″ Width=”150″ />
<CheckBox Content=”With Zing!” HorizontalAlignment=”Left”
Margin=”10,2,0,1″ />
</StackPanel>
屬性:
Background: Stack背景的顏色
Orientation: 排列方向, Vertical是垂直
在StackPanel內部的物件Margin=”10,2,0,1″ 的Margin順序是左, 上, 右, 下.
SilverLight的Control有很多, 以後會逐一介紹其用法, 首先介紹TextBlock的屬性:
<TextBlock x:Name=”TestName” Grid.Row=”0″ Grid.Column=”0″ Text=”Testing Name: ” Margin=”5″ />
應用: TextBlock的使用方法跟.NET的Label Control很像, 就是專門顯示文字用的.
屬性:
Grid.Row, Grid.Column叫做Extended Properties, 功能是對齊週邊的Grid格線, 讓App看起來較整齊.
Text 功能就是顯示內部的文字.
Margin很有趣, 輸入不同數目的值就有不同的Margin效果.
Margin=”5″ : 表示 左, 右, 上, 下 都是空出5px.
Margin=”5,6″ : 表示 左右空出5px, 上下空出6px.
Margin=”5,6,7,8″: 表示 左5px, 上6px, 右7px, 下8px.
如果您的安裝順序是:
1. Visual Studio 2008
2. SilverLight 2 BETA 2 Tools for Visual Studio 2008
應該可以安裝成功,
但如果安裝的順序是:
1. Visual Studio 2008
2. SilverLight 1.0 Runtime
3. SilverLight 2.0 Runtime
4. SilverLight 2 BETA 2 Tools for Visual Studio 2008
則會在安裝的時候出現ERROR. 經過測試, 要解決這個問題方法如下:
1. 控制台 > 新增與移除程式 > 將SilverLight 1.0, 2.0 的RUNTIME都徹底移除
2. 將Program Files 的 SilverLight, SilverLight SDK都移除乾淨.
3. 再安裝SilverLight 2 BETA 2 Tools for Visual Studio 2008 就可以成功了.
建議的安裝順序為:
1. Visual Studio 2008
2. Silverlight 2.0 Run time.
3. Expression Blend 2.5
4. Visual Studio 2008 SP1
5. silverlight_chainer.exe
當我們在撰寫物件導向程式的時候, 難免會需要將參數傳入Method裡面, 若傳入的參數是陣列, 格式如下:
static void Main(string[] args)
{int[] a = new int[2]{5,7};
Util util = new Util();
Console.WriteLine(util.Min(a));
}
class Util
{public int Min(int[] param)
{
if (param == null || param.Length == 0)
{
throw new ArgumentException(“Util.Min: not enough arguments”);
}int currentmin = param[0];
foreach (int i in param)
{
if (i < currentmin)
{
currentmin = i;
}
}return currentmin;
}}
這種寫法應該很直觀吧, 但如果傳入的參數是Integer豈不是出現Error? 要怎麼解決呢? 其實要解決這個問題非常簡單, 就是在Method的參數部分加入 “params”這個關鍵字, 寫法如下:
class Util
{public int Min(params int[] param)
{
if (param == null || param.Length == 0)
{
throw new ArgumentException(“Util.Min: not enough arguments”);
}int currentmin = param[0];
foreach (int i in param)
{
if (i < currentmin)
{
currentmin = i;
}
}return currentmin;
}}
這樣一來傳入的參數會經過compiler做以下的動作:
int min = Util.Min(first, second);
int[] array = new int[2];
array[0] = first;
array[1] = second;
int min = Util.Min(array);
你的主程式就可以彈性傳入參數, 夠方便吧?
static void Main(string[] args)
{int[] a = new int[2]{5,7};
Util util = new Util();
Console.WriteLine(util.Min(a));//可以傳入陣列型態的變數
int b = util.Min(2, 10); //同時可以傳入多個Integer
Console.WriteLine(b);
}
使用params有幾個注意事項:
我們先把話說在前頭, Javascript的所有函數並不適用在所有的瀏覽器, 這個大家都贊同吧?
所以你一定會跟我一樣想先擷取使用者的瀏覽器版本, 看看它是用IE, MOZILLA還是Opera等等的, 但這樣的方法真的好用嗎? 老實說這是相當難維護的, 因為瀏覽器會一直更新, 如果你都用IF ELSE來判斷它的版本應該會要一直更新吧, 而且你又要怎麼判斷你的使用者會不會比你更快更新它的瀏覽器呢?
舊的方法如下:
javascript:alert(navigator.userAgent);
如果你使用IE7, 它會回傳給你: Mozilla 4.0/ …..
這樣的方法真的不是很好, 在這裡有個不錯的方式來判斷:
if (typeof featureName != “undefined”) {
// 程式碼
}
舉例如下:
if (typeof document.getElementById != “undefined”) {
alert(“getelembyid is supported”);} else {
alert(“no getelembyid support”);
}
我們要判斷瀏覽器是否支援getElementById 就可以直接用typeof document.xx != “undefined” 來判斷 如果使用者不支援這個函數你就可以再另外想辦法. 另外一種寫法如下:
var getElem = (typeof document.getElementById == “function”) ? true : false;
if (getElem) {
// 我們知道GetElementbyId是支援的,
// 所以我們就可以用它.
}
這樣是不是比較實際且容易維護呢?