换行文本 - 用php不区分大小写

时间:2010-01-22 17:44:15

标签: php search variables case-sensitive

如果我搜索tOm ArNfElD$variable是“Tom Arnfeld”,我会在MySQL({1}}中获得很好的结果(不区分大小写)。

如何使用LIKE$variable中匹配的文字换行以突出显示搜索的哪个部分与查询匹配?我需要保留<span></span>的原始案例。

3 个答案:

答案 0 :(得分:1)

我会使用正则表达式:

$text = preg_replace('~(' . preg_quote($search, '~') . ')~i', '<span>$1</span>', $text);

还有其他方式,例如soulmerge suggestedstr_ireplace()):

$text = str_ireplace($search, '<span>' . $search . '</span>', $text);

答案 1 :(得分:1)

$textToPrint = preg_replace("/({$variable})/i","<span class"myclass">$1</span>,$text);

这可能会有所帮助

答案 2 :(得分:0)

如果要替换整个字符串或将LIKE参数转换为正则表达式并使用str_ireplace()(不要忘记preg_replace()字符串,则可以使用preg_quote()虽然)。

使用正则表达式的示例:

$parts = explode('%', $likeQuery)
foreach ($parts as &$innerString) {
    $innerParts = explode('_', $innerString);
    foreach ($innerParts as &$part) {
        $part = preg_quote($part, '/');
    }
    // always unset references when you're done with them
    unset($part):
    $innerString = implode('.', $innerString);
}
// always unset references when you're done with them
unset($innerString):
$regex = implode('.*?', $parts);
$transformedString = preg_replace("/$regex/", '<span>$0</span>', $stringToTransform);