首页 > 解决方案 > 在 PHP 中比较两个字符串的问题

问题描述

我在 PHP 中创建了一个代码。此代码基本上采用文件 .csv 并比较此文件中的字符串。这是我的代码:索引:

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Triangulação</title>
</head>
<body>
    <form action="upload.php" method="post" enctype="multipart/form-data">
        <input type="file" name="csv1" value="" />
        <br>
        <input type="file" name="csv2" value="" />
        <br>
        <input type="submit" name="submit" value="Save" />
    </form>
</body>
</html>

上传:

<?php
    $csv = array();
    // check there are no errors
    if($_FILES['csv1']['error'] == 0 && $_FILES['csv2']['error'] == 0){
        $name1 = $_FILES['csv1']['name'];
        $name2 = $_FILES['csv2']['name'];
        $ext1 = strtolower(explode('.', $_FILES['csv1']['name'])[1]);
        $ext2 = strtolower(explode('.', $_FILES['csv2']['name'])[1]);
        $type1 = $_FILES['csv1']['type'];
        $type2 = $_FILES['csv2']['type'];
        $tmpName1 = $_FILES['csv1']['tmp_name'];
        $tmpName2 = $_FILES['csv2']['tmp_name'];

        // check the file is a csv
        if($ext1 == 'csv' && $ext2 == 'csv'){
            if(($handle1 = fopen($tmpName1, 'r')) != FALSE) {
                // necessary if a large csv file
                set_time_limit(0);

                $row = 0;

                while(($data1 = fgetcsv($handle1, 1024, ',')) != FALSE) {
                    // number of fields in the csv
                    if(($handle2 = fopen($tmpName2, 'r')) != FALSE){
                        set_time_limit(0);
                        $dna1 = $data1[1];
                        while(($data2 = fgetcsv($handle2, 1024, ',')) != FALSE) {
                            $dna2 = $data2[1];
                            if(strcmp($dna1, $dna2) == 0){
                                printf("<p> %s </p>", $dna1);
                            }
                        }
                        fclose($handle2);
                    }
                }
                fclose($handle1);
            }
        }
    }
    
?>

这部分有问题:if(strcmp($dna1, $dna2) == 0)。我不知道为什么这段代码有错误:

在此处输入图像描述

这是我使用的文件 csv:

文件 1:https ://github.com/rrodrigofranco/fornoPID/blob/main/B802828_Family_Finder_Matches_2021-10-02.csv

文件2:https ://github.com/rrodrigofranco/fornoPID/blob/main/B802890_Family_Finder_Matches_2021-10-02.csv 有人可以帮助我吗?

标签: phpstringcsv

解决方案


推荐阅读