-1

CURLとphpを使ってURLをPOSTしたいです。

Web ページに大きなフォームがあり、すべての変数を手動でコピーして POST 要求に入れたくありません。

フォームを自動的に (DOM などを使用して) シリアル化し、必要な値を変更する方法が必要だと思います。

私はこれから抜け出すことができなかったので、誰かが親切に助けてくれるだろうかと思っていました.

では、URL から取得したばかりの html コンテンツの束に埋もれているフォームを自動的にシリアル化する方法はありますか?

助けてくれてありがとう、アンドリュー

4

4 に答える 4

1

ブラウザのフォームをサーバーに取得する方法や、投稿されたフォームをcurlリクエストに配置する方法を尋ねている場合、私にはわかりません。php から、投稿されたフォームを想定すると、次のように簡単になります。

curl_setopt($ハンドル、CURLOPT_POSTFIELDS、$_POST);

ただし、そのように検証されるデータはありません。

Web 側からすると、通常の投稿で送信するのではなく、DOM/Javascript を使用してフォームをシリアル化する理由がわかりませんか?

于 2009-02-06T20:16:00.247 に答える
0

質問が実際に何であるかはわかりませんが、次のようなことをしたいですか:

$fields_string = http_build_query($data_to_send);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$fields_string);

または、これを調べる必要があります:

$html = file_get_html('http://www.thesite.com/thepage.html');
foreach($html->find('input') as $element) 
echo $element->name . '<br>';
于 2009-02-06T20:34:18.523 に答える
0

質問がわかりません。フォームをスクリーン スクレイピングして入力し、元のページに POST で戻したいようです。そうですか?

コメントに応じて編集: CURL された HTML を Simple HTML DOM のようなツールでスクレイピングすることをお勧めします (これは、私が PHP でスクレイピングするために使用するものです)。選択したライブラリのドキュメントは、フォーム フィールドを識別する方法を理解するのに役立ちます。その後、CURL_POST_FIELDS 属性をフォームに渡したい値に設定して、フォームのアクション ページをカールする必要がありますurlencode()

于 2009-02-06T20:24:00.247 に答える