0からHEROへのPHPのバックエンド操作( pt . 2変数とユーザ入力を渡す)
12965 ワード
ここでは、単純なバックエンド操作を行うPHPスクリプトを作りました.
パート2では、ユーザー入力を取得し、バックエンドスクリプトに渡すことによってカスタマイズ可能なバックエンド操作を実行するPHPスクリプトを作ります
始めましょう!
まず、Aを受け入れるフォームを作りましょう
最初に 次に 最後に、このexec関数の出力を
ここで魔法が起こる場所です
一つの大きな問題は、
PythonはPHP変数をどのように扱えますか
回答:使用
お見せしましょう
覚えておいてください.
次に、指定されたURLのウェブページ内のテキストコンテンツをscrapeしたいタグを定義するとき、我々はコールします
ノードでも同様です.以下のようなJS :
結果PHP
完全なコード:
インデックス.PHP
これらのフォームパラメータは
タグパラメータを
これで実験することができます!
これで、バックエンド操作を実行しようとすると、ユーザーカスタマイズ可能なバックエンド操作をプロジェクトとPHPスクリプトに実行する方法を実装できます.
Part 3は、PHPでより複雑な、メモリと時間集約バックエンドの操作について学ぶために周り!
畢子👋
パート2では、ユーザー入力を取得し、バックエンドスクリプトに渡すことによってカスタマイズ可能なバックエンド操作を実行するPHPスクリプトを作ります
始めましょう!
まず、Aを受け入れるフォームを作りましょう
url
とtag
パラメータ<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Simple operations</title>
</head>
<body>
<form method="post" action="results.php">
url: <input type="text" name="url"><br>
tag: <input type="text" name="tag"><br>
<button type="submit" >Submit</button>
</form>
</body>
</html>
これらのパラメータが受け入れられると、results.php
, 次のようになります.<?php
$url = $_POST["url"];
$tag = $_POST["tag"];
$output = exec("python3 op1.py $url $tag");
echo("<h1>$output</h1>");
?>
何が起こっているのですか.results.php
定義$url
and $tag
変数は、以前に作成した形式で渡されたものとして使用します.op1.py
使用exec function とパス$url
and $tag
変数op1.py
. <h1>
タグ.ここで魔法が起こる場所です
results.php
パス$url
and $tag
変数op1.py
, Pythonスクリプトを実行し、出力を返します.一つの大きな問題は、
PythonはPHP変数をどのように扱えますか
回答:使用
sys
図書館.お見せしましょう
import sys
import requests
from bs4 import BeautifulSoup
url=sys.argv[1]
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
element = soup.find('body').find(sys.argv[2])
print(element)
これはHTMLスクリプトのようなウェブページをこするPythonスクリプトですh1
div
and p
, そして、ウェブページの中で指定されたHTMLタグの最初の発生の範囲内でテキスト内容を出力します.覚えておいてください.
results.php
最初に$url
変数$tag
変数を定義します.url
Pythonスクリプトの変数sys.argv[1]
順番にPHPスクリプトで渡された最初の変数を取得します.$url
変数.次に、指定されたURLのウェブページ内のテキストコンテンツをscrapeしたいタグを定義するとき、我々はコールします
sys.argv[2]
で指定したresults.php
, これは$tag
変数.ノードでも同様です.以下のようなJS :
結果PHP
<?php
$url = $_POST["url"];
$tag = $_POST["tag"];
$output = exec("url=$url tag=$tag node op1.js");
echo("<h1>$output</h1>");
?>
OP 1jsconsole.log('URL: ' + process.env.url + ' | tag: ' + process.env.tag)
結果完全なコード:
インデックス.PHP
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Simple operations</title>
</head>
<body>
<form method="post" action="results.php">
url: <input type="text" name="url"><br>
tag: <input type="text" name="tag"><br>
<button type="submit" >Submit</button>
</form>
</body>
</html>
結果PHP<?php
$url = $_POST["url"];
$tag = $_POST["tag"];
$output = exec("python3 op1.py $url $tag");
echo("<h1>$output</h1>");
?>
OP 1パイimport sys
import requests
from bs4 import BeautifulSoup
url=sys.argv[1]
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
element = soup.find('body').find(sys.argv[2])
print(element)
プロジェクトのディレクトリに端末を開くとphp -S localhost:8000
ブラウザでそれぞれのURLを開きます.これらのフォームパラメータは
results.php
次に、ユーザがresults.php
それから、それらのパラメータを取りますop1.py
, それぞれのPythonスクリプトを実行し、出力を<h1>
この場合、「PHPチュートリアル」のタグ.タグパラメータを
p
:op1.py
次に、最初のscrape<p>
指定したURLのタグこれで実験することができます!
これで、バックエンド操作を実行しようとすると、ユーザーカスタマイズ可能なバックエンド操作をプロジェクトとPHPスクリプトに実行する方法を実装できます.
Part 3は、PHPでより複雑な、メモリと時間集約バックエンドの操作について学ぶために周り!
畢子👋
Reference
この問題について(0からHEROへのPHPのバックエンド操作( pt . 2変数とユーザ入力を渡す)), 我々は、より多くの情報をここで見つけました https://dev.to/code_jedi/backend-operations-in-php-from-0-to-hero-pt-2-passing-variables-and-user-input-23giテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol