Linux top 指令用法範例

本篇 ShengYu 介紹 Linux top 指令用法,在 Linux 系統中,行程管理是系統管理的一個重要方面。要監視系統中正在執行的行程以及了解系統資源的使用情況,我們可以使用 top 指令。top 是一個功能強大的工具,它能夠動態顯示系統中執行的行程以及相關的系統資源資訊。在本文中,我們將深入探討 top 指令的使用,包括基本用法、常見用法和一些進階技巧。

基本用法

首先,讓我們來了解 top 指令的基本用法。要啟動 top,只需在終端中輸入以下指令:

1
top

這將顯示一個動態更新的行程清單,包括每個行程的 PID、使用者、CPU 使用率、記憶體使用量等資訊。透過 top,您可以快速了解系統中的行程情況,並及時發現可能存在的性能問題。

常見用法

top 指令顯示特定數量的行程,用法如下,

1
top -n 5

這將顯示前五個 CPU 使用率最高的行程,讓您能夠快速關注系統中占用 CPU 資源較多的行程。

top 指令顯示特定使用者的行程,用法如下,

1
top -u username

這將僅顯示屬於指定使用者的行程。將 username 替換為要查詢的使用者名。

進階用法

top 指令顯示特定行程的詳細資訊,用法如下,

1
top -p PID

這將僅顯示指定行程 ID(PID)的詳細資訊。將 PID 替換為要查詢的行程 ID。

top 指令實時更新顯示,用法如下,

1
top -d 5

這將每隔五秒更新一次終端中的行程清單。

top 指令顯示完整指令行,用法如下,

1
top -c

這將顯示每個行程的完整指令行,而不僅僅是行程名。

top 常用選項

以下是 top 指令的一些常用選項:
-d--delay:指定更新間隔時間,以秒為單位。例如 -d 5 將每隔五秒更新一次顯示。
-n--iterations:指定顯示行程資訊的次數。例如 -n 5 將顯示五次行程資訊後退出。
-p:僅顯示指定 PID 的行程資訊。這將幫助您精確地查找特定的行程。
-u--user:僅顯示指定使用者的行程資訊。
-c--command:顯示完整的指令行而不僅僅是行程名。
-m--sortmem:按記憶體使用量排序行程。
-k--sort-key:指定排序方式,例如 -k cpu 可以按 CPU 使用率排序。
-H:顯示所有執行緒而不是僅顯示行程。
-b:以批處理模式執行 top,這將使 top 將結果輸出到檔案中而不是顯示在終端中。這將方便您將 top 的輸出保存到檔案以便後續分析。
-o:指定排序方式,例如 -o %MEM 可以按記憶體使用率排序。這將有助於您快速定位記憶體占用量較高的行程。
-O:用於切換顯示模式。它允許你在不重新啟動 top 的情況下動態改變顯示的字段。當你使用 -O 選項時,top 會提示你輸入一個新的排序順序。例如,你可以使用 -O 選項來根據 CPU 使用情況、記憶體使用情況等重新排序行程清單。

這些選項能夠幫助使用者根據不同的需求來定制 top 指令的顯示方式,從而更有效地監視系統的執行狀態。

總結

top 指令是一個非常有用的工具,用於監視系統中正在執行的行程和系統資源的使用情況。透過了解其基本用法、其他常見用法和進階用法,使用者可以更好地了解系統的執行狀態,並進行性能優化和故障排除。無論是用於查看系統負載、查找系統中的性能瓶頸還是監控系統的執行情況,top 都是一個非常實用的指令。

以上就是 Linux top 指令用法範例的介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!

其它相關文章推薦
Linux 常用指令教學懶人包
Linux wget 下載檔案用法與範例
Linux sed 字串取代用法與範例
Linux find 尋找檔案/尋找資料夾用法與範例
Linux grep/ack/ag 搜尋字串用法與範例
Linux tee 同時螢幕標準輸出和輸出到檔案用法與範例
Linux xargs 參數清單轉換用法與範例
Linux tail 持續監看檔案輸出用法與範例
Linux du 查詢硬碟剩餘空間/資料夾容量用法與範例

C/C++ scanf 用法與範例

本篇 ShengYu 介紹 C/C++ scanf 用法與範例,在C/C++編程中,經常需要從使用者輸入中取得資料。而scanf函式正是這樣一種工具,它允許我們以格式化的方式從標準輸入流(通常是鍵盤)中讀取資料。本文將深入探討scanf函式的基本用法、各種用法以及一些注意事項,scanf 詳細用法範例請繼續往下閱讀。

