PHP字串長度找子字串與取代字串的常用函數

PHP在字串的操作上,有非常多的相關函數可以使用,我們在這裡只介紹經常會使用到的字串操作函數。像是如何取得字串的長度、在某一個字裏面尋找子字串首次出現的位置、以及字串的取代函數...等等。這些都是在編寫程式的時候,頻繁被程式設計師使用到的基礎函數。 取得字串長度 <?...

2017年12月23日 星期六

建立一個JTextField文字欄位


package test.swing.component;

import java.awt.FlowLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;

public class TestJTextField extends JFrame {
 
 private JPanel contentPane;

 public static void main(String[] args) {
  TestJTextField frame = new TestJTextField();
  frame.setVisible(true);
 }
 
 public TestJTextField(){
  setBounds(100, 100, 450, 300);   //(左邊界,上邊界,宽度,長度)
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  contentPane = new JPanel();
  contentPane.setBorder(new EmptyBorder(10,10,10,10));   //(上,左,下,右)
  setContentPane(contentPane);
  
  //將Layout設定為由左至右的排列components之間的關係,超出面板宽度的元件往下列遞補
  contentPane.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));   //(置左,左右間距,上下間距)
  
  JTextField nameTF = new JTextField("請輸入資料...");
  nameTF.setColumns(15);
  
  contentPane.add(nameTF);
  
 }

}

建立一個JTextArea文字區塊



package test.swing.component;

import java.awt.FlowLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.border.EmptyBorder;

public class TestJTextArea extends JFrame {
 
 private JPanel contentPane;

 public static void main(String[] args) {
  TestJTextArea frame = new TestJTextArea();
  frame.setVisible(true);
 }
 
 public TestJTextArea(){
  setBounds(100, 100, 450, 300);   //(左邊界,上邊界,宽度,長度)
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  contentPane = new JPanel();
  contentPane.setBorder(new EmptyBorder(10,10,10,10));   //(上,左,下,右)
  setContentPane(contentPane);
  
  //將Layout設定為由左至右的排列components之間的關係,超出面板宽度的元件往下列遞補
  contentPane.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));   //(置左,左右間距,上下間距)
  
  JTextArea descTA = new JTextArea(5,30);  
  
  contentPane.add(descTA);  
  
 }

}

建立一個Spinner下拉選單


package test.swing.component;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.JTextField;
import javax.swing.SpinnerListModel;
import javax.swing.SpinnerModel;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;

public class TestJSpinner extends JFrame {

 public static void main(String[] args) {
  try{
   //設置系統預設的theme
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
      
      TestJSpinner frame = new TestJSpinner();
      frame.setVisible(true);
      
  }catch(Exception ex){
   ex.printStackTrace();
  }
 }

 public TestJSpinner(){  
  setTitle("Test JSpinner for version 1.0.1");
  //setIconImage(Toolkit.getDefaultToolkit().getImage(TestJTable.class.getResource("/deviantart_48x48.png")));
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setBounds(100, 100, 450, 500);  //(左邊界,上邊界,宽度,長度)
  JPanel contentPane = new JPanel();
  contentPane.setBorder(new EmptyBorder(10, 10, 10, 10));  //(上,左,下,右)
  setContentPane(contentPane);
  
  //設置Layout的樣式來呈現component之間在Panel上的位置關係
  contentPane.setLayout(new BorderLayout());  
  
  JPanel jpane = new JPanel();
  
  // 加入資料到Spinner
        String[] portal = {"Google","Yahoo","PChome"};
        SpinnerModel portalSM = new SpinnerListModel(portal);
        
        JSpinner portalSP = new JSpinner(portalSM);
        
  // 設定Spinner的宽度和高度
  Dimension d1 = portalSP.getPreferredSize();      
     d1.width = 120;
     d1.height = 30;
     portalSP.setPreferredSize(d1);
     
     // 修改文字欄位的外觀  
   JSpinner.ListEditor editor = new JSpinner.ListEditor(portalSP);
   JTextField tf = editor.getTextField();  
   tf.setHorizontalAlignment(JTextField.CENTER);  
   tf.setFont(new Font("微軟正黑體", Font.PLAIN, 14));  
   portalSP.setEditor(editor);
   
   jpane.add(portalSP);
  
  contentPane.add(jpane, BorderLayout.CENTER);  
 }
}

