PHP从在线下载链接而不是直接访问文件
我在谷歌硬盘上有一个在线电子表格。此电子表格是公共的,可以通过url访问。将PHP从在线下载链接而不是直接访问文件,php,download,google-sheets,Php,Download,Google Sheets,我在谷歌硬盘上有一个在线电子表格。此电子表格是公共的,可以通过url访问。将export?format=csv附加到公共url会打开下载提示,允许客户端查看器通过选择文件位置并单击“下载”将在线电子表格文件的csv版本下载到其计算机上 我想做的是允许我的PHP脚本与Google提供的下载链接进行交互https://docs.google.com/spreadsheets/d//export?format=csv 而不是像www.example.com/file.csv这样的直接下载链接 由于go
export?format=csv
附加到公共url会打开下载提示,允许客户端查看器通过选择文件位置并单击“下载”将在线电子表格文件的csv版本下载到其计算机上
我想做的是允许我的PHP脚本与Google提供的下载链接进行交互https://docs.google.com/spreadsheets/d//export?format=csv
而不是像www.example.com/file.csv这样的直接下载链接
由于google使用$\u GET
值?format=csv
来引导客户端下载,因此我不能仅使用include_once()
或类似方法来访问脚本中的文件,因为这将访问负责显示google电子表格的HTML文件
如果不是直接下载链接,如何通过PHP访问此在线下载?PHP之外的其他方法也是受欢迎的,只要我可以通过PHP访问CSV文件的数据(或将其临时或永久下载到服务器上)Simplefile\u get\u contents()
在您的情况下应该可以正常工作
$content = file_get_contents('https://docs.google.com/spreadsheets/d/<KEY>/export?format=csv');
$content=file\u get\u contents('https://docs.google.com/spreadsheets/d//export?format=csv');
Simplefile\u get\u contents()
在您的情况下应该可以正常工作
$content = file_get_contents('https://docs.google.com/spreadsheets/d/<KEY>/export?format=csv');
$content=file\u get\u contents('https://docs.google.com/spreadsheets/d//export?format=csv');
经过几天的困惑和问题解决,我终于根据网上的多个教程和示例找到了这个答案。它们没有一个完全符合我的需要,但基本上这就是我想出的从互联网下载已发布的谷歌电子表格,而不使用谷歌API
$fileid = "spreadsheet file id here";
$url = "https://docs.google.com/spreadsheets/d/".$fileid."/export?format=csv&id=".$fileid;
$newfilename = "newfile";
$file = fopen($url,"r");
$output = fopen($newfilename.'.csv', 'wb');
while (($data = fgetcsv($file, 1000, ",")) !== FALSE) {
fputcsv($output, $data);
}
fclose($file);
fclose($output);
运行此代码后,脚本从Google电子表格中获取数据并将其输出到新创建的文件中,该文件由$newfilename.csv
以text/csv
格式确定
我希望这对将来的人有所帮助。我在SO和其他网站上看到了很多关于如何在没有API的情况下访问CSV格式的Google电子表格数据的话题,在从未找到不涉及API的真正答案之后,我想我已经做到了 经过几天的困惑和问题解决,我终于根据网上的多个教程和示例解决了这个问题。它们没有一个完全符合我的需要,但基本上这就是我想出的从互联网下载已发布的谷歌电子表格,而不使用谷歌API
$fileid = "spreadsheet file id here";
$url = "https://docs.google.com/spreadsheets/d/".$fileid."/export?format=csv&id=".$fileid;
$newfilename = "newfile";
$file = fopen($url,"r");
$output = fopen($newfilename.'.csv', 'wb');
while (($data = fgetcsv($file, 1000, ",")) !== FALSE) {
fputcsv($output, $data);
}
fclose($file);
fclose($output);
运行此代码后,脚本从Google电子表格中获取数据并将其输出到新创建的文件中,该文件由$newfilename.csv
以text/csv
格式确定
我希望这对将来的人有所帮助。我在SO和其他网站上看到了很多关于如何在没有API的情况下访问CSV格式的Google电子表格数据的话题,在从未找到不涉及API的真正答案之后,我想我已经做到了 在本例中,这只是给出了周围的HTML页面。而不是将CSV数据作为$content
提供给我。还有其他想法吗?在这个例子中,这只是给了我周围的HTML页面。而不是将CSV数据作为$content
提供给我。还有其他想法吗??