我有一个受密码保护的目录,我想用PHP写入文本文件。 cURL
可能是它需要的,但我现在正在尝试fopen
:
$filename = "example.txt";
$file = "https://user:pass@example.com/pass-protected-folder/" . $filename;
$fh = fopen( $file, 'w' );
fwrite( $fh, "Testing 1, 2, 3.." );
fclose( $fh );
哪个不起作用;没有错误,但也没有文件被写入。
如果fopen
工作和/或cURL
是更好的选择,我该怎么做?
答案 0 :(得分:1)
HTTP和HTTPS协议不允许您创建文件, 有PUT和DELETE,但它们依赖于实现。
密码保护仅适用于通过网络服务器发出的请求。
如果文件位于同一台服务器上, 你可以使用文件的实际路径或绝对路径。
对于外部服务器上的文件,你可以使用ssh或scp(因为,我猜apache,不会让你写过http / s):libssh扩展名(php.net/manual/en/ref.ssh2.php )或在php`phpseclib'(phpseclib.sourceforge.net)中。如果您不介意安全性,也可以使用FTP。
libssh示例:
$connection = ssh2_connect($myssh['host'], $myssh['port']);
ssh2_auth_password(
$connection,
$myssh['username'],
$myssh['password']
);
$localfile = $myssh['localpath'].$file;
$remotefile = $myssh['remotepath'].$file;
ssh2_scp_send(
$connection,
$localfile,
$remotefile, 0644
);