File diff ...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • File diff ...

    Hi Zusammen,
    bin noch bissl gruen was php angeht und hab auch gesehen dass es hier schon nen verweis auf diff tools gibt, allerdings is's so dass ich unseren usern ermoeglichen moechte ein file-diff 2er datein (*.txt) ueber das web zu machen deswegen will ich das irgendwie realisiert bekommen.

    bis jetzt bekomme ich eine seite mit dem vergleich angezeigt, allerdings muessten wenn in einem file was gefunden wird was im anderen ni auftaucht ,die zeilen umverschoben werden damit die zeilennummer immer mit den gleichen eintraegen uebereinstimmt... aber ich weiss nicht wie, da fehlts mir bissl an logik :-(
    wenn ihr das script so wie es is mal probiert und 2 files nehmt die sich ni mega-maessig unterscheiden koennt ihr das vieleicht sehen und mir bitte weiterhelfen.
    PS: das script is nur ne art manuscript, also noch ni ausdefinert, funktioniert aber erst mal soweit.

    Danke!!!

    Hier das script:

    PHP-Code:
    <?php
    $file_1 
    "1.file.txt";
    $file_2 "2.file.txt";
    $diff_file_1 file($file_1);
    $diff_file_2 file($file_2); 
    $result_1 array_diff($diff_file_1$diff_file_2);
    $result_2 array_diff($diff_file_2$diff_file_1);
    $keys = array();
    $result array_merge($result_1,$result_2);

    while(list(
    $key$val) = each($result_1)) {
        
    $keys[] = $key;
    }
    while(list(
    $key$val) = each($result_2)) {
        
    $keys[] = $key;
    }

    $x=0;
    while(list(
    $key,$val) = each($result)) {
        
    $final_array[$keys[$x]] = $val
        
    $x++;
    }
        
    $x=0;
        
    $y=0;
        while(list(
    $key$val) = each($diff_file_1)) {
            if(
    $key == $keys[$y])
            {
                
    $diff_file_1[$key] = "<font color='red'>".$diff_file_1[$key]."</font>";
                
    $x++;
                
    $y++;
            }
        }
        
    $x=0;
        while(list(
    $key$val) = each($diff_file_2)) {
            if(
    $key == $keys[$y])
            {
                
    $diff_file_2[$key] = "<font color='red'>".$diff_file_2[$key]."</font>";
                
    $x++;
                
    $y++;
            }
        }

    ###################
    # Output          #
    ###################

    $temp_file_1 "";
    $temp_file_2 "";

    foreach(
    $diff_file_1 as $key => $value)
    {
        
    $temp_file_1 .= $key.": &nbsp;".$value."<br>";
    }
    foreach(
    $diff_file_2 as $key => $value)
    {
        
    $temp_file_2 .= $key.": &nbsp;".$value."<br>";
    }

    $string_file_1 "  <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
                        <html>
                        <head>
                            <title>filereader</title>
                            <link rel='stylesheet' href='../../../style/qa-style.css' media='all' type='text/css'>
                            <link rel='stylesheet' href='../../../style/qa-style.css' media='screen' type='text/css'> 
                        </head>
                        <body><table width='5000'><tr><td align='left'>"
    ;
    $string_file_1 .= $temp_file_1;
    $string_file_1 .= "    </td></tr></table></body>
                        </html>
                    "
    ;
                    
    $string_file_2 "  <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
                        <html>
                        <head>
                            <title>filereader</title>
                            <link rel='stylesheet' href='../../../style/qa-style.css' media='all' type='text/css'>
                            <link rel='stylesheet' href='../../../style/qa-style.css' media='screen' type='text/css'> 
                        </head>
                        <body><table width='5000'><tr><td align='left'>"
    ;
    $string_file_2 .= $temp_file_2;
    $string_file_2 .= "    </td></tr></table></body>
                        </html>
                    "
    ;
                    
    $file_ext ereg_replace("\.","_",$_SERVER['REMOTE_ADDR']);
    $sav_file_1 "./htmls/diff_file1_".$file_ext.".html";
    $sav_file_2 "./htmls/diff_file2_".$file_ext.".html";
    $sav_heading_file "./htmls/diff_heading_".$file_ext.".html";
    $fp fopen ($sav_file_1"w+");
          
    fwrite($fp,$string_file_1);
          
    fclose($fp);
    $fp fopen ($sav_file_2"w+");
          
    fwrite($fp,$string_file_2);
          
    fclose($fp);
          
    $heading "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
                        <html>
                        <head>
                            <title>filereader</title>
                            <link rel='stylesheet' href='../../../style/qa-style.css' media='all' type='text/css'>
                            <link rel='stylesheet' href='../../../style/qa-style.css' media='screen' type='text/css'> 
                        </head>
                        <body><table width='100%'>
                        <tr>
                        <td align='left' width='50%'><h4>file 1: "
    .$file_1."</h4></td>
                        <td align='left' width='50%'><h4>file 2: "
    .$file_2."</h4></td>
                        </tr>
                        <tr>
                        <td align='left' width='50%'><b>inaccuracies: "
    .count($result_1)."</b></td>
                        <td align='left' width='50%'><b>inaccuracies: "
    .count($result_2)."</b></td>
                        </tr>
                        </table>
                        </body>
                        </html>
                        "
    ;
                        
    $fp fopen ($sav_heading_file"w+");
          
    fwrite($fp,$heading);
          
    fclose($fp);
          
    print 
    "<frameset rows='70,*'>";
        print 
    "<frameset cols='100%,*' frameborder='0'>";
            print 
    "<frame marginheight='3' marginwidth='3' src='".$sav_heading_file."' name='heading' scrolling='no'>";
        print 
    "</frameset>";
        print 
    "<frameset cols='500,500' frameborder='0'>";
            print 
    "<frame src='".$sav_file_1."' name='file_1' scrolling='yes'>";
            print 
    "<frame src='".$sav_file_2."' name='file_2' scrolling='yes'>";
        print 
    "</frameset>";
    print 
    "</frameset>";
    print 
    "  <noframes>";
    print 
    "    Ihr Browser kann diese Seite leider nicht anzeigen!";
    print 
    "  </noframes>";

    ?>
Lädt...
X