使用PHP从Google Docs保存XLS

Ben*_*dow 0 php xls google-docs google-docs-api

我正在尝试使用PHP解析Google Docs中的XLS文件.当我手动下载文件然后将其上传到服务器时它工作正常,但是当我使用PHP将完全相同的XLS文件直接保存到服务器时,而不是获取XLS中的所有数据,响应是:

<b>DOM ELEMENT: </b>HTML<br /><b>ATTRIBUTE: </b>lang => en<br /><b>DOM ELEMENT: </b>HEAD<br /><b>DOM ELEMENT: </b>META<br /><b>ATTRIBUTE: </b>charset => utf-8<br /><b>DOM ELEMENT: </b>META<br /><b>ATTRIBUTE: </b>content => width=300, initial-scale=1<br /><b>ATTRIBUTE: </b>name => viewport<br /><b>DOM ELEMENT: </b>META<br /><b>ATTRIBUTE: </b>name => description<br /><b>ATTRIBUTE: </b>content => Create a new spreadsheet and edit with others at the same time -- from your computer, phone or tablet. Get stuff done with or without an internet connection. Use Sheets to edit Excel files. Free from Google.<br /><b>DOM ELEMENT: </b>TITLE<br />
Run Code Online (Sandbox Code Playgroud)

以下是我如何使用PHP将XLS保存到服务器的示例:

$fileName = 'xls/newday2014.xls';
$xlsURL = 'https://docs.google.com/spreadsheets/d/1KKMiBOlvpKaAJ_MsNfaWGmR6ixL53AjAaLf0R18X3e4/edit#gid=161299136';
file_put_contents($fileName, file_get_contents($xlsURL));
Run Code Online (Sandbox Code Playgroud)

hak*_*kre 5

你的三个班轮代码在这里遗漏了一些基本的东西:

  • file_get_contents不是浏览器.它所采用的任何URI(URL)都不能包含片段(在您的情况下#gid=161299136),因为它永远不会发送到服务器.
  • 最后一点还强调:如果您使用浏览器下载了确切的URI,那么在创建正确的下载URI 之前,您的浏览器中很可能会运行下载内容.所以你使用错误的URI下载.
  • file_get_contents 不会仅仅通过魔法将您登录到Google帐户.
  • 只是以文件名结尾.xls不会将文件格式从HTML神奇地改变为Excel电子表格.

由于这三行代码已经存在四个基本问题,因此很明显,您使用的代码对于您尝试执行的操作而言并不适合.我建议你把它扔掉,先从头开始做一些研究,例如联系该web服务的供应商作为PHP开发人员的支持选项.他们最有可能为您要做的事情提供API.