建立一個JPopupMenu彈出選單


package test.swing;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;

public class JPopupMenuSample {

 public static void main(final String args[]) {
     JFrame frame = new JFrame("JPopupMenu Example");
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     // 建立彈出選單
     JPopupMenu popupMenu = new JPopupMenu("Title");

     // 剪下
     JMenuItem cutMenuItem = new JMenuItem("Cut");
     popupMenu.add(cutMenuItem);

     // 貼上
     JMenuItem copyMenuItem = new JMenuItem("Copy");
     popupMenu.add(copyMenuItem);
     
     // 貼上
     JMenuItem pasteMenuItem = new JMenuItem("Paste");
     pasteMenuItem.setEnabled(false);
     popupMenu.add(pasteMenuItem);

     // 加入分隔線
     popupMenu.addSeparator();

     // 尋找
     JMenuItem findMenuItem = new JMenuItem("Find");
     popupMenu.add(findMenuItem);
     JButton label = new JButton("按右鍵-彈出選單");
     frame.add(label);
     label.setComponentPopupMenu(popupMenu);

     frame.setSize(350, 250);
     frame.setVisible(true);
   }

}

建立一個Combox下拉選單




package test.swing.component;

import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

public class TestJButton extends JFrame {
 
 private JPanel contentPane;

 public static void main(String[] args) {
  TestJButton frame = new TestJButton();
  frame.setVisible(true);
 }
 
 public TestJButton(){
  setBounds(100, 100, 450, 300);   //(左邊界,上邊界,宽度,長度)
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  contentPane = new JPanel();
  contentPane.setBorder(new EmptyBorder(10,10,10,10));   //(上,左,下,右)
  setContentPane(contentPane);
  
  //將Layout設定為由左至右的排列components之間的關係,超出面板宽度的元件往下列遞補
  contentPane.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));   //(置左,左右間距,上下間距)
  
  JButton finishBtn = new JButton("完成按鈕");
  
  contentPane.add(finishBtn);
  
  
 }

}

建立一個JButton元件


package test.swing.component;

import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

public class TestJButton extends JFrame {
 
 private JPanel contentPane;

 public static void main(String[] args) {
  TestJButton frame = new TestJButton();
  frame.setVisible(true);
 }
 
 public TestJButton(){
  setBounds(100, 100, 450, 300);   //(左邊界,上邊界,宽度,長度)
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  contentPane = new JPanel();
  contentPane.setBorder(new EmptyBorder(10,10,10,10));   //(上,左,下,右)
  setContentPane(contentPane);
  
  //將Layout設定為由左至右的排列components之間的關係,超出面板宽度的元件往下列遞補
  contentPane.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));   //(置左,左右間距,上下間距)
  
  JButton finishBtn = new JButton("完成按鈕");
  
  contentPane.add(finishBtn);
  
  
 }

}

2015年4月30日 星期四

實用Swift Mailer類庫用來發送php電子郵件

        Swift Mailer是一款功能特別強大的PHP物件導向的發送電子郵件的類別函式庫。它可以讓你透過內建的mail()函數、SMTP、postfix、甚至是你自己客製化的通訊協定來達到寄送email的目的。還可以有效的阻擋email的表頭遭到注入式攻擊,真的確是一個簡單容易使用的PHP郵件發送類庫。下載連結:http://swiftmailer.org/download

一個簡單發送SMTP Gmail電子郵件的範例

<?php
require_once 'swiftmailer-5.x/lib/swift_required.php';
 
// 採用預設的mail()數函發email
// $transport = Swift_MailTransport::newInstance();

// 使用SMTP的方式來發送gmail
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')
  ->setUsername('Your username')
  ->setPassword('Your password')
  ;
 
// 填寫email的主旨、內容、寄件者、收件者 
$message = Swift_Message::newInstance();  

$message->setTo(array(
  "jason@gmail.com" => "Jason.Terry"
  //,"abc@yahoo.com" => "Mike.Porter"
));
$message->setSubject("Swift Mail測試中...");
$message->setBody("恭喜您! Swift測試郵件發送成功。");
$message->setFrom("swiftmailer@gamil.com", "Swift-mailer");
 
// Send the email
$mailer = Swift_Mailer::newInstance($transport);
$mailer->send($message);

echo 'Send Swift mail successfully!!';