PHP插入文件

时间:2014-12-02 19:27:51

标签: php

我必须在不读/写整个文件的情况下将文本插入到特定位置的文件中。这可能只使用php吗?

mytext.txt content is 123456789

<?php
$message='new';
$file='mytext.txt';
$fh = fopen($file, 'rw+');
fseek($fh, 3);
fwrite($fh, $message);
fclose($fh);
?>     

此代码将覆盖指定位置。 我正在寻找'0123new456789'而非'123new789'

2 个答案:

答案 0 :(得分:1)

如果不先阅读文件,我就不会想你想做什么。不过,这应该有所帮助:

// Get file contents
$contents = file_get_contents($file);
// Split your strings
$beginning = substr($contents, 0, 4);
$ending = substr($contents, 4, 6);
// Re-write contents
$contents = $beginning . $message . $end;
// Write file contents
file_put_contents($file, $contents);

谢谢,

安德鲁

答案 1 :(得分:0)

你别无选择。 fopen()总是把指针放在文件的开头或结尾。在任何情况下,你必须通过文件直到你找到你要找的东西。在那里你可以关闭。 请参阅有关它的文档http://php.net/manual/en/function.fopen.php

顺便说一下,fseek($ fh,3)并不意味着找到3.是检索3个字节长度的东西。见http://php.net/manual/en/function.fseek.php