0

我有一个受密码保护的目录,我想用 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是更好的选择?

4

1 回答 1

1

HTTP 和 HTTPS 协议不允许您创建文件,有 PUT 和 DELETE,但它们依赖于实现。

密码保护仅适用于通过 Web 服务器的请求。

如果文件位于同一台服务器上,您可以使用文件的真实或绝对路径。

对于外部服务器上的文件,您可以使用 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
);
于 2013-03-11T18:09:02.013 回答