Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从PHP调用网站服务?_Php_Web Services_Callback_File Get Contents_Http Get - Fatal编程技术网

如何从PHP调用网站服务?

如何从PHP调用网站服务?,php,web-services,callback,file-get-contents,http-get,Php,Web Services,Callback,File Get Contents,Http Get,我的问题是,我的服务器上有一个EmailReports.php,我用它来发送EmailReports.php之类的邮件?谁=some@gmail.com&what=123456.pdf 我不能修改EmailReports.php,因为它属于不同的项目,它会立即发送一封电子邮件,并且已经过QA团队的批准 现在,在一个不同的LookReports.php上,我需要提供一个类似“将我审阅的报告发送给我”的服务,它可以像调用EmailReports.php一样轻松地手动执行,问题是,如何通过php代码实

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

我不能修改EmailReports.php,因为它属于不同的项目,它会立即发送一封电子邮件,并且已经过QA团队的批准

现在,在一个不同的LookReports.php上,我需要提供一个类似“将我审阅的报告发送给我”的服务,它可以像调用EmailReports.php一样轻松地手动执行,问题是,如何通过php代码实现?因此它会自动调用另一个PHP

我尝试过但没有成功:

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

$stuff=file\u get\u contents(“http://...");
我正在考虑导入EmailReports.php,但似乎不正确,因为没有函数,它会自动发送电子邮件

或者我可以复制EmailReports.php代码,但这违反了QA政策,因为需要额外的测试

你能给我引路吗

提前感谢。

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

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

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

资料来源:

PHP中的Curl函数示例

资料来源:


或者,您可以使用当前正在使用的
file\u get\u contents
进行操作,但许多主机不允许这样做。(沃尔什,2007年)

用法


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

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

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

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

资料来源:

PHP中的Curl函数示例

资料来源:


或者,您可以使用当前正在使用的
file\u get\u contents
进行操作,但许多主机不允许这样做。(沃尔什,2007年)

用法




尝试使用其他网站测试它,因为在执行curl之后,
google
通常会返回一个
404请求(这是意料之中的)。

在使用文件获取内容时,您会遇到任何错误吗?返回的$stuff是什么?这是从PHP脚本调用外部URL的正确方法?
file\u get\u contents
应该适用于简单的get调用。@aarondoughty Thx用于回复,没有错误,$stuff为空。我建议从PHP将URL打印到命令行(假设URL是动态的),然后在命令行上使用curl查看在没有PHP干扰的情况下得到什么样的结果。在使用file\u get\u内容时,是否会出现任何错误?返回的$stuff是什么?这是从PHP脚本调用外部URL的正确方法?
file\u get\u contents
应该适用于简单的get调用。@aarondoughty Thx用于回复,没有错误,$stuff为空。我建议从PHP将URL打印到命令行(假设URL是动态的),然后在命令行上使用curl,看看在没有PHP干扰的情况下得到什么样的结果。这也不起作用,我认为这可能与服务器配置有关?curl现在默认在
PHP5.4.3
中可用,或者,如果您运行的是安装了
xammp
的windows系统,我会研究这个问题。RegardsI正在使用PHP5.2.17的远程Linux服务器,这可能是无法工作的原因,但我希望至少会出现错误。在windows系统上,您需要取消对
PHP.ini
中有关
libcurl.dll
的行的注释。(也可以从php.org阅读关于在windows环境中安装curl的内容)。如上所述,在
linux
系统中(基于安装的php版本),不需要安装。php 5.0.0需要libcurl 7.10.5或更高版本。(软件包可用)这也不起作用,我认为它可能与服务器配置有关?Curl现在在
php5.4.3
中默认可用,或者如果您运行的是安装了
xammp
的windows系统,我会研究这个问题。RegardsI正在使用PHP5.2.17的远程Linux服务器,这可能是无法工作的原因,但我希望至少会出现错误。在windows系统上,您需要取消对
PHP.ini
中有关
libcurl.dll
的行的注释。(也可以从php.org阅读关于在windows环境中安装curl的内容)。如上所述,在
linux
系统中(基于安装的php版本),不需要安装。php 5.0.0需要libcurl 7.10.5或更高版本。(套餐可供选择)
$stuff =  file_get_contents("http://...<the url here>");
/* 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
$mydata = get_data('http://www.google.co.nz');
echo '<pre>';
print_r($mydata); //display the contents in $mydata as preformatted text
echo '</pre>';
?>