2013-10-08 51 views
1

有一個報告,服務器在我的Intranet中自動創建該報告。使用PHP從URL打開XLS文件並將其保存在變量中

我可以通過這樣的URL訪問和下載:

http://www1.intranet.com/reportingtool.asp?settings=var&export = ok 

我想與PHPExcel使用它。

$objPHPExcel = PHPExcel_IOFactory::load("file.xls"); 

當我串換file.xls網址這是行不通的。

我可以使用哪種替代方法來避免手動下載excel文件並在代碼中寫入文件名?

回答

1

你不能......

爲了解析xls文件,PHPExcel需要能夠向後移動文件指針和通過轉發文件,因爲它讀取來自OLE流的數據;這不是通過url檢索文件的選項,只能使用服務器文件系統上物理可用的文件。

解決方法(下載到臨時文件):

$url = 'http://www1.intranet.com/reportingtool.asp?settings=var&export=ok'; 
$tmpfname = tempnam(sys_get_temp_dir()); 
file_put_contents(
    $tmpfname, 
    file_get_contents($url) 
); 
$objPHPExcel = PHPExcel_IOFactory::load($tmpfname); 

雖然你可能需要手動刪除$ tmpfname事後

+0

好了,這也是一個解決方案。非常感謝!我認爲我必須在下載報告的基礎上構建類似Cronjob的東西並重新命名它...... – Susanne92

相關問題