Wildcard PHP текстовый поиск - PullRequest
0 голосов
/ 21 марта 2010

У меня есть текстовая строка, которая защищена от веб-адресов, т. Е. Не алфавитно-цифровые преобразуются в "_".

То, что я хочу сделать, - это искать оригинальное имя до того, как оно будет преобразовано, это означает, что мне нужен какой-то поиск по шаблону, т.е.

Что у меня есть

test__mytest

с подстановочными знаками

test??mytest

Строка, которую я нашел бы при поиске по шаблону

test: mytest

Может кто-нибудь сказать мне, как добиться этого в PHP? Спасибо

Ответы [ 2 ]

0 голосов
/ 21 марта 2010

Другим подходом может быть кодирование специальных символов вместо преобразования их в подчеркивание. Тогда вам не понадобятся символы подстановки, вы просто будете искать закодированное значение.

Например, тест% 3A% 20стр.

Это также предотвратит проблему, с которой вы столкнетесь, если попытаетесь преобразовать следующие два в страницы:

тест: страница
тест! страница

Они оба превратятся в test_page, и пространственно-временной континуум будет в опасности. Вероятно, маловероятно, но все же нежелательно.

0 голосов
/ 21 марта 2010

Могли бы найти решение здесь Я обновлю, если я заставлю его работать.

Редактировать: Вот мое решение

$searchstring = "/".str_replace("_","(.?)", escape_string_for_regex($match))."/";

Это заменяет все_ с поиском одного символа в этом месте.Затем я использую следующую строку, чтобы проверить $ searchstring по отношению к тестовой строке.

if (preg_match($searchstring, $matchtitle))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...