ホームページ  >  記事  >  バックエンド開発  >  元のデータ後の PHP 処理の問題 (オンラインなど)

元のデータ後の PHP 処理の問題 (オンラインなど)

WBOY
WBOYオリジナル
2016-06-23 14:13:191097ブラウズ

XX ソフトウェア、hxxp://www.test.com/input.php に接続します
通信が接続されると、XX ソフトウェアは abc.txt のようなテキスト ファイルを送信します
その後、PHP 操作の後、Jason文字列が本ソフトウェアに返され、最終的にソフトウェアは対応する関数を実行します。

この XX ソフトウェアが abc.txt (内容の検証、拒否、非コミットなどの情報) を送信すると、PHP 操作は {"id":xxx,"url":"xxx","port":"xxx" を返します) }


このようなphpはどうやって書けばいいのでしょうか?

abc.txtをphp://inputで受け取ろうとしたのですが、受け取った後はどうすればいいのか、また処理後にJason形式の文字列を返すにはどうすればよいでしょうか?

アドバイスをお願いします、ありがとう!


ディスカッション(解決策)への返信

何を受け取るかによって異なります
受け取ったコンテンツから何を処理する予定であるかによっても異なります

phpが受け取ったファイル情報は、$_FILEグローバルに保存されます配列を取得し、move_uploaded_file を介して txt ファイルをサーバーに移動し、file_get_contents を使用して txt 内のコンテンツを取得し、コンテンツを処理して json を生成し、最後に json をエコーし​​ます

xx ソフトウェアはデータを php 処理ページに送信し、ではどうやって書くか どうやって書くか
PHPやソフトウェア側の書き方が分からないのですか? delphi?

私は PHP にあまり詳しくないので、ソフトウェア側での書き方は知っていますが、上記の返信のおかげですでにアイデアはあります。

私は PHP にあまり詳しくないので、ソフトウェア側での書き方は知っていますが、上記の返信のおかげですでにアイデアはあります。
json の場合、php には独自の関数があります。必要な json を生成した後、それをエコーアウトするだけです。受付内容は、php://inputに対して文字列処理を行い、希望する内容に加工するというものです。

php://input を使用して投稿された abc.txt ファイルを受信した後、ファイルの 2 行目から 5 行目を読み取り、サーバー上の kkk.txt ファイルの内容 (ユーザー名、ローカルホスト) と比較する必要があります。 、 true または Flase を返します。 file() 関数を使用して配列に読み込んだ後、abc.txt ファイルを比較する方法を教えてください。
abc.txt ファイルの内容:
verify:local
ユーザー名:1111
localhost:2.2.2.2
ユーザー名:2222
localhost:2.2.2.2
test.com

kkk.txt ファイルの内容:
ユーザー名:1111
ローカルホスト: 2.2.2.2
username:2222
localhost:2.2.2.2

php://input を使用して abc.txt を受信します
読み取ったデータが $inp にあると仮定して、これはすでに実装されています
$inp = preg_split(" /[ rn]+/", file_get_contents('php://input'));
$ing = array_slice($inp, 1, -1);//頭と尻尾を切り落とします


まだ必要ですニーズを説明してください 見てみましょう

ありがとう、xuzuning、xx ソフトウェアによって投稿された abc.txt ファイルをサーバーの現在のパスに保存しました: file_put_contents('abc.txt',$input); file() 関数を使用して abc を保存します。その後、txt ファイルが配列に読み込まれ、abc.txt ファイル内のユーザー名および localhost データがユーザー名および localhost と一致するかどうかが比較されます。 kkk.txt ファイル内のデータは true を返し、それ以外の場合は false を返します

すべて一致しますか?それともそれが存在する限り?

たとえば、
username:1111
localhost:2.2.2.2
username:2222
localhost:3.3.3.3
および
username:2222
localhost:2.2.2.2
username:1111
localhost:3.3.3.3

おはようございますたとえ存在するとしても

kkk.txt のすべての行が abc.txt に出現するだけで十分ですか?

abc.txt に他のコンテンツが含まれる可能性がある行に関係なく?

クライアントとサーバーの両方が制御可能なため、テキストが大きくない場合は、クライアントで直接投稿リクエストを送信するだけです

PHP はそれを受信するために $_POST を使用するだけで済みます

すべて kkk.txt でいいですか? abc.txt にすべて含まれていれば十分ですか?

abc.txt に他のコンテンツが含まれる可能性がある行に関係なく?


はい、そういう意味です

$t = array_diff(file('kkk.txt', FILE_IGNORE_NEW_LINES), file('abc.txt', FILE_IGNORE_NEW_LINES));




ありがとう、xuzuning llもう一度試してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。