@rcoisson

Как добавить номер строки при выводе информации?

Есть поисковик который ищет похожие адреса улиц в файле и выводит в случае совпадения,подскажите как сделать чтобы с выводом дубликата выводился ещё и номер строки дубликата? типа 37 => 101 terrace ave

<html>
<head>
<title>SEARCH</title>
</head>
<body>

<?php
if (isset($_POST['action'])){

    echo "Search doubles: <br><br>";
    $all_data = array();
    $founded = TRUE;

    $source_data = explode("\n", file_get_contents("./db.txt"));

    $content = strtolower(file_get_contents("./db.txt"));
    $content = str_replace(array("(",")","-",".", ",","’s","'s","’","'"), "", $content);
    $content = preg_replace('/ {2,}/',' ', $content);
    $content = str_replace("street", "st", $content);
    $content = str_replace("avenue", "ave", $content);
    $content = str_replace("road", "rd", $content);
    $content = str_replace("lanes", "ln", $content);
    $content = str_replace("lane", "ln", $content);
    $content = str_replace("drive", "dr", $content);
    $content = str_replace("boulevards", "blvd", $content);
    $content = str_replace("place", "pl", $content);
    $content = str_replace("terrace", "tr", $content);
    $content = str_replace("court", "ct", $content);


    $lines = explode("\n", $content);

    $doubles = array();

    for ($i = 0; $i < count($lines); $i++){
        if (strstr(strtolower($lines[$i]), strtolower($_POST['search']))){
            $lines[$i] = trim(str_replace(strtolower($_POST['search']), "", $lines[$i]));
            if (in_array($lines[$i], $all_data)){


                if (!isset($doubles[str_replace($_POST['search'], "", $source_data[$i])])){

                    $iskomoe = array_keys($all_data, $lines[$i]);
                    if (isset($iskomoe[0])){
                        echo htmlspecialchars(str_replace($_POST['search'], "", $source_data[$iskomoe[0]])) . "<br>";
                    }
                }
                $doubles[str_replace($_POST['search'], "", $source_data[$i])] = $i;

                echo htmlspecialchars(str_replace($_POST['search'], "", $source_data[$i])) . "<br>";
                $founded = FALSE;
            } else {
                $all_data[$i] = $lines[$i];
            }
        }
    }

    //print_r($all_data);

    if ($founded){
        echo "<b>Not found</b>";
    }
    echo "<br><br><a href='./search.php'>&lt; Back</a>";

} else {
?>
<br><br>
<form method="POST">
<input type="hidden" name="action" value="1">
<br><br> Search: <input type="text" name="search">
<br><br>
<input type="submit" value="Search">
</form>

<?php
}
?>
</body>
</html>
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Ну сделайте так:
if (isset($iskomoe[0])){
    echo htmlspecialchars($doubles[str_replace($_POST['search'], "", $source_data[$i])]." => ".$i." ".str_replace($_POST['search'], "", $source_data[$iskomoe[0]])) . "<br>";
}


P.S. Но в целом - код переписывать надо, много нелогичных и неоптимальных мест.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы