いくつかの単純な組み込みPHPをHTMLに書き込んでPythonスクリプトを実行します。このスクリプトは、HTMLフォームでの複数のファイル入力の可能性に基づいてスクリプトを複数回実行します。単体ではうまく動作しますが、複数のファイルを実行しているときにはそれを繰り返すように見えますが、Pythonスクリプトで受け取った変数は最初は間違っているようです。なぜこれをやっているのか分かりませんが、それははっきりと分かります。すべての助けに感謝します。exec()とPythonスクリプトに渡す変数の問題
$len = count($_FILES["inputFile"]["name"]);
echo "length";
echo $len;
for($i = 0; $i < $len; $i++){
$dataIn = $_FILES["inputFile"]["tmp_name"][$i];
$originalName = $_FILES["inputFile"]["name"][$i];
echo "TMP Name:";
echo $dataIn;
echo "OriginalName";
echo $originalName;
exec("python /home/will/public_html/OrderAnalyser.py '$dataIn' '$originalName' 2>&1",$output);
foreach ($output as $out){
echo $out;
echo "<br />";
}
}
出力は次のようになります。ここに見られるように、それは最初のファイル(micro_b001.json)で終了したら、それはmicro_b002上に移動する必要があり、
Executing...
length2TMP Name:/var/www/tmp/phpHzJFtQOriginalNamemicro_b001.jsonAnalysis Starting on file:
Input File: /var/www/tmp/phpHzJFtQ
Original Name: micro_b001.json
"nodeID":20,
firstNode:
20
Finished Finding Argument Order,
List is as follows:
['20', '21', '22', '23', '24']
Top Node is:
24
There is NO subargument of node:
24
Analysis Complete
TMP Name:/var/www/tmp/php9vQumSOriginalNamemicro_b002.jsonAnalysis Starting on file:
Input File: /var/www/tmp/phpHzJFtQ
Original Name: micro_b001.json
"nodeID":20,
firstNode:
20
Finished Finding Argument Order,
List is as follows:
['20', '21', '22', '23', '24']
Top Node is:
24
There is NO subargument of node:
24
Analysis Complete
Analysis Starting on file:
Input File: /var/www/tmp/php9vQumS
Original Name: micro_b002.json
"nodeID":20,
firstNode:
20
Finished Finding Argument Order,
List is as follows:
['20', '21', '22', '23', '24']
Top Node is:
22
20
is child of
22
21
is child of
22
Subargument of node:
22
is:
Post Order
There is NO subargument of node:
20
There is NO subargument of node:
21
Analysis Complete
Completed...
。 PHPのエコーは、PHPの変数が正しいことを示していますが、pythonスクリプトから見たプリントでは、最初の変数(micro_b001)から再び実行されていることがわかります。なぜこうなった?あなたが見ることができるように、何らかの理由で再び最初のものを実行したら、実際には2番目のものを正しく実行してから終了します。それはなぜこの奇妙な繰り返しを行うのですか?私はそれを理解できません。
(また、私はなど、これは脆弱なコードで実現し、それは今重要ではありません)
は、私はできるだけ早くこれを試してみてます、ありがとうございました。申し訳ありません、私はPHPで非常に経験がありません – SneakySpriggs
@SneakySpriggsは謝罪しません。予期せぬことにPHPが期待しています。 –