0

私は、いくつかのフィールドを持つ小さなフォームを持っている、abc.html などのページを持っています。

<form name="form" method="post" action="abc.html">.......................</form>

フォームを送信すると、いくつかのデータが投稿された abc.html に再び返され、投稿されたデータを処理した後のページに結果の名前が表示されます。

手順全体で、ページの URL は同じままです。フォームの送信後にデータを含むこの abc.html を解析したいと思います。元の URL にすべてのデータが含まれる解析を行いましたが、送信後にページにデータが表示されます。そのようなページを解析する方法を教えてください??

4

6 に答える 6

0

初めに。ページはabc.phpである必要があります。それ以外の場合は、phpを解析しません。

2番。これがあなたを助けるいくつかのコードです(私は願っています)。この例をコピーして貼り付け、abc.phpに配置します

<html>
<head></head>
<body>
<?php 
if (isset($_POST['submit'])) {
  echo 'you posted the following value :'.$_POST['foo'];
}
?>
<form name="form" action="abc.php" method="post">
<input type="text" name="foo" value="" />
<input type="submit" name="submit" value="Press Me" />
</form>
</body>
</html>

そうでない場合。そして、XMLを解析するようにHTMLを解析したい場合はDOMDocument、PHPのクラスを使用する必要があります

$oDom = new DOMDocument();
$oDom->loadHTML($sHTMLstring);
// or 
$oDom->loadHTMLFile($sFileName);
// now you can walk the dom like
$oDomElement = $oDom->getElementByTagName('form');

http://nl.php.net/manual/en/domdocument.loadhtml.php http://nl.php.net/manual/en/domdocument.loadhtmlfile.php http://nl.php.net/manual/ en / domdocument.getelementsbytagname.php

お役に立てれば

于 2009-10-15T07:26:30.773 に答える
0

フォームをWebサーバーに送信する(つまり、最初にフォームに「入力」する)場合は、Perls WWW::Mechanizeに似たものが必要です。これを行うための可能な解決策については、この質問を参照してください。その後、結果のページを解析する必要があります。これは、問題のサイト自体に大きく依存します。あるサイトでは、正規表現を使用して簡単に取得できる名前付き要素を使用する場合と、別のサイトでは使用しない場合があり、値を取得するのがはるかに困難になります。 'に興味があります。

于 2009-10-17T11:24:32.143 に答える
0

良い質問ですが、PHP では不可能だと思います。私の会社では、C の非常に高度なツールを使用してそれを行っています。任意のページを取得し、任意のフォームを送信して、応答 HTML を取得するだけです。しかし、おそらくいくつかのツールを見つけることができます。わからない。

于 2009-10-15T08:44:59.913 に答える
0

サーバーから正しい HTML を取得するには、フォーム データを含む POST 要求を送信する必要があります。次に、サーバーの応答を解析できます。

于 2009-10-15T07:07:11.593 に答える
0

HTML ファイルを解析することは、私たちがそれを見ることと同じです。したがって、データの送信後にレンダリングされる HTML ページには、追加のテキストが表示される HTML 要素が含まれます。これが存在する場合はページ チェックを解析するとき、存在する場合はコンテナーが存在する場合は、残りのデータを読み取ります。投稿されたデータなしで表示される HTML ページには、この追加またはコンテナーはありません。

編集: この質問を見てください: PHP Screen Scraping and Sessions

于 2009-10-15T07:10:37.210 に答える
0

ここでのポイントは、URL を開いて返された HTML を読むだけではいけないということだと思います。サーバー側のフォームとやり取りするには、ブラウザーの役割を果たさなければなりません。これを行うには、フォーム入力データを HTTP POST する独自のコードを記述する必要があります。POST に対する HTTP 応答には、生成された HTML が含まれます。これを解析して、処理された結果を得ることができます。

于 2009-10-17T11:14:19.857 に答える