Php & VSCode

      在〈Php & VSCode〉中尚無留言

Php & VSCode

撰寫 PHP 的 IDE 最常看到的是 phpstorm,但這套是要付費的。還好有另一套 Visual Studio Code,是一款由微軟開發且跨平台的免費整合式開發環境。該軟體支援語法突顯、程式碼自動補全、程式碼重構功能,並且內建了命令列工具和 Git 版本控制系統。使用者可以更改佈景主題和鍵盤捷徑實現個人化設定,也可以透過內建的擴充元件程式商店安裝擴充元件以加強軟體功能,完全不用付費。

安裝 PHP Debug

按下左邊第五顆按鈕 Extensions ,然後輸入 php 搜尋,選取 PHP Debug進行安裝。然後在 PHP Debug 右下方的齒輪按一下,選擇Extension Settings,再選取 Edit in settings.json,於 “php.debug.executablePath” : “” 輸入  “C:/wamp64/bin/php/php8.0.26/php.exe”

{
"php.debug.executablePath": "C:/wamp64/bin/php/php8.0.26/php.exe"
}

開啟專案

網站通常由多個網頁組成,請選第一個按鈕,再選 New Folder,建立網頁目錄 c:/server/wordpress/web。

然後再開啟新檔案 info.php,輸入如下代碼

<?php
phpinfo();
?>

最後按下 Ctrl+F5 執行,就會在下方的DEBUG CONSOLE 輸出 HTML 的結果

html標頭

在<head>標籤加入如下代碼

 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 </head>

這是最常見的解決方式, 但在Chrome裏沒什麼用處, 在其他的瀏覽器可能有些用處.

變數不需宣告

PHP的變數不需要宣告, 所以會讓正統程式人員無法諒解. 使用變數時, 需於變數名稱前加上 $, 如
$salary=80000;

字串相接

字串相接, 不像C# or Java使用 “+”, 而是使用 “.” 如下
$price=10;
$qty=50;
echo “單價=$price, 數量=$qty, 總價=”.$price*$qty;

結果為
單價=10, 數量=20, 總價=200

在  ”  ” 內, $price會被取出, 但若要進行四則運算, 需在 “” 之外

斷行

echo “<br>”;

文字數字混亂

$a=”abcd”;
$a=$a-1; <==結果是 -1, 因為把”abcd”轉成了0

$a=abcd; <==嚴重錯誤

終極密碼

<?php
 $min=1;
 $max=100;
 $password=rand(1,$max);
 echo "密碼 : ".$password."<br>";
 $index=1;
 while(true){
     echo "第".$index."次 : ";
     $guess=rand($min+1, $max-1);
     echo $guess;
     if($guess==$password){
         echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<==bingo";
         break;
     }
     else if ($guess<$password)
         $min=$guess;
     else
         $max=$guess;
     echo " 介於 $min ~ $max 之間";
     $index++;
     echo "<br>";
 }
?>

Laravel Composer

先下載 Composer 進行套件管理, 下載完後進行安裝

下載Laravel

  1. composer global require “laravel/installer”
  2. 環境變數設定 D:\server\cms\laravel\vendor\bin
  3. 在cmd模式下, 將目錄移到server, 下達  laravel new 資料夾
  4. 將apache的http-vhost.conf網頁根目錄設定在 public目錄

預備敘述與查詢

使用 mysqli_prepare() 作為預備敘述時, 可防止SQL Injection, 但要進行查詢時, 需撰寫如下

$conn=mysqli_connect("localhost", "帳號", "密碼", "資料庫");
$txtAccount="thomas";
$txtPassword="123456";
$sql="select userAccount, userPassword from member where userAccount=? and userPassword=?";
$stmt=$conn->prepare($sql);
$stmt->bind_param('ss',$txtAccount, $txtPassword);
$stmt->execute();
$stmt->bind_result($account, $password);
while($stmt->fetch()){
	echo $account.",".$password."<br>";
}
$conn->close();

取得資料筆數

若要取得$stmt->bind_result()的筆數, 可使用get_result()轉換成result, 再由$result->num_rows得到筆數

 $stmt->execute();
 $stmt->bind_result($account, $password);
 $result=$stmt->get_result();
 echo "總筆數 : ".$result->num_rows;
 $conn->close();

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *