2012-07-20 87 views
0

我的問題是下面,我有一個EmailReports.php我的服務器上,我用它來發送類似[email protected] &郵件內容= 123456.pdf如何從PHP調用網站服務?

我不能修改EmailReports .php,因爲它屬於一個不同的項目,它立即發送一封電子郵件,並被質量保證團隊和所有這些東西所推動。

現在,在一個不同的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代碼,但這是違反質量保證政策,因爲需要額外的測試。

你能指導我一下嗎?

在此先感謝。

+1

使用file_get_contents時是否出現錯誤?什麼是返回$東西?那將是從PHP腳本中調用外部URL的正確方法? – 2012-07-20 04:05:05

+0

'file_get_contents'應該可以用於簡單的GET調用。 – 2012-07-20 04:06:35

+0

@AaronDougherty Thx回覆,沒有錯誤,和$東西是空的。 – nxgtrturbo 2012-07-20 04:08:39

回答

5

您可以使用Curl請求從任何網站檢索信息(xml/html/json/etc)。

什麼是CURL? (簡短回答)

PHP有一個非常強大的調用庫,專門用於安全地從遠程站點獲取數據。它被稱爲CURL。

來源:捲曲功能的PHP PHP, CURL, and YOU!

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

來源:Download a URL’s Content Using 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(這是可以預料的),經過捲曲已執行。

+0

這也不行,我認爲它可能與服務器配置有關? – nxgtrturbo 2012-07-20 04:15:07

+0

curl現在默認使用'PHP 5.4.3' [curl requirements](http://www.php.net/manual/en/curl.requirements.php),或者如果你正在運行類似windows的東西系統與'xammp'安裝我會看看這個問題[這裏](http://stackoverflow.com/questions/181082/how-do-i-install-curl-on-windows)。問候 – Killrawr 2012-07-20 04:19:25

+0

我正在使用PHP 5.2.17的遠程Linux服務器,這可能是原因不起作用,但我會期望至少有一個錯誤。 – nxgtrturbo 2012-07-20 04:23:28