PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?php function find_value($value) { $result = array("Россия", "России", "России", "Россию", "Россией", "о России", "в России"); $f = fopen('https://site.ru/city.csv', "r"); while ($row = fgetcsv($f, 0,";")) { if ($row[0] == $value) { $result = array($row[0], $row[1], $row[2], $row[3], $row[4], $row[5], $row[6]); break; } } fclose($f); return $result; } $ip = $_SERVER['REMOTE_ADDR']; $query = @unserialize(file_get_contents('http://ip-api.com/php/'.$ip.'?lang=ru')); $city = find_value($query['city']); $city_1 = $city[0]; $city_2 = $city[1]; $city_3 = $city[2]; $city_4 = $city[3]; $city_5 = $city[4]; $city_6 = $city[5]; $city_7 = $city[6]; ?> |
Немного о коде:
- Определяем через сервис ip-api.com город посетителя. Подробнее об этом сервисе можно прочитать в теме про геолокацию на PHP
- Создаем массив, из которого будем выводить названия, если в файле данных не нашелся город.
- Ищем в этом файле название города по первому столбцу (именительный падеж) и если нашли, то перезаписываем массив.
- Присваиваем для каждого падежа свою переменную, которую потом выводим в любом месте документа
Скачать файл данных:
Таблица с падежами и выводом:
Падеж | Слово | Результат | Вывод |
---|---|---|---|
Именительный | есть | Россия | echo "$city_1"; |
Родительный | нет | России | echo "$city_2"; |
Дательный | рад | России | echo "$city_3"; |
Винительный | вижу | Россию | echo "$city_4"; |
Творительный | любуюсь | Россией | echo "$city_5"; |
Предложный | думаю | о России | echo "$city_6"; |
Предложный | нахожусь | в России | echo "$city_7"; |
Файл данных с падежами найден в интернете и может содержать опечатки и неточности
Аналогичным образом в него можно добавить дополнительные столбцы, например, адрес, телефон, координаты карты и т.д.
Привет у меня почему то не работает((((