Я пытаюсь добиться этого:
1-я хочу запросить страницу, например, google, но без заполнения ее поиска вручную. 2-я хочу получить результат и сохранить его в базе данных
Я видел пример этого с C # здесь
http://www.farooqazam.net/c-sharp-auto-click-button-and-auto-fill-form/comment-page-1/#comment-27256
но я бы хотел сделать это с помощью php, вы можете мне помочь?
благодаря
Вы должны использовать cURL для этого, не только потому, что он быстрее, чем file_get_contents, но также потому, что он имеет гораздо больше функций. Другая причина для его использования заключается в том, что, поскольку Xeoncross правильно упоминает в комментариях, файл_get_contents может быть отключен вашим веб-хостом по соображениям безопасности.
Основным примером будет следующий:
$curl_handle = curl_init(); curl_setopt( $curl_handle, CURLOPT_URL, 'http://example.com' ); curl_exec( $curl_handle ); // Execute the request curl_close( $curl_handle );
Если вам нужны данные возврата из запроса, вам необходимо указать параметр CURLOPT_RETURNTRANSFER
:
$curl_handle = curl_init(); curl_setopt( $curl_handle, CURLOPT_URL, 'http://example.com' ); curl_setopt( $curl_handle, CURLOPT_RETURNTRANSFER, true ); // Fetch the contents too $html = curl_exec( $curl_handle ); // Execute the request curl_close( $curl_handle );
Существует множество опций cURL, например, вы можете установить тайм-аут запроса:
curl_setopt( $curl_handle, CURLOPT_CONNECTTIMEOUT, 2 ); // 2 second timeout
Для справки всех опций см. Ссылку curl_setopt () .
$html = file_get_contents('http://example.com');
это самая простая версия, которую вы получите.
<?php $r = new HttpRequest('http://example.com/feed.rss', HttpRequest::METH_GET); $r->setOptions(array('lastmodified' => filemtime('local.rss'))); $r->addQueryData(array('category' => 3)); try { $r->send(); if ($r->getResponseCode() == 200) { file_put_contents('local.rss', $r->getResponseBody()); } } catch (HttpException $ex) { echo $ex; } ?>
Из руководства по php …
Вы можете использовать PHP CUrl для подробных manupulations с сайтом, к которому вы обращаетесь!
вы даже можете выполнять получение и сообщения на доступном вами сайте или использовать сервисы с разных сайтов (в случае, если сайт предоставляет услуги!).
Если вы найдете имя поля (q), которое вы хотите заполнить на удаленной странице (Google), вы можете заполнить его с помощью синтаксиса GET:
http://www.google.com/?q=hello