我经历了所有模式并试图了解你可以在哪里应用其中一些模式,我偶然发现了var server_name = "http://127.0.0.1:5000/";
var socket = io.connect(server_name);
socket.on('error',function(data){
console.log(data.txt);
socket.disconnect();
});
function submitclick()
{
var text="hello";
if(socket.connected ==false)
socket= io.connect({'forceNew': true});
console.log(socket.connected);
}
。现在我了解该模式的工作原理,但w
的目的是什么?显然,如果我们在打开文件后立即使用w+
,它将无法工作,因为文件将被截断,所以我认为在文件中写入内容然后稍后从中读取它会很好因此,我决定这样测试:
fopen
由于某种原因,它以后不会读取文件的内容
有人可以向我解释请问哪里适用,我的代码有什么问题? $handle = fopen('new.txt', 'w+');
fwrite($handle, '123');
$file = fread($handle, filesize('new.txt'));
var_dump($file); // string '' (length=0)
fclose($handle);
返回3,因此它不会删除文件的内容,我认为从我们打开文件的那一刻开始使用filesize
并且它不会更新?然后它让我更加困惑为什么我们会使用模式$handle
并同时从文件中读取?
修改:我甚至可以理解如何使用w+
在文件中写一些内容,然后再次使用r+
检查我写的内容,如下所示:< / p>
fopen
如果我对$handle = fopen('new.txt', 'r+');
fwrite($handle, '123');
$handle = fopen('new.txt', 'r+');
$file = fread($handle, filesize('new.txt'));
var_dump($file);
fclose($handle);
做同样的事情,它会明显地删除内容,而我将无法阅读任何内容?
答案 0 :(得分:2)
fopen()
选项的 w+
在开头打开文件进行读/写,并将长度截断为0.它与写入新的空文件基本相同。
请参阅此处的fopen()用法:http://php.net/manual/en/function.fopen.php
w +主要用于&#34;回读&#34;你写的是什么。在你的情况下,你正在使用fread()函数读取&#34;转发&#34;来自你的指针,它在执行fwrite()之后当前位于文件的末尾,这可以解释为什么你得到空的内容。
我希望这能回答你的问题。
答案 1 :(得分:1)
@Ye。关于指针是正确的。一旦执行了fwrite,指针就会在文件的末尾。您需要 fseek() 才能返回文件的开头。
$handle = fopen('new.txt', 'w+');
fwrite($handle, '123');
fseek($handle, 0);
$file = fread($handle, filesize('new.txt'));
var_dump($file); // string '123' (length=3)
fclose($handle);