如何调用从PHP网站服务?(How to call a website service from P

2019-06-26 09:56发布

我的问题是下面,我有一个EmailReports.php我的服务器上,我用它来发送类似EmailReports.php?who=some@gmail.com&what=123456.pdf邮件

我不能修改,因为这属于diferent项目,并立即发送一封电子邮件,并通过QA团队和所有的东西已经aproved EmailReports.php。

现在,在diferent 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政策,因为将需要额外的测试。

你能引导我一点吗?

提前致谢。

Answer 1:

你可以使用一个卷曲的请求检索来自任何网站的信息(XML / HTML / JSON的/ etc)。

什么是卷曲? (简答)

PHP有专门设计,以安全地获取从远程站点的数据调用的一个非常强大的库。 这就是所谓的卷曲。

来源: PHP,卷曲,和你!

在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卷曲

或者,你可以做你现在正在做什么用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 (这是可以预期的),卷曲执行之后。



文章来源: How to call a website service from PHP?