Как вызвать службу веб-сайта из PHP?

Моя проблема заключается в следующем: у меня есть EmailReports.php на моем сервере, который я использую для отправки писем, таких как EmailReports.php?who=some@gmail.com&what=123456.pdf

Я НЕ могу изменить EmailReports.php, поскольку он принадлежит к другому проекту, и он мгновенно отправляет электронное письмо и был одобрен командой QA и всем этим.

Теперь, на другом LookReports.php, мне нужно предложить услугу «Отправить мне отчеты, которые я просмотрел», которые вручную могут быть легко выполнены, как только вызывается EmailReports.php, вопрос в том, как я могу это сделать с помощью кода PHP? поэтому он вызывает другой PHP автоматически.

Я пробовал без успеха:

$stuff = http_get("http://...<the url here>"); 

а также

 $stuff = file_get_contents("http://...<the url here>"); 

Я думал об импорте EmailReports.php, но не кажется правильным, поскольку нет функций, он автоматически отправляет электронное письмо.

Или я мог бы реплицировать код EmailReports.php, но это противоречит политике QA, поскольку потребуются дополнительные тесты.

Не могли бы вы мне немного помочь?

Заранее спасибо.

Solutions Collecting From Web of "Как вызвать службу веб-сайта из PHP?"

Вы можете использовать запрос Curl для получения информации (xml / html / json / etc) с любого веб-сайта.

Что такое CURL? (короткий ответ)

PHP имеет очень мощную библиотеку вызовов, которые специально разработаны для безопасного извлечения данных с удаленных сайтов. Это называется CURL.

Источник: PHP, CURL, и вы!

Пример функции Curl в PHP

 /* gets the data from a URL */ function get_data($url) { if(function_exists('curl_init')){ $ch = curl_init(); $timeout = 5; curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); $data = curl_exec($ch); curl_close($ch); return $data; } else 'curl is not available, please install'; } 

Источник: загрузка содержимого URL-адреса с помощью PHP cURL

Кроме того, вы можете делать то, что вы сейчас делаете с file_get_contents но многие хосты этого не допускают. (Уолш, 2007)

Применение

 <?php $mydata = get_data('http://www.google.co.nz'); echo '<pre>'; print_r($mydata); //display the contents in $mydata as preformatted text echo '</pre>'; ?> 

Попробуйте протестировать его, с другими веб-сайтами, потому что чаще, чем google не вернет 404 request (это следует ожидать), после выполнения завитка.