2017-08-10 25 views
0

我有2个文件。用PHP中的参考文件建立一个文件

  1. source.txt
  • reference.txt
  •  
    name: foo 
    dob: 11-Aug-2017 
    
    name: bar 
    dob: 15-Aug-2017 
    

    生成文件target.txt像:

     
    name: foo 
    dob: 11-Aug-2017 
    

    source.txt的搜索字符串,如name: NAME,并匹配它在reference.txt文件并将其替换。

    搜索

    name: foo 
    dob: 
    

    替换

    name: foo 
    dob: 11-Aug-2017 
    

    我曾尝试下面的代码,其搜索目标字符串name: foo。但是,无法产生预期的输出。

     
    $url = 'reference.txt'; 
    
    if(is_file($url)) { 
    
        $handle = fopen($url, "r"); 
    
        if ($handle) { 
         while (($line = fgets($handle)) !== false) { 
    
          if(substr($line, 0, strlen('name: foo')) === 'name: foo') { 
           // Found record 'name: foo' 
          } 
         } 
    
         fclose($handle); 
        } 
    } 
    

    回答

    0

    顺便说一句,我没有得到你想要什么,但 这个例子,可以帮助你在一个文件中搜索字符串:

    <?php 
        $searchthis = "mystring"; 
        $matches = array(); 
    
        $handle = @fopen("path/to/inputfile.txt", "r"); 
        if ($handle) 
        { 
         while (!feof($handle)) 
         { 
          $buffer = fgets($handle); 
          if(strpos($buffer, $searchthis) !== FALSE) 
           $matches[] = $buffer; 
         } 
         fclose($handle); 
        } 
    
        //show results: 
        print_r($matches); 
        ?> 
    
    +0

    其实我想从1个文件替换多行成另一个。 – maheshwaghmare

    +0

    啊所以你可以使用str_replace(),我想这是解决方案突然尝试它 –