gpt4 book ai didi

php - 来自远程服务器的 fopen (php) 仅用于读取

转载 作者:行者123 更新时间:2023-12-02 12:16:27 26 4
gpt4 key购买 nike

我需要使用 PHP fopen() 从远程服务器打开一个文本文件并在其中写入一些信息。

allow_url_fopenON(在我的php.ini 中)。

我可以读取此远程文件,但无法写入。

代码:

<?php
$data = 'some text';
$filename = 'ftp://admin:password@192.168.254.1/web/domain.com/public_html/test2.txt';
$fh = fopen($filename, 'r');
echo fread($fh, filesize($filename));
fclose($fh);

$fh = fopen($filename, 'w+');
if ($fh) {
echo 'remote file is opened, writing data';
fwrite($fh, $data);
fclose($fh);
} else {
echo 'remote file not opened';
}
?>

显示:一些文字远程文件未打开

我可以在写入文件时做什么?

最佳答案

PHP FTP URL wrapper不支持同时打开文件进行读写。所以你不能使用w+模式(读取和写入)。使用 w 模式(仅写入)。

此外,FTP URL 包装器默认不允许覆盖现有文件,您需要使用 overwrite 启用它 FTP context option .

$context = stream_context_create(['ftp' => ['overwrite' => true]]);
$fh = fopen($filename, 'w', false, $context);
<小时/>

尽管这效率很低,因为您将打开整个 FTP session 两次。一次用于阅读,一次用于写作。您最好使用FTP功能ftp_getftp_put超过一个 session 。

关于php - 来自远程服务器的 fopen (php) 仅用于读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60231587/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com