开发者

Wildcard PHP text search

I have a text string that has been doctored to be web safe URLs i.e. non alphanumeric's are converted to "_".

What I want to do is search for the original name before it was converted, this means that I need some kind of wild card search i.e.

What I have

test__mytest

With wildcards

test??mytest

The string I would find with the wildcard search

test: mytest

Can someone tell me how to achieve this in PHP?开发者_开发技巧 Thanks


Might have found the solution here I'll update if I get it to work.

Edit: Here is my solution

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

This replaces all _'s with a search for a single character in that place. I then use the following line to test $searchstring against the test string.

if (preg_match($searchstring, $matchtitle))


Another approach could be encoding the special characters instead of transforming them to underscores. Then you wouldn't need wildcards, you would just search for the encoded value.

For example test%3A%20page

This would also prevent the problem you would encounter if you tried convert the following two into pages:

test:page
test!page

They would both get turned into test_page, and the space/time continuum would be in danger. Probably unlikely, but still undesirable.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