0

我的问题如下,我的服务器上有一个 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 政策,因为需要额外的测试。

你能指导我一点吗?

提前致谢。

4

1 回答 1

6

您可以使用Curl请求从任何网站检索信息 (xml/html/json/etc)。

什么是卷曲?(简短回答)

PHP 有一个非常强大的调用库,专门设计用于安全地从远程站点获取数据。它被称为卷曲。

来源:PHP、CURL 和你!

PHP 中的 Curl 函数示例

/* 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';
 }

来源:使用 PHP cURL 下载 URL 的内容

或者,您可以做您目前正在做的事情,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>';
?>

尝试使用其他网站对其进行测试,因为在执行 curl 后,通常google会返回 a 404 request(这是意料之中的)。

于 2012-07-20T04:05:39.630 回答