Единственное, я не учёл защиту от входных данных, т.к. функция принимает и массивы... Ну в принципе в моей библиотеке для работы с массивами есть другая библиотека...
Строитель, принял к сведению, спасибо.
Я вот тоже подумал... второй параметр явно указывает на символ экранирования. А у меня понятно что идёт экранирование и понятно что разделитель это спецсимвол, но это не явное указание... Думаю твой пример будет намного правильнее... Читая код нужно сразу понимать что и как, а не додумывать
Строитель, не так высказал мысль ))) хотел сказать что и твой (часть его) и мой вариант кода с моими экранами не работает
А второй параметр я видел, только у себя убрал и не внимательно протестировал ))) А потом решил просто изначально использовать спецсимвол чтобы "не дёргаться"
Я использую #
и твой вариант и мой выкидывает ошибку.. Твоя тильда тоже не спецсимвол )))
Видимо придётся переключиться на звёздочку.. она точно спецсимвол..
И при этом экранирование помогает, а вот \Q\E уже не работает....
в общем вот готовый метод.. может кому пригодиться.. или может кто подправит и оптимизирует
Вот спасибо... только сейчас понял что нужно использовать найденные переменные в замене... А я использовал $need...
Тема закрыта. Спасибо (Добавление) Quick, не надо тут ничего придумывать ))) всё отлично работает...
PS
поиск идёт через Ajax, так что при вводе одной фразы должны вываливаться все возможные варианты (Добавление)
кстати, а не проще вместо preg_quote() использовать \Q...\E ?
Есть строка поиска, например, "коров". Есть искомая строка "Корова шла по полю и видела других коров".
Необходимо найти все регистронезависимые вхождения строки поиска и заменить её на строку, например с определённым классом.
Проблема поиска и замены не проблема, ну нужно сохранить регистр букв искомой строки.
То есть должно быть к примеру "<b>Коров</b>а шла по полю и видела других <b>коров</b>"
Что-то совсем запутались мозги.. заменяется или всё на "<b>коров</b>" или всё на "<b>Коров</b>"
Чего смеешься? https://github[dot]com/joomla/joomla-cms Они давно уже взяли направление на стандарты...
Да это шутка
Конечно я видел их код... хотя это что-то ужасное с чем-то огромным (ну или наоборот)
Просто не так легко на "добровольной" основе из команды в пару человек взять идею (вернее уже даже не идею, а основу) и сделать что-то свою на стандартах.. Конечно не сравниться с командой из сотни кодеров... Но имеем, что имеем...
Хотя если честно, я изначально противился Namespase.. По мне, это и сейчас что-то не совсем "конкретное", а больше "правильное". Но пока ковырялся, нашёл один плюсик, IDE лучше работает да и "помогает" если использовать namespase... Но всё равно, эта штука больше относится к организации проекта чем к кодинку... В принципе это как семантика в HTML5
Да, положи их куданить еще, чтоб в корне не валялись.
Это я пока "образно" накидал. Предполагается что вызов будет \ХХХ\Class, что уже является путём к файлу
DeepVarvar пишет:
Но зачем? Именуй файлы в правильном кейсе.
Это личное, не люблю в файлах иметь заглавные буквы . И кто-знает как система воспримет совместимость разных регистров..
DeepVarvar пишет:
Хотя, все зависит от качества имеющегося кода, может там полная жопка. Да.
Наследие Джумлы Там не только жопа но и г... остаётся ещё много от чего пока ещё не избавился.. Но осталось чуть-чуть
DelphinPRO пишет:
Есть Composer, он прекрасно справляется с данной задачей.
Да вот сколько пытаюсь освоить, но пока не получается.. Или критическая задача не стояла, или второе.... Теорию понимаю, практику пока не очень могу освоить... А может просто нет в этом необходимости
Пишу уже то, что нужно делать.. А то я неделю на грабли наступал.
Первым делом открываете свой IDE, у меня PhpStorm (всем советую, для проектов с лицензиями свободного программного обеспечения лицензия бесплатная). Настраиваем Инспектор только на что-то подобное:
- Undefined class: Declaration of referenced class is not found in built-in library and project files.
- Referenced function, method, field or class from callback is not found
- Referenced constant is not found in subject class.
- Declaration of referenced constant is not found in built-in library and project files.
- Referenced field is not found in subject class.
- Declaration of referenced function is not found in built-in library and project files.
- Label is not found in current scope.
- Referenced method is not found in subject class.
- Referenced namespace is not found.
Оставил только эти, остальные уже при тестировании...
Находим проблемы и исправляем их.
Далее кропотливо открываем каждый файл и вставляем NameSpase в начало. Была мысль написать скриптик, но побоялся что-то попортить, а вдруг Но в принципе, скрипт не очень сложный должен получиться...
Дальше снова запускаем инспектор и начинаем править вызовы классов, методов и т.п.
Тут всё зависит от самих файлов, где проще добавить \ХХХ\Class, а де всё же через use...
Теперь что касается 10 дней... НЕ РЕАЛЬНО!
У меня был "тестовый забег", просидел почти две недели - не далеко продвинулся... Затягивает время ещё то, что по ходу всплывают какие-то сторонние ошибки..
Ещё столкнулся с такой бедой как название самих классов и их размещение по файлам.. Т.е. нет системы. Например, библиотеки не имеют определяющего префикса, название файлов и классов очень разнятся, в одном файле несколько классов.
В связи с этим Автолоадер получается с костыльцом на начальном этапе, приходится учитывать некоторые особенности...