New chat
Today
PHP обработка строки с кириллицей
7 Days
SQLite datetime timezone issue solution
Поиск и сравнение email в PHP
Проверка несоответствий order_id в SQLite3
Удаление случайной части строки в PHP
30 Days
Получение значения id_corpcom при нажатии
Ошибка OpenSSL: устаревший алгоритм шифрования
2025-04
Добавление виджетов сайтов на Android
Сбор значений класса countch с jQuery
Декодирование текста письма Windows-1251 в PHP
Изменение URL в браузере без перезагрузки
2025-03
1 подключить bootstrap создать ф
2025-02
notes audio move block
php imap
code pj code notes
img docup cdn
fj
mailer
пазлов svg
gif
использовать php bootstrap datat
загрузить html блок с одного адр
dynamic sidebar html css bootstr
используя php bootstrap datatabl
fullcalendar datatable
php прибывать к формату 2025-02-
код js
2025-01
кто я
Get App
My Profile
PHP обработка строки с кириллицей
Примеры строк ТЛ-СФ2-А111-005-Вн[У]-Т3-80-Н33-10-Ф-ПК1-КБн(0)-0, TЛ-С2-S1B1102-005-0-T1-650-НЗ1-10-UNF-0-TBп(2)-0-1, ТЛ-П2-А101-01-0-T1-275-H311-0-П-K2-C50-0-0 Строка например ТЛ-СФ1-А111-005-Вн[У]-Т3-80-Н33-10-Ф-ПК1-КБн(0)-0 она указывается в форме отправляется на сервер в обработку в PHP Эта строка должна заменить кириллицу оставить не тронутой, а любое совпадения букв с латиницы и кириллице заменить на латиницу Например C и С разные оставить C на латинице Поднять все верхний регистр даже оставшиеся кириллицу Строка ТЛ-СФ1-А111-005-Вн[У]-Т3-80-Н33-10-Ф-ПК1-КБн(0)-0 разбирается через - девиз И каждый параметр проверяется в массиве, сам массив берется из БД sqlite После для каждого отдельного СФ1 или Т3 и т.д. после как нашли применяем различные условия выбора данных из БД По итогу строка должна выдавать обратно на запрос данные где каждый параметр что то означает Возможно парсить запрос перед отправкой на сервер заменяя возможные совпадающие буквы кириллицы на латиницу или на сервере

Вот пример реализации на PHP, который обрабатывает строку согласно вашим требованиям:

php
Copy
Download
<?php
// Функция для замены кириллических символов на латинские, где это необходимо
function replaceCyrillicWithLatin($str) {
    $replacements = [
        'А' => 'A', 'В' => 'B', 'С' => 'C', 'Е' => 'E', 'Н' => 'H', 
        'К' => 'K', 'М' => 'M', 'О' => 'O', 'Р' => 'P', 'Т' => 'T', 
        'У' => 'Y', 'Х' => 'X', 'а' => 'a', 'в' => 'b', 'с' => 'c', 
        'е' => 'e', 'н' => 'h', 'к' => 'k', 'м' => 'm', 'о' => 'o', 
        'р' => 'p', 'т' => 't', 'у' => 'y', 'х' => 'x'
    ];
    
    // Заменяем только те символы, которые имеют латинские аналоги
    $result = '';
    for ($i = 0; $i < mb_strlen($str); $i++) {
        $char = mb_substr($str, $i, 1);
        $result .= $replacements[$char] ?? $char;
    }
    
    return $result;
}

// Функция для обработки строки
function processTLString($inputString) {
    // Переводим всю строку в верхний регистр
    $upperString = mb_strtoupper($inputString);
    
    // Разбиваем строку на части по разделителю '-'
    $parts = explode('-', $upperString);
    
    // Обрабатываем каждую часть
    $processedParts = array_map('replaceCyrillicWithLatin', $parts);
    
    // Собираем обратно строку
    $processedString = implode('-', $processedParts);
    
    return $processedString;
}

// Пример использования
$inputString1 = 'ТЛ-СФ1-А111-005-Вн[У]-Т3-80-Н33-10-Ф-ПК1-КБн(0)-0';
$inputString2 = 'TЛ-С2-S1B1102-005-0-T1-650-НЗ1-10-UNF-0-TBп(2)-0-1';
$inputString3 = 'ТЛ-П2-А101-01-0-T1-275-H311-0-П-K2-C50-0-0';

$output1 = processTLString($inputString1);
$output2 = processTLString($inputString2);
$output3 = processTLString($inputString3);

echo "Input 1: $inputString1\n";
echo "Output 1: $output1\n\n";

echo "Input 2: $inputString2\n";
echo "Output 2: $output2\n\n";

echo "Input 3: $inputString3\n";
echo "Output 3: $output3\n\n";

// Далее можно подключиться к SQLite и выполнить поиск по каждому параметру
function queryDatabase($processedString) {
    // Подключение к SQLite (пример)
    $db = new SQLite3('database.db');
    
    // Разбиваем обработанную строку на части
    $parts = explode('-', $processedString);
    
    $results = [];
    
    // Здесь должна быть ваша логика запросов к БД для каждого параметра
    // Например:
    foreach ($parts as $index => $part) {
        // Пропускаем первый элемент "ТЛ" (или "TL" после обработки)
        if ($index === 0) continue;
        
        // Удаляем возможные скобки и их содержимое для поиска
        $cleanPart = preg_replace('/\(.*?\)/', '', $part);
        
        // Запрос к БД (пример)
        $query = "SELECT * FROM parameters WHERE code = :code";
        $stmt = $db->prepare($query);
        $stmt->bindValue(':code', $cleanPart);
        $result = $stmt->execute();
        
        // Обработка результата
        while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
            $results[$index] = $row;
        }
    }
    
    return $results;
}

// Пример запроса к БД
// $dbResults = queryDatabase($output1);
// print_r($dbResults);
?>

Этот код:

  1. Переводит всю строку в верхний регистр

  2. Заменяет кириллические символы на латинские только там, где есть соответствующие аналоги (например, 'С' на 'C', но только если это кириллическая 'С')

  3. Разбивает строку на части по разделителю '-'

  4. Каждую часть обрабатывает отдельно

Для работы с SQLite вам нужно:

  1. Создать базу данных с таблицами, содержащими информацию о параметрах

  2. Реализовать логику запросов для каждого типа параметра (например, СФ1, Т3 и т.д.)

  3. Добавить обработку специальных символов (скобки, квадратные скобки)

Вы можете выполнять эту обработку как на клиенте (перед отправкой на сервер), так и на сервере. Лучше делать это на сервере, чтобы:

  • Сохранить оригинальные данные от клиента

  • Иметь возможность улучшать логику обработки без обновления клиентского кода

  • Обеспечить единообразие обработки для всех клиентов

New chat
DeepThink (R1)
Search
AI-generated, for reference only