為什麼選擇 PHP

  • 好上手
  • 概念簡單
  • 語法簡單
  • 支援廣泛
  • 有成熟的社群
  • 根據toibe評比,目前仍是全球前十大熱門語言(扣掉C++之類較少拿來開發網站的語言後更是可以到第一二名)

為什麼選擇 PHP

  • 太多人使用(不夠潮)
  • 不夠有系統化
  • 自訂性不夠高
  • 有時會讓程式碼過於雜亂
  • 對於安全性的要求不甚高
  • 執行速度並不是非常快
  • 語法有時沒有邏輯

使用PHP開發的網站

  • Facebook
  • Wikipedia
  • Slack
  • moodle
  • dailymotion
  • tumblr
  • 建中網站
  • 各種用WordPress架的網站
  • ...

如何執行PHP

環境設定

  • Windows: WAMP, XAMPP
  • Linux: LAMP
  • Mac OS: MAMP
  • Other: 自行去php.net下載,並手動設定好Server

基本語法架構

<!DOCTYPE HTML>
<html>
    <head>
        <title>Jizz</title>
        <?
            //write your code here
        ?>
    </head>
    <body>
        <?php
            //write your code here
        ?>
    </body>
</html>

基本語法

  • 每個指令都要加分號;
  • 變數命名:一律以$做開頭 (e.g $jizz = 7122;)
  • 數值運算:+-*/%... (注意他的/會回傳float)
  • 輸出至網頁:echo (e.g echo "JIZZ";)
  • 註解:單行註解為//或#,多行註解則為/* */
  • 大多數函數則是要用到的時候再去查一下就好了
  • 字串串接使用.(e.g "jizz"."7122")

迴圈

<!DOCTYPE HTML>
<html>
    <head>
        <title>Jizz</title>
    </head>
    <body>
    <?php
        for($i = 0;$i<5;$i++){
    ?>
            <div>7122</div>
    <?php
        }
    ?>
    </body>
</html>

迴圈

<!DOCTYPE HTML>
<html>
    <head>
        <title>Jizz</title>
    </head>
    <body>
            <div>7122</div>
            <div>7122</div>
            <div>7122</div>
            <div>7122</div>
            <div>7122</div>
    </body>
</html>

陣列

<?php
    $arr1=array(2, 7122);
    $arr2=[2,7122];
    $arr3=array(0=>1, 1=>7122);
    $arr4[0]=2;
    $arr4[1]=7122;
    $arr5=array("1"=>2, "jizz"=>7122);
    $arr6=array(1=>2, 3, 10=>6, 7);
?>

陣列

<?php
    $arr=array(
       1=>"a",
       "1"=>"b",
       1.5=>"c",
       true=>"d"
    );
?>

迴圈遍歷陣列

<?php
    $arr=array(1,2,3,4);
    foreach($arr as $val){
        echo $val;
    }
?>

迴圈遍歷陣列

1234

迴圈遍歷陣列

<?php
    $arr=array(1,2,3,4);
    foreach($arr as $key => $val){
        echo "$key: $val"."\n";
        echo '$key: $val'.'\n';
    }
?>

迴圈遍歷陣列

0: 1
$key: $val\n1: 2
$key: $val\n2: 3
$key: $val\n3: 4
$key: $val\n

Form及一些封包相關

取得form資料

  • $_GET[name]
  • $_POST[name]
  • $_REQUEST[name]
if(isset($_XXX[name])){
    //do something
}

修改header內容

<?php
    header("Location: https://infor.org");
?>
<?php
    header('Content-Type: application/pdf');
    header('Content-Disposition: attachment; filename="jizz.pdf"');
    readfile('original.pdf');
?>
<?php
    header("HTTP/1.0 404 Not Found");
?>

獲得request內容

  • Referer:$_SERVER['HTTP_REFERER']
  • User Agent:$_SERVER['HTTP_USER_AGENT']
  • 使用者IP:$_SERVER['REMOTE_ADDR']
  • 使用者method:$_SERVER['REQUEST_METHOD']

Cookie/Session

Cookie操作

<?php
    $cookie_name="jizz";
    $cookie_value="7122";
    setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<?php
    $cookie_name="jizz";
    setcookie($cookie_name, "", time() - 3600);
?>

Session操作

<?php
    session_start();
    $_SESSION['jizz']=7122;
    unset($_SESSION['jizz']);
    session_destroy();
?>

基本概念就講解到這吧

大家可以多多去發掘、多多去創造XD

PHP

By Tommy Chiang

PHP

  • 372