使用者:游士賢:修訂版本之間的差異

出自福留子孫
跳轉到: 導覽搜尋
我的地圖
 
(未顯示同用戶所作出之13次版本)
第 1 行: 第 1 行:
===安裝 jupyter ===
+
==php+python顯示於網頁==
*打開終端機,安裝jupyter指令:'''!pip install folium'''。(MAC 使用者不用加「!」)
+
===範例一、文字顯示===
*打開終端機,安裝jupyter指令:'''!pip install notebook'''。(MAC 使用者不用加「!」)
+
*說明:利用 php 讀取 python 檔案,並將文字顯示「Hello, world!」於頁面上。
*打開終端機,執行jupyter指令:'''jupyter notebook''',安裝完成 jupyter 將會開啟瀏覽器。<br/><img src='http://jendo.org/~游士賢/使用說明/jupyter/jupyter_初始介面.png' width='600px' />
+
*範例程式:[http://jendo.org/~游士賢/chatgcp/02 連結]
  
===使用方式:===
+
'''index.php,程式碼如下:'''
*如何新增 python 檔案。<br/><img src='http://jendo.org/~游士賢/使用說明/jupyter/jupyter_新增py.png' width='600px' />
+
<pre>
*程式碼編輯介面。<br/><img src='http://jendo.org/~游士賢/使用說明/jupyter/jupyter_程式碼編輯介面.png' width='600px' />
+
  
===我的地圖===
+
<!DOCTYPE html>
*應用 Python 讀取 csv<br/><img src='http://jendo.org/~游士賢/使用說明/jupyter/jupyter_顯示地標.png' width='600px' />
+
<html>
 +
<head>
 +
    <meta charset="UTF-8">
 +
    <title>PHP呼叫Python範例</title>
 +
</head>
 +
<body>
 +
<?php
 +
    $output = shell_exec('python word.py');    // 用 shell_exec 函式呼叫 Python 程式並取得輸出
 +
    echo "<pre>$output</ pre>";                // 將輸出作為純文本輸出到 HTML 頁面上
 +
?>
 +
</body>
 +
</html>
 +
 
 +
</pre>
 +
 
 +
'''word.py,程式碼如下:'''
 
<pre>
 
<pre>
import folium
+
print("Hello, world!")
import pandas as pd
+
</pre>
  
# 讀取 CSV 檔案
+
===範例二、兩數相加算術===
data = pd.read_csv("data.csv")
+
*說明:利用 php 讀取 python 檔案,並使用者將兩個數值填入並按計算,答案將顯示於網頁上。
 +
*範例程式:[http://jendo.org/~游士賢/chatgcp/03 連結]
  
# 連接 map
+
'''index.php,程式碼如下:'''
m = folium. Map (location= [data ['Latitude'].mean(), data['Longitude'].mean ()], zoom_start=14)
+
<pre>
 +
<!DOCTYPE html>
 +
<html>
 +
<head>
 +
<title>兩數相加算術範例</title>
 +
</head>
 +
<body>
 +
<h2>兩數相加算術</h2>
 +
<form method="POST">
 +
<label>請輸入第一個數字:</label>
 +
<input type="text" name="num1">
 +
<br><br>
 +
<label>請輸入第二個數字:</label>
 +
<input type="text" name="num2">
 +
<br><br>
 +
<input type="submit" name="submit" value="計算">
 +
</form>
 +
<?php
 +
if(isset($_POST['submit'])){
 +
$num1 = $_POST['num1'];
 +
$num2 = $_POST['num2'];
  
# 增加 markers
+
$python_path = "/usr/bin/python"; // 設定 Python 可執行文件的路徑
for i in range(0, len(data)):
+
$python_script = "calculate.py"; // 要執行的 Python 腳本路徑
    folium.Marker ([data.iloc [i]['Latitude'], data.iloc[i]['Longitude']], popup=data.iloc [i]['Name']).add_to (m)
+
  
# 展示在 map
+
// 執行 Python 腳本,並傳遞數字參數
m
+
$command = escapeshellcmd("$python_path $python_script $num1 $num2");
 +
$output = shell_exec($command);
 +
 
 +
echo "<p>答案:$output</p>"; // 在網頁上顯示 Python 腳本的輸出
 +
}
 +
?>
 +
</body>
 +
</html>
 
</pre>
 
</pre>
*如何變化標記:將標記改變成紅色圈。<br/><img src='http://jendo.org/~游士賢/使用說明/jupyter/jupyter_改變標記01.png' width='600px' />
+
 
 +
'''calculate.py,程式碼如下:'''
 
<pre>
 
<pre>
import folium
+
import sys
import pandas as pd
+
  
# 讀取 CSV 檔案
+
# 獲取從 PHP 傳遞的兩個數字參數
data = pd.read_csv("data.csv")
+
num1 = float(sys.argv[1])
 +
num2 = float(sys.argv[2])
  
# 連接 map
+
# 執行算術操作
m = folium. Map (location= [data ['Latitude'].mean(), data['Longitude'].mean ()], zoom_start=15)
+
result = num1 + num2
  
# 增加 markers
+
# 將結果返回給 PHP
for i in range(0, len(data)):
+
print(result)
 +
</pre>
 +
 
 +
==php+xml顯示於網頁==
 +
===範例一、已知兩數,應用php讀取xml數值===
 +
*說明:xml 檔案已存在兩位數「12」和「34」,應用php讀取xml檔,將答案將顯示於網頁上。
 +
*範例程式:[http://jendo.org/~游士賢/chatgcp/06 連結]
 +
 
 +
'''index.php,程式碼如下:'''
 +
<pre>
 +
<?php
 +
    // 讀取 XML 檔案
 +
    $xml = simplexml_load_file("numbers.xml");
 
      
 
      
     folium.CircleMarker ([data.iloc [i]['Latitude'], data.iloc[i]['Longitude']],
+
     // 取出兩個數字
     radius=5,
+
     $num1 = (int)$xml->number1;
     color='red',
+
     $num2 = (int)$xml->number2;
     fill=True,
+
      
     fi11_color='red',
+
     // 計算結果
     popup=data.iloc [i]['Name']).add_to (m)
+
     $result = $num1 + $num2;
 +
   
 +
    // 回傳結果
 +
    echo "$num1 + $num2 = $result";
 +
?>
 +
</pre>
  
# 展示在 map
+
'''numbers.xml,程式碼如下:'''
m
+
<pre>
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<numbers>
 +
    <number1>12</number1>
 +
    <number2>34</number2>
 +
</numbers>
 
</pre>
 
</pre>
*如何變化標記:將標記改變成藍色圈且放大。<br/><img src='http://jendo.org/~游士賢/使用說明/jupyter/jupyter_改變標記02.png' width='600px' />
+
 
 +
===範例二、未知兩數,應用php讀取xml數值===
 +
*說明:使用者自行輸入兩個數字進行加法運算,按下計算按鈕後,系統會顯示計算結果,同時將計算紀錄存入 XML 檔案中。
 +
*範例程式:[http://jendo.org/~游士賢/chatgcp/05 連結]
 +
 
 +
'''index.php,程式碼如下:'''
 
<pre>
 
<pre>
import folium
+
<!DOCTYPE html>
import pandas as pd
+
<html>
 +
<head>
 +
    <meta charset="UTF-8">
 +
    <title>PHP 結合 XML 的算術範例程式</title>
 +
</head>
 +
<body>
 +
    <h1>請輸入兩個數字進行運算</h1>
 +
    <form action="calculate.php" method="post">
 +
        <label for="num1">第一個數字:</label>
 +
        <input type="number" name="num1" id="num1"><br><br>
 +
        <label for="num2">第二個數字:</label>
 +
        <input type="number" name="num2" id="num2"><br><br>
 +
        <label for="operator">運算符號:</label>
 +
        <select name="operator" id="operator">
 +
            <option value="+">+</option>
 +
            <option value="-">-</option>
 +
        </select><br><br>
 +
        <input type="submit" value="計算">
 +
    </form>
 +
</body>
 +
</html>
 +
</pre>
  
# 讀取 CSV 檔案
+
'''calculate.php,程式碼如下:'''
data = pd.read_csv("data.csv")
+
<pre>
 +
<?php
 +
// 讀取 XML 檔案
 +
$xml = simplexml_load_file('result.xml');
  
# 連接 map
+
// 取得使用者輸入的數字和運算符號
m = folium. Map (location= [data ['Latitude'].mean(), data['Longitude'].mean ()], zoom_start=15)
+
$num1 = $_POST['num1'];
 +
$num2 = $_POST['num2'];
 +
$operator = $_POST['operator'];
  
# 增加 markers
+
// 計算結果
for i in range(0, len(data)):
+
if ($operator == '+') {
    folium.CircleMarker ([data.iloc [i]['Latitude'], data.iloc[i]['Longitude']],
+
     $result = $num1 + $num2;
    radius=8,
+
} else {
    color='blue',
+
     $result = $num1 - $num2;
     fill=True,
+
}
     fi11_color='blue',
+
    popup=data.iloc [i]['Name']).add_to (m)
+
  
# 展示在 map
+
// 建立新的計算紀錄
m
+
$calculation = $xml->addChild('calculation');
 +
$calculation->addChild('num1', $num1);
 +
$calculation->addChild('num2', $num2);
 +
$calculation->addChild('operator', $operator);
 +
$calculation->addChild('result', $result);
 +
 
 +
// 將結果存入 XML 檔案
 +
$xml->asXML('result.xml');
 +
 
 +
// 顯示計算結果
 +
echo "計算結果:$num1 $operator $num2 = $result";
 +
?>
 
</pre>
 
</pre>
*將程式轉換成網頁<br/><img src='http://jendo.org/~游士賢/使用說明/jupyter/jupyter_網頁儲存.png' width='600px' /><br/><br/><img src='http://jendo.org/~游士賢/使用說明/jupyter/jupyter_網頁.png' width='600px' />
+
 
 +
'''result.xml,程式碼如下:'''
 
<pre>
 
<pre>
import folium
+
<?xml version="1.0" encoding="UTF-8"?>
import pandas as pd
+
<calculations>
 +
</calculations>
 +
</pre>
  
# 讀取 CSV 檔案
+
==php+json顯示於網頁==
data = pd.read_csv("data.csv")
+
===範例一、使用者自行輸入兩個數字進行,加減法功能===
 +
*說明:使用者輸入的兩個數字和運算符號,然後進行加法或減法運算。計算結果存儲在一個 PHP 陣列中,並使用 PHP 內置的 json_encode 函數將其轉換為 JSON 格式的字串。最後,透過設定 Content-Type 為 application/json,回傳 JSON 格式的計算結果。
 +
*範例程式:[http://jendo.org/~游士賢/chatgcp/07 連結]
 +
 
 +
'''index.html,程式碼如下:'''
 +
<pre>
 +
<!DOCTYPE html>
 +
<html>
 +
<head>
 +
<meta charset="utf-8" />
 +
<title>加減法運算</title>
 +
</head>
 +
<body>
 +
<h1>加減法運算</h1>
 +
<form action="calculate.php" method="post">
 +
<p>
 +
<label for="num1">輸入第一個數字:</label>
 +
<input type="number" id="num1" name="num1" required>
 +
</p>
 +
<p>
 +
<label for="num2">輸入第二個數字:</label>
 +
<input type="number" id="num2" name="num2" required>
 +
</p>
 +
<p>
 +
<label for="operator">選擇運算符號:</label>
 +
<select id="operator" name="operator">
 +
<option value="+">+</option>
 +
<option value="-">-</option>
 +
</select>
 +
</p>
 +
<p>
 +
<input type="submit" value="計算">
 +
</p>
 +
</form>
 +
</body>
 +
</html>
 +
</pre>
 +
 
 +
'''calculate.php,程式碼如下:'''
 +
<pre>
 +
<?php
 +
// 取得使用者輸入的數字和運算符號
 +
$num1 = $_POST['num1'];
 +
$num2 = $_POST['num2'];
 +
$operator = $_POST['operator'];
  
# 連接 map
+
// 計算結果
m = folium. Map (location= [data ['Latitude'].mean(), data['Longitude'].mean ()], zoom_start=15)
+
if ($operator == '+') {
 +
    $result = $num1 + $num2;
 +
} else {
 +
    $result = $num1 - $num2;
 +
}
  
# 增加 markers
+
// 將計算結果存入 JSON 格式的字串
for i in range(0, len(data)):
+
$data = array(
     folium.CircleMarker ([data.iloc [i]['Latitude'], data.iloc[i]['Longitude']],
+
     'num1' => $num1,
    radius=8,
+
     'num2' => $num2,
     color='blue',
+
     'operator' => $operator,
    fill=True,
+
     'result' => $result
     fi11_color='blue',
+
);
     popup=data.iloc [i]['Name']).add_to (m)
+
$json = json_encode($data);
  
# 展示在 map
+
// 設定 Content-Type 為 JSON
m
+
header('Content-Type: application/json');
  
# 將 map 轉換成 網頁
+
// 回傳 JSON 格式的計算結果
m.save("index.html")
+
echo $json;
 +
?>
 
</pre>
 
</pre>

2023年3月15日 (三) 14:56的最新修訂版本

php+python顯示於網頁

範例一、文字顯示

  • 說明:利用 php 讀取 python 檔案,並將文字顯示「Hello, world!」於頁面上。
  • 範例程式:連結

index.php,程式碼如下:


<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>PHP呼叫Python範例</title>
</head>
<body>
<?php
    $output = shell_exec('python word.py');    // 用 shell_exec 函式呼叫 Python 程式並取得輸出
    echo "<pre>$output</ pre>";                // 將輸出作為純文本輸出到 HTML 頁面上
?>
</body>
</html>

word.py,程式碼如下:

print("Hello, world!")

範例二、兩數相加算術

  • 說明:利用 php 讀取 python 檔案,並使用者將兩個數值填入並按計算,答案將顯示於網頁上。
  • 範例程式:連結

index.php,程式碼如下:

<!DOCTYPE html>
<html>
<head>
	<title>兩數相加算術範例</title>
</head>
<body>
	<h2>兩數相加算術</h2>
	<form method="POST">
		<label>請輸入第一個數字:</label>
		<input type="text" name="num1">
		<br><br>
		<label>請輸入第二個數字:</label>
		<input type="text" name="num2">
		<br><br>
		<input type="submit" name="submit" value="計算">
	</form>
	<?php
		if(isset($_POST['submit'])){
			$num1 = $_POST['num1'];
			$num2 = $_POST['num2'];

			$python_path = "/usr/bin/python";	// 設定 Python 可執行文件的路徑
			$python_script = "calculate.py";	// 要執行的 Python 腳本路徑

			// 執行 Python 腳本,並傳遞數字參數
			$command = escapeshellcmd("$python_path $python_script $num1 $num2");
			$output = shell_exec($command);

			echo "<p>答案:$output</p>";		// 在網頁上顯示 Python 腳本的輸出
		}
	?>
</body>
</html>

calculate.py,程式碼如下:

import sys

# 獲取從 PHP 傳遞的兩個數字參數
num1 = float(sys.argv[1])
num2 = float(sys.argv[2])

# 執行算術操作
result = num1 + num2

# 將結果返回給 PHP
print(result)

php+xml顯示於網頁

範例一、已知兩數,應用php讀取xml數值

  • 說明:xml 檔案已存在兩位數「12」和「34」,應用php讀取xml檔,將答案將顯示於網頁上。
  • 範例程式:連結

index.php,程式碼如下:

<?php
    // 讀取 XML 檔案
    $xml = simplexml_load_file("numbers.xml");
    
    // 取出兩個數字
    $num1 = (int)$xml->number1;
    $num2 = (int)$xml->number2;
    
    // 計算結果
    $result = $num1 + $num2;
    
    // 回傳結果
    echo "$num1 + $num2 = $result";
?>

numbers.xml,程式碼如下:

<?xml version="1.0" encoding="UTF-8"?>
<numbers>
    <number1>12</number1>
    <number2>34</number2>
</numbers>

範例二、未知兩數,應用php讀取xml數值

  • 說明:使用者自行輸入兩個數字進行加法運算,按下計算按鈕後,系統會顯示計算結果,同時將計算紀錄存入 XML 檔案中。
  • 範例程式:連結

index.php,程式碼如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>PHP 結合 XML 的算術範例程式</title>
</head>
<body>
    <h1>請輸入兩個數字進行運算</h1>
    <form action="calculate.php" method="post">
        <label for="num1">第一個數字:</label>
        <input type="number" name="num1" id="num1"><br><br>
        <label for="num2">第二個數字:</label>
        <input type="number" name="num2" id="num2"><br><br>
        <label for="operator">運算符號:</label>
        <select name="operator" id="operator">
            <option value="+">+</option>
            <option value="-">-</option>
        </select><br><br>
        <input type="submit" value="計算">
    </form>
</body>
</html>

calculate.php,程式碼如下:

<?php
// 讀取 XML 檔案
$xml = simplexml_load_file('result.xml');

// 取得使用者輸入的數字和運算符號
$num1 = $_POST['num1'];
$num2 = $_POST['num2'];
$operator = $_POST['operator'];

// 計算結果
if ($operator == '+') {
    $result = $num1 + $num2;
} else {
    $result = $num1 - $num2;
}

// 建立新的計算紀錄
$calculation = $xml->addChild('calculation');
$calculation->addChild('num1', $num1);
$calculation->addChild('num2', $num2);
$calculation->addChild('operator', $operator);
$calculation->addChild('result', $result);

// 將結果存入 XML 檔案
$xml->asXML('result.xml');

// 顯示計算結果
echo "計算結果:$num1 $operator $num2 = $result";
?>

result.xml,程式碼如下:

<?xml version="1.0" encoding="UTF-8"?>
<calculations>
</calculations>

php+json顯示於網頁

範例一、使用者自行輸入兩個數字進行,加減法功能

  • 說明:使用者輸入的兩個數字和運算符號,然後進行加法或減法運算。計算結果存儲在一個 PHP 陣列中,並使用 PHP 內置的 json_encode 函數將其轉換為 JSON 格式的字串。最後,透過設定 Content-Type 為 application/json,回傳 JSON 格式的計算結果。
  • 範例程式:連結

index.html,程式碼如下:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8" />
	<title>加減法運算</title>
</head>
<body>
	<h1>加減法運算</h1>
	<form action="calculate.php" method="post">
		<p>
			<label for="num1">輸入第一個數字:</label>
			<input type="number" id="num1" name="num1" required>
		</p>
		<p>
			<label for="num2">輸入第二個數字:</label>
			<input type="number" id="num2" name="num2" required>
		</p>
		<p>
			<label for="operator">選擇運算符號:</label>
			<select id="operator" name="operator">
				<option value="+">+</option>
				<option value="-">-</option>
			</select>
		</p>
		<p>
			<input type="submit" value="計算">
		</p>
	</form>
</body>
</html>

calculate.php,程式碼如下:

<?php
// 取得使用者輸入的數字和運算符號
$num1 = $_POST['num1'];
$num2 = $_POST['num2'];
$operator = $_POST['operator'];

// 計算結果
if ($operator == '+') {
    $result = $num1 + $num2;
} else {
    $result = $num1 - $num2;
}

// 將計算結果存入 JSON 格式的字串
$data = array(
    'num1' => $num1,
    'num2' => $num2,
    'operator' => $operator,
    'result' => $result
);
$json = json_encode($data);

// 設定 Content-Type 為 JSON
header('Content-Type: application/json');

// 回傳 JSON 格式的計算結果
echo $json;
?>