Php 将文件内容复制到另一个文件
我的文件包含以下内容(1.txt):Php 将文件内容复制到另一个文件,php,Php,我的文件包含以下内容(1.txt): user.php?id=XXXXXX user.php?id=XXXXXX user.php?id=XXXXXX user.php?id=XXXXXX user.php?id=XXXXXX 文字/数字 user.php?id=XXXXXX user.php?id=XXXXXX 等等 (XXXXXX=数字) 可以只获取user.php?id=XXXXXX并将其复制到另一个文件中,而不必处理不必要的文本,因为该文件包含大约50000行? <?php
- user.php?id=XXXXXX
- user.php?id=XXXXXX
- user.php?id=XXXXXX
- user.php?id=XXXXXX
- user.php?id=XXXXXX
- 文字/数字
- user.php?id=XXXXXX
- user.php?id=XXXXXX
- 等等
<?php
$file = fopen('source.txt', 'rb');
$newfile = fopen('target.txt', 'wb');
while(($line = fgets($file)) !== false) {
if(strpos($line, 'user.php') !== false) {
fputs($newfile, $line);
}
}
fclose($newfile);
fclose($file);
?>
此代码尚未经过测试,但我认为它会正常工作。
<?php
//Get all the matches from the file
$fileContents = file_get_contents('1.txt');
preg_match_all('/user.php\?id=[0-9]{6}/', $fileContents, $matches);
//Output to new file
$fh = fopen('output.txt', 'w+');
foreach ($matches['0'] as $match) {
fputs($fh, $match."\r\n");
}
fclose($fh);
?>
假设要将“abc.php”文件的内容复制到“working_file.php”
将以下代码放入working_file.php,它将简单地复制所有内容。
<div>
<?php
$file = fopen("abc.php", "r") or die("Unable to open file!");
echo fread($myfile,filesize("abc.php"));
fclose($file);
?>
</div>
似乎是一个非常简单的问题。你尝试了什么?是的,这是可能的。请提供一些代码行。这可以工作,但由于输入文件很大,内存效率不高。最好逐行读取和写入由fopen
创建的流。我已经修改了它,你能帮我检查一下这段代码吗?我不确定它是否包含语法错误,因为我是用诺基亚E63输入的。它现在工作得很好,正是我的意思。一个建议是:将b
标志添加到打开模式(第二个fopen
参数),手册对此有一个说明:为了便于携带,强烈建议在使用fopen()打开文件时始终使用“b”标志.
请参阅,了解此建议背后的原因。按照您的建议进行了更新。但是“w+b”看起来有点奇怪,我是否正确键入了它?我认为它看起来很不错。不管怎样,在这个话题上:这是正确的方法。顺便说一句,我刚刚意识到,+
根本不是必需的,因为目标只需要写入而不需要读取。顺便说一下,应该是:$matches['0'],仅仅发布代码片段并不能充分回答这个问题。考虑添加一个解释你的代码是如何解决问题的。
<div>
<?php
$file = fopen("abc.php", "r") or die("Unable to open file!");
echo fread($myfile,filesize("abc.php"));
fclose($file);
?>
</div>