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 " <==bingo";
break;
}
else if ($guess<$password)
$min=$guess;
else
$max=$guess;
echo " 介於 $min ~ $max 之間";
$index++;
echo "<br>";
}
?>
Laravel Composer
先下載 Composer 進行套件管理, 下載完後進行安裝
下載Laravel
- composer global require “laravel/installer”
- 環境變數設定 D:\server\cms\laravel\vendor\bin
- 在cmd模式下, 將目錄移到server, 下達 laravel new 資料夾
- 將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();