C 語言要從標準輸入(stdin)讀取格式化輸入可以使用 scanf,要使用 scanf 的話需要引入的標頭檔 <stdio.h>,如果要使用 C++ 的標頭檔則是引入 <cstdio>
scanf 函式原型為

1
int scanf(const char * format, ...);

const char *format:這是一個格式字串,用於指定 scanf 函式應該如何解析輸入。它包含了要讀取的資料類型和格式的指示符,如 %d 表示一個整數,%f 表示一個浮點數,%s 表示一個字串等等。格式字串中的空格用於指示 scanf 在輸入中跳過空格、\t定位字元、換行字元等空白字元。

...:這是一個變參列表,用於接收 scanf 函式讀取的輸入值。根據格式字串中指定的格式,scanf 函式將從標準輸入中讀取資料並根據各個格式指示符進行解析,將解析的值儲存到相對應的變數中。注意,這些變數必須與格式字串中的格式指示符相對應,否則 scanf 函式的行為將是未定義的,可能會導致錯誤。

scanf 函式透過解析格式字串從標準輸入中讀取資料,並將其儲存到指定的變數中。

C/C++ scanf 基本用法

C/C++ scanf函式的基本用法如下,例如,要從使用者輸入中讀取一個整數,可以使用以下程式碼:

1
2
int num;
scanf("%d", &num);

這將提示使用者輸入一個整數,然後將輸入的值儲存在num變數中。需要注意的是,%d是格式說明符,用於指示scanf函式應該讀取一個整數。在格式字串中,%d表示要讀取一個十進位整數。如果輸入的內容不是一個整數,則會導致錯誤或未定義的行為。

另外,每個scanf呼叫後面應該緊跟一個檢查輸入是否成功的程式碼。例如,可以使用scanf的回傳值來檢查是否成功讀取了一個值:

1
2
3
4
5
if (scanf("%d", &num) == 1) {
// 輸入成功
} else {
// 輸入失敗
}

這樣可以確保程式在無效輸入時能夠正確處理。

C/C++ scanf 各種用法與範例

scanf函式不僅可以讀取整數,還可以讀取其他類型的資料,如浮點數、字元和字串。以下是一些常見的用法和範例:

