PHP:如何创建文件并将其 ftp 到另一台服务器?
我们正在与供应商签订一项直运协议,我们不必储存他们的产品,我们只需将其出售,然后他们将其运送出去。 为了通知他们订单,他们希望我们通过 FTP 将带有订单信息的制表符分隔 .txt 文件上传到他们的网站。 我们希望将其自动化。 那么,给定 ftp 的用户/密码,有没有办法创建 TSV.txt 文件并使用 PHP ftp 将其上传到他们的网站?
谢谢!
We are setting up a drop-ship agreement with a vendor to where we don't have to stock their products we just sell them and they ship them out. To inform them of an order they want us to FTP upload a tab delimited .txt file with the order info to their site. We want to automate this. So given the user/pass for the ftp is there a way to create a TSV.txt file and ftp upload it to their site with PHP?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
PHP5 中的 file_put_contents() 或 PHP4 中的 fopen()/fwrite()/fclose() 组合应该可以完成这项工作。 无论如何,您应该提供用户并在 FTP URL 中传递,如下所示:
ftp:// /user:[email protected]/pub/file.txt
如果上述方法不起作用,ftp_* 函数应该可以解决您的问题。 无论如何,请注意它们可用的 PHP 版本。某些功能仅适用于 PHP5 及更高版本。
这是详细介绍 PHP 中的 FTP 流包装器的页面。
file_put_contents() in PHP5 or a combination of fopen()/fwrite()/fclose() in PHP4 should do the job. Anyway, you should supply the user and pass inside the FTP URL, like this:
ftp://user:[email protected]/pub/file.txt
If the above don't work, ftp_* functions should solve your problem. Anyway, pay attention to the PHP version they're available in. Some function only work in PHP5 and greater.
This is the page detailing the FTP stream wrapper in PHP.
PHP FTP 示例
我不熟悉您的订单信息当然可以,但您可以创建订单信息数组并使用 fputcsv 创建制表符分隔文件。
您是否还需要根据 $_POST 信息创建文件的详细信息? 或者只是一般函数调用来实现解决方案?
编辑:此外,是否可以找到另一种解决方案,然后通过 FTP 传输信息? 例如,与他们的服务器的 HTTPS 连接或其他连接? 如果您发送任何收件人信息(地址、邮政编码、信用卡),这可能是一个安全问题。
PHP FTP Example
I'm not familiar with your order info of course, but you could create an array of the order information and use fputcsv to create the tab delimited file.
Do you need specifics on making the file from $_POST information as well? Or just general function calls to implement the solution?
Edit: Also, is it possible to find another solution then FTP'ing the information? Say, an HTTPS connection or something to their server? If you are sending any recipient information(address, zip, credit card) this could be a security problem.