Php 将文件内容复制到另一个文件

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

我的文件包含以下内容(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
    $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>