1. scanf 讀取浮點數(float

1
2
float num;
scanf("%f", &num);

這將從標準輸入中讀取一個浮點數,並將其儲存在num變數中。

2. scanf 讀取浮點數(double

1
2
double num;
scanf("%lf", &num);

這將從標準輸入中讀取一個浮點數,並將其儲存在num變數中。需要注意的是,對於double類型,格式說明符為%lf

3. scanf 讀取長整型(long

1
2
long num;
scanf("%ld", &num);

這將從標準輸入中讀取一個長整型數,並將其儲存在num變數中。需要注意的是,對於long類型,格式說明符為%ld

4. scanf 讀取字元

1
2
char ch;
scanf("%c", &ch);

這將從標準輸入中讀取一個字元,並將其儲存在ch變數中。

5. scanf 讀取字串

1
2
char str[100];
scanf("%s", str);

這將從標準輸入中讀取一個字串,並將其儲存在str陣列中。需要注意的是,%s格式說明符會讀取字串直到遇到空白字元(空格、定位字元、換行字元等)為止。

6. scanf 讀取多個值

1
2
int a, b;
scanf("%d %d", &a, &b);

這將從標準輸入中讀取兩個整數,並將它們儲存在ab變數中。多個格式說明符可以用空格、定位字元或換行字元分隔。

scanf Format 參數說明

在 C 語言中,格式指示符(Format specifiers)是用於指定輸入和輸出的格式的特殊字元序列。當你使用像 printfscanf 這樣的函式時,你需要使用格式指示符來告訴函式應該如何解釋你提供的資料。

一些常見的格式指示符包括:

  • %d:用於打印或讀取整數。
  • %f:用於打印或讀取浮點數。
  • %s:用於打印或讀取字串。
  • %c:用於打印或讀取單個字元。
  • %lf:用於打印或讀取 double 型資料。
  • %x:用於打印或讀取十六進位整數。

這些格式指示符告訴函式在處理輸入時應該使用的資料類型,以及在輸出時應該以什麼格式顯示資料。當你使用 printf 時,你提供的內容將根據這些格式指示符進行格式化並輸出到終端或檔案。而當你使用 scanf 時,你提供的格式字串中的格式指示符將告訴函式如何解析標準輸入中的資料。

C/C++ scanf 注意事項

在使用scanf函式時,需要注意以下幾點:

  • 格式說明符與輸入資料類型必須對應,否則會導致錯誤或未定義的行為。
  • 每個scanf呼叫後都應該檢查輸入是否成功,以確保程式能夠正確處理無效輸入。
  • scanf函式對輸入的資料沒有類型檢查,因此輸入錯誤類型的資料可能導致程式出錯或產生未定義的行為。

結語

透過本文的介紹,讀者應該對scanf函式有了更深入的了解。scanf函式作為C++中用於從標準輸入讀取格式化資料的重要工具,可以幫助我們更方便地與使用者進行互動,從而編寫出更靈活、強大的程式。然而,在使用scanf函式時需要謹慎,避免出現錯誤。希望本文對讀者在C++編程中使用scanf函式有所幫助。

以上就是 C/C++ scanf 的用法與範例介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!

其它相關文章推薦
如果你想學習 C++ 相關技術,可以參考看看下面的文章,
C/C++ 新手入門教學懶人包
C/C++ strcpy 用法與範例
C/C++ strcmp 用法與範例
C/C++ strcat 用法與範例
C/C++ strstr 用法與範例
C/C++ strtok 用法與範例

如何使用iPerf進行網路性能測試的完整指南

本篇 ShengYu 介紹 iPerf 進行網路性能測試,iPerf是一款流行的網路性能測試工具,可以幫助使用者測量網路帶寬和質量。無論你是網路管理員還是IT愛好者,掌握iPerf的使用方法都能讓你更好地了解網路狀況。本文將詳細介紹如何安裝和使用iPerf進行網路性能測試。

1. 安裝iPerf

在不同平台上的安裝方式如下:

  • Linux:
    使用包管理工具安裝。對於Debian或Ubuntu系統,輸入以下指令:

    1
    sudo apt-get install iperf3

    對於CentOS或RHEL系統,使用以下指令:

    1
    sudo yum install iperf3
  • Windows:
    官方網站下載可執行檔案,然後解壓到合適的位置。

  • macOS:
    使用Homebrew安裝,輸入以下指令:

    1
    brew install iperf3

2. 啟動iPerf伺服器

在你希望進行測試的目標機器上,打開指令行並執行以下指令:

1
iperf3 -s

這將啟動iPerf伺服器,預設監聽在連接埠5201。

3. 執行iPerf客戶端

在另一台機器上打開指令行,並執行以下指令:

1
iperf3 -c <伺服器IP>

<伺服器IP> 替換為iPerf伺服器所在機器的IP地址。這將進行一個預設10秒鐘的帶寬測試,並顯示結果。

4. 其他常用選項

根據需要,你可以使用以下選項來調整測試參數:

  • 指定測試時間:
    如果你希望測試時間長於或短於預設的10秒,使用以下指令:

    1
    iperf3 -c <伺服器IP> -t 30

    這將進行30秒的測試。

  • 使用UDP模式:
    如果需要測試UDP性能,使用以下指令:

    1
    iperf3 -c <伺服器IP> -u

    這將使用UDP協定進行測試。

  • 指定並行連接數:
    為了模擬多個並行連接,使用以下指令:

    1
    iperf3 -c <伺服器IP> -P 5

    這將開啟5個並行流來進行測試。

5. 查看測試結果

測試完成後,iPerf客戶端會顯示詳細的結果,包括傳輸的總資料量、平均帶寬以及丟包率(在UDP模式下)。這些資料可以幫助你評估網路的性能和穩定性。

結語

iPerf是一個強大的工具,可以幫助使用者深入了解網路性能。透過簡單的安裝和設定,你可以輕鬆進行各種網路測試。希望這篇指南能夠幫助你更好地使用iPerf來測試和優化你的網路。

以上就是 iPerf 介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!

如何在 PHP 中實現上傳檔案並儲存到 MySQL 資料庫

本篇 ShengYu 介紹 PHP 檔案上傳儲存到 MySQL 資料庫範例,在現代網頁應用中,檔案上傳是一個常見的需求。無論是用於使用者上傳圖片、文件,還是其他類型的檔案,掌握這一技術都非常有幫助。在這篇文章中,我們將介紹如何在 PHP 中實現檔案上傳並將其儲存到 MySQL 資料庫中。

步驟一:建立資料庫與資料表

首先,我們需要建立一個資料庫和一個用來儲存檔案資訊的資料表。以下是 SQL 語句:

1
2
3
4
5
6
7
8
9
CREATE DATABASE file_uploads;
USE file_uploads;

CREATE TABLE uploads (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
type VARCHAR(50),
data LONGBLOB
);

上述語句建立了一個名為 file_uploads 的資料庫,並在其中建立了一個名為 uploads 的資料表,用於儲存檔案的 ID、名稱、類型和資料。

步驟二:建立 HTML 表單

接下來,我們需要一個 HTML 表單,讓使用者可以選擇並上傳檔案。以下是表單的範例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>File Upload</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<label for="file">選擇檔案:</label>
<input type="file" name="file" id="file">
<input type="submit" value="上傳">
</form>
</body>
</html>

這個表單使用 POST 方法並設定了 enctype="multipart/form-data",以便能夠處理檔案上傳。

步驟三:處理上傳的檔案並儲存到 MySQL

最後,我們需要一個 PHP 腳本來處理上傳的檔案並將其儲存到 MySQL 資料庫中。以下是 upload.php 的範例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "file_uploads";

// 建立連接
$conn = new mysqli($servername, $username, $password, $dbname);

// 檢查連接
if ($conn->connect_error) {
die("連接失敗: " . $conn->connect_error);
}

if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_FILES["file"])) {
// 取得檔案資訊
$fileName = $_FILES["file"]["name"];
$fileType = $_FILES["file"]["type"];
$fileData = file_get_contents($_FILES["file"]["tmp_name"]);

// 準備 SQL 語句
$stmt = $conn->prepare("INSERT INTO uploads (name, type, data) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $fileName, $fileType, $fileData);

// 執行 SQL 語句
if ($stmt->execute()) {
echo "檔案上傳成功";
} else {
echo "檔案上傳失敗: " . $stmt->error;
}

// 關閉語句與連接
$stmt->close();
}

$conn->close();
?>

總結

以上步驟詳細介紹了如何在 PHP 中實現檔案上傳並將其儲存到 MySQL 資料庫中。透過建立資料表、設計上傳表單以及編寫處理檔案上傳的 PHP 腳本,我們可以輕鬆地完成這一功能。希望這篇文章對你有所幫助!

以上就是 PHP 檔案上傳儲存到 MySQL 資料庫範例介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!

其它相關文章推薦
如果你想學習 PHP 相關技術,可以參考看看下面的文章,
如何使用 PHP 上傳檔案:步驟與範例指南
PHP 和 PDO 進行資料庫操作
PHP 執行發生錯誤在 Chrome/Firefox 上顯示 Error 500,要怎麼讓 PHP 顯示錯誤
PHP實現圖片上傳與顯示功能的完整指南
如何使用 PHP 上傳圖片儲存到 MySQL 資料庫並顯示圖片

如何使用 PHP 上傳檔案:步驟與範例指南

本篇 ShengYu 介紹 PHP 檔案上傳範例,在現代網頁應用中,檔案上傳是常見且必要的功能之一。本文將為您介紹如何使用 PHP 實現檔案上傳功能,並提供一個完整的範例,幫助您快速上手。

步驟一:建立 HTML 表單

首先,我們需要一個 HTML 表單讓使用者選擇檔案並送出。以下是一個簡單的 HTML 表單範例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>File Upload</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<label for="fileToUpload">Select file to upload:</label>
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload File" name="submit">
</form>
</body>
</html>

這個表單中包含一個檔案選擇器 (<input type="file">) 和一個送出按鈕。enctype="multipart/form-data" 是必須的,這告訴瀏覽器如何編碼表單資料。

步驟二:處理檔案上傳的 PHP 腳本

接下來,我們需要一個 PHP 腳本來處理表單送出並保存上傳的檔案。以下是 upload.php 的範例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$target_dir = "uploads/"; // 設定上傳目錄
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$fileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));

// 檢查是否為實際檔案還是偽造的
if (isset($_POST["submit"])) {
$check = filesize($_FILES["fileToUpload"]["tmp_name"]);
if ($check !== false) {
echo "File is valid - " . $check . " bytes.";
$uploadOk = 1;
} else {
echo "File is not valid.";
$uploadOk = 0;
}
}

// 檢查檔案是否已存在
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}

// 檢查檔案大小
if ($_FILES["fileToUpload"]["size"] > 5000000) { // 限制檔案大小為 5MB
echo "Sorry, your file is too large.";
$uploadOk = 0;
}

// 限制檔案類型
$allowed_types = array("txt", "zip", "7z");
if (!in_array($fileType, $allowed_types)) {
echo "Sorry, only TXT, ZIP & 7Z files are allowed.";
$uploadOk = 0;
}

// 檢查 $uploadOk 是否為 0
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file " . htmlspecialchars(basename($_FILES["fileToUpload"]["name"])) . " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
}
?>

說明

  1. 表單設定<form> 標籤中的 enctype="multipart/form-data" 是必須的,這告訴瀏覽器如何編碼表單資料。
  2. $_FILES 變數$_FILES 是一個全域變數,用來保存上傳的檔案資訊,包括檔名、類型、臨時檔案名、錯誤和大小等。
  3. 檔案驗證:在實際上傳檔案之前,腳本會進行一系列檢查,包括檔案類型、大小和是否已存在等。

結論

透過以上步驟,您可以輕鬆實現 PHP 的檔案上傳功能。這個範例提供了一個基本的框架,您可以根據實際需求進一步擴展和修改。例如,新增更多的檔案類型支持、更嚴格的檔案驗證邏輯等。

以上就是 PHP PHP 檔案上傳範例介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!

其它相關文章推薦
如果你想學習 PHP 相關技術,可以參考看看下面的文章,
如何在 PHP 中實現上傳檔案並儲存到 MySQL 資料庫
PHP 和 PDO 進行資料庫操作
PHP 執行發生錯誤在 Chrome/Firefox 上顯示 Error 500,要怎麼讓 PHP 顯示錯誤
PHP實現圖片上傳與顯示功能的完整指南
如何使用 PHP 上傳圖片儲存到 MySQL 資料庫並顯示圖片

如何使用 PHP 上傳圖片儲存到 MySQL 資料庫並顯示圖片

本篇 ShengYu 介紹 PHP 圖片上傳儲存到 MySQL 資料庫範例,在現代網頁開發中,圖片上傳和顯示是非常常見的功能。本文將詳細介紹如何使用 PHP 上傳圖片並將其儲存到 MySQL 資料庫中,並從資料庫中檢索並顯示圖片的完整流程。這個教程將幫助您輕鬆實現這一功能。

步驟 1:建立 MySQL 資料庫和表

首先,我們需要建立一個資料庫和一個表來儲存圖片的相關資訊。以下是 SQL 語句:

1
2
3
4
5
6
7
8
9
CREATE DATABASE image_upload;

USE image_upload;

CREATE TABLE images (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
image LONGBLOB NOT NULL
);

步驟 2:建立 HTML 表單

接下來,我們需要建立一個 HTML 表單,讓使用者可以選擇並上傳圖片。這個表單將使用 POST 方法送出圖片。

1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html>
<html>
<head>
<title>Upload Image</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="image" required>
<input type="submit" name="upload" value="Upload">
</form>
</body>
</html>

步驟 3:處理圖片上傳的 PHP 程式碼 (upload.php)

我們需要編寫一個 PHP 腳本來處理表單送出,將圖片儲存到 MySQL 資料庫中。以下是 upload.php 的程式碼:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "image_upload";

// 建立連接
$conn = new mysqli($servername, $username, $password, $dbname);

// 檢查連接
if ($conn->connect_error) {
die("連接失敗: " . $conn->connect_error);
}

if (isset($_POST['upload'])) {
// 取得圖片名稱
$imageName = $_FILES['image']['name'];
// 取得圖片的臨時路徑
$imageTmpName = $_FILES['image']['tmp_name'];

// 打開圖片檔案
$imageData = file_get_contents($imageTmpName);

// 準備 SQL 語句
$sql = "INSERT INTO images (name, image) VALUES (?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("sb", $imageName, $imageData);
$stmt->send_long_data(1, $imageData);

// 執行 SQL 語句
if ($stmt->execute()) {
echo "圖片上傳成功!";
} else {
echo "圖片上傳失敗: " . $stmt->error;
}

$stmt->close();
}

$conn->close();
?>

步驟 4:顯示圖片的 PHP 程式碼 (display.php)

最後,我們需要一個 PHP 腳本來從資料庫中檢索並顯示圖片。以下是 display.php 的程式碼:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "image_upload";

// 建立連接
$conn = new mysqli($servername, $username, $password, $dbname);

// 檢查連接
if ($conn->connect_error) {
die("連接失敗: " . $conn->connect_error);
}

// 取得圖片資料
$sql = "SELECT id, name, image FROM images";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "<div>";
echo "<h3>" . $row['name'] . "</h3>";
echo '<img src="data:image/jpeg;base64,' . base64_encode($row['image']) . '"/>';
echo "</div>";
}
} else {
echo "沒有圖片。";
}

$conn->close();
?>

總結

以上步驟詳細介紹了如何使用 PHP 上傳圖片並將其儲存到 MySQL 資料庫中,以及如何從資料庫中檢索並顯示圖片。透過這個教程,您可以輕鬆地在您的網頁應用中實現圖片上傳和顯示的功能。

以上就是 PHP 圖片上傳儲存到 MySQL 資料庫範例介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!

其它相關文章推薦
如果你想學習 PHP 相關技術,可以參考看看下面的文章,
PHP實現圖片上傳與顯示功能的完整指南
PHP 和 PDO 進行資料庫操作
PHP 執行發生錯誤在 Chrome/Firefox 上顯示 Error 500,要怎麼讓 PHP 顯示錯誤
如何使用 PHP 上傳檔案:步驟與範例指南
如何在 PHP 中實現上傳檔案並儲存到 MySQL 資料庫

2024 小米電視盒子S 2代 推薦

在數位時代,我們對於娛樂和資訊的需求越來越高,而智慧電視盒成為了許多家庭的必備設備之一。但在眾多品牌和產品中,我為什麼選擇小米電視盒呢?本文將為你介紹小米電視盒的優勢和特色,以及我的使用心得,如果你想將普通電視升級為智慧電視,那麼可以先考慮小米電視盒。

Read More

PHP實現圖片上傳與顯示功能的完整指南

本篇 ShengYu 介紹 PHP 圖片上傳範例,在現代網頁應用程式中,圖片上傳是一個常見且重要的功能。無論是社交媒體平台還是電子商務網站,讓使用者能夠輕鬆上傳並顯示圖片是一個基本需求。在這篇文章中,我們將詳細介紹如何使用PHP來實現圖片上傳並顯示的功能。

1. 建立HTML表單

首先,我們需要一個HTML表單,讓使用者可以選擇並上傳圖片。這個表單應該包含一個檔案輸入欄和一個送出按鈕,並且要設定enctype="multipart/form-data"屬性以支援檔案上傳。

1
2
3
4
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="image">
<input type="submit" value="Upload Image" name="submit">
</form>

2. 處理圖片上傳的PHP腳本

當使用者送出表單後,我們需要一個PHP腳本來處理上傳的圖片。在這裡,我們將建立一個名為upload.php的檔案,來處理檔案上傳的邏輯。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
// 允許上傳的圖片類型
$allowed_types = array('image/jpeg', 'image/png', 'image/gif');

// 上傳資料夾
$upload_dir = 'uploads/';

if ($_FILES['image']) {
// 檢查檔案類型是否允許
if (in_array($_FILES['image']['type'], $allowed_types)) {
$upload_file = $upload_dir . basename($_FILES['image']['name']);

// 嘗試將檔案從臨時位置移動到上傳資料夾
if (move_uploaded_file($_FILES['image']['tmp_name'], $upload_file)) {
echo "檔案上傳成功.";
} else {
echo "上傳過程中出現問題.";
}
} else {
echo "只允許上傳 JPG, JPEG, PNG 和 GIF 類型的圖片.";
}
}
?>
  • $_FILES['image']包含了上傳檔案的相關資訊,例如檔案名、臨時檔案路徑等。
  • move_uploaded_file()函式用於將臨時檔案移動到指定的上傳資料夾。
  • 透過in_array()函式檢查檔案類型是否在允許的類型清單中。

3. 顯示上傳的圖片

最後,我們需要在頁面上顯示剛剛上傳的圖片。我們可以在同一個或另一個PHP頁面中,透過遍歷上傳資料夾來顯示所有已上傳的圖片。

1
2
3
4
5
6
7
8
<?php
$upload_dir = 'uploads/';
$images = glob($upload_dir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);

foreach ($images as $image) {
echo '<img src="' . $image . '" alt="Uploaded Image">';
}
?>

glob()函式是用於取得上傳資料夾中所有符合指定副檔名的圖片檔案。之後使用<img>標籤將每張圖片顯示出來。

注意事項

  • 權限設定:確保上傳資料夾有足夠的權限,允許PHP腳本寫入檔案。
  • 安全性:考慮安全性問題,例如檔案類型驗證和檔案名處理,防止潛在的安全漏洞。
  • 擴展功能:根據具體需求,可以進一步新增檔案大小限制、重命名檔案等功能。

透過以上步驟,你應該能夠輕鬆實現圖片上傳並顯示的功能。

以上就是 PHP 圖片上傳範例介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!

其它相關文章推薦
如果你想學習 PHP 相關技術,可以參考看看下面的文章,
如何使用 PHP 上傳圖片儲存到 MySQL 資料庫並顯示圖片
PHP 和 PDO 進行資料庫操作
PHP 執行發生錯誤在 Chrome/Firefox 上顯示 Error 500,要怎麼讓 PHP 顯示錯誤
如何使用 PHP 上傳檔案:步驟與範例指南
如何在 PHP 中實現上傳檔案並儲存到 MySQL 資料庫

2024年 報稅綜合所得課稅級距

去年政府提出一系列的「所得稅新制」改動,但生效日其實是2025年的申報期間,並不適用於2024今年唷!

綜所稅每年5/1-5/31申報的是上一個年度的全年總所得,所以今年113(2024)年5月是要申報「112(2023)年度綜合所得稅」。

Read More

C++ 中的異常處理:try 和 catch 的基本用法

本篇 ShengYu 介紹 C++ 中的異常處理:try 和 catch 的基本用法,在 C++ 編程中,處理異常是確保程式穩定執行的關鍵部分。這篇文章將介紹如何使用 trycatch 語句來實現異常處理,讓您的程式碼在面臨不可預見的錯誤時能夠穩定執行。

基本語法

在 C++ 中,異常處理主要包括三個部分:try 塊、throw 語句和 catch 塊。

  1. try 塊:包含可能引發異常的程式碼。
  2. throw 語句:用來引發異常。
  3. catch 塊:用來捕捉並處理異常。

範例

以下是一個簡單的例子,展示了如何在 C++ 中使用 trycatch 來處理異常。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;

int main() {
try {
// 可能會引發異常的程式碼
int a = 10;
int b = 0;
if (b == 0) {
throw "Division by zero!"; // 引發異常
}
int c = a / b;
cout << c << endl;
} catch (const char* msg) {
// 處理異常
cout << "Caught an exception: " << msg << endl;
}

return 0;
}
  • try 塊:在 try 塊內,我們放置了可能會引發異常的程式碼。在這個例子中,檢查分母是否為 0,如果是 0,就引發一個異常。
  • throw 語句:當條件成立時,throw 語句引發一個異常。在這裡,我們引發一個 C 字串類型的異常。
  • catch 塊catch 塊用來捕捉和處理異常。在這個例子中,我們捕捉到類型為 const char* 的異常,並輸出異常資訊。

多個 catch 塊

你可以有多個 catch 塊來捕捉不同類型的異常:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;

int main() {
try {
int x = -1;
if (x < 0) {
throw x;
}
} catch (int e) {
cout << "Caught an exception of type int: " << e << endl;
} catch (...) {
cout << "Caught an unknown exception." << endl;
}

return 0;
}

在這個例子中,第一個 catch 塊捕捉到整數類型的異常,第二個 catch 塊使用省略號(...)來捕捉所有其他類型的異常。

注意事項

  1. 異常類型:可以引發和捕捉任何類型的異常(如基本類型、類型物件、指標等),但建議使用類來表示異常,以便於擴展和管理。
  2. 標準異常類:C++ 標準庫提供了一些常見的異常類(如 std::exception 及其派生類),可以直接使用,詳細範例與深入介紹可以看這篇

總結

C++ 中的異常處理機制是確保程式穩定執行的重要工具。透過適當使用 trythrowcatch,您可以有效地管理程式中的異常情況,從而提高程式碼的健壯性和可維護性。

以上就是 C++ 中的異常處理:try 和 catch 的基本用法介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!

其它相關文章推薦
如果你想學習 C++ 相關技術,可以參考看看下面的文章,
C/C++ 新手入門教學懶人包
這篇