PageUp
@PageUp
narcoding

Как найти картинку в папке по совпадению слова из файла и названию картинки?

Здравствуйте. Назрел такой вопрос. Можно ли вообще такое реализовать и как. Я пробовал pregmatch но он выдает лишь просто есть ли совпадение или оно отсутствует. да или нет. А тут конкретно нужно так.

Есть определенный файл. В нем есть определенные текстовые данные. Например Сочный китайский апельсин.

В папке Images есть картинки вида: Апельсин.png, Яблоко.png, Арбуз.png.
Изображений может быть большое количество.

Как сделать что бы при чтении любого файла в котором упоминается слово Апельсин (или любое другое, которое есть в папке в названии любого файла .png), не важно с какой буквы, заглавной или прописной, не важно в каком месте текста, подставлялось найденное в папке изображение с названием Апельсин.png (любое другое по совпадению)

Реально ли вообще такое осуществить? Я делал некоторые вариации, но все они бессмысленны по сути. Совершенно не то. Максимум что я добивался это получить ответ есть ли в папке картинка с искомым словом или нет. False / True. А что бы конкретно вывести изображение это уже вообще не представляю как.

В итоге должно быть:

if(file_exists("../images/$imgid.png")){echo'<img src ="../images/'.$imgid.'.png" alt="" class="img" /><br>';


Где $imgid каким то образом должен сам получить значение, если оно присутствует в названиях файлов в папке с картинками и в тексте файла.

Вся сложность в том, что искомые данные неизвестны заранее. Они не передаются и не прописываются изначально. Тут нужен ПОИСК на СОВПАДЕНИЯ . Мы не знаем какое слово может совпадать, это может быть вообще любое. Если есть слово в папке (В названии файла .png) и есть такое же слово в файле= выводится картинка, которая называется этим словом.
  • Вопрос задан
  • 85 просмотров
Решения вопроса 1
nokimaro
@nokimaro Куратор тега PHP
<?php
//список файлов который получен любым из способов, напр. scandir()
$files_list = [
    'Яблоко.png',
    'Апельсин.png',
    'Арбуз.png',
    'мандариН.png',
];

foreach($files_list as $file_name)
{
    if(preg_match('!(Сочный|китайский|апельсин|мандарин)!usi', $file_name, $out))
    {
        echo "Found: {$out[1]} in {$file_name}\n";
    }
}

//Found: Апельсин in Апельсин.png
//Found: мандариН in мандариН.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
ЭР-Телеком Пермь
от 80 000 ₽
ЧИТАЙ-ГОРОД Москва
от 140 000 до 210 000 ₽
DANYCOM Краснодар
от 50 000 до 100 000 ₽
02 апр. 2020, в 09:54
1000 руб./за проект
02 апр. 2020, в 09:18
1000 руб./за проект
02 апр. 2020, в 08:52
1200 руб./в час