【问题标题】:string highlight function to be case-insensitive字符串高亮功能不区分大小写
【发布时间】:2014-02-02 01:47:41
【问题描述】:

我有一个测试突出显示功能来突出显示自动完成输出中的字符串部分。它很好用,除了区分大小写。

正如您将在下面看到的那样,该函数不能与 $term = cer 一起正常工作,因为该术语位于植物名称的开头并大写。如果我更改 $term = can 或 $term = ercis 一切都很好。

我怎样才能使这个函数更加动态并使其不区分大小写?

功能如下:

    <?php
    $term = 'cer';
    $termHighlight = '<span style="color:#cccccc">' . $term . '</span>';
    $plant = 'Cercis canadensis';

    $plant = str_replace($term, $termHighlight, $plant);
    print_r($plant);
    ?>

提前感谢各位朋友。

【问题讨论】:

    标签: php function highlighting


    【解决方案1】:

    好好利用str_ireplace()!这是您的str_replace 的不区分大小写版本

    $plant = str_ireplace($term, $termHighlight, $plant);
    

    【讨论】:

    • Shankar Damodaran,很有效,非常感谢,我会尽快回复。
    • Shankar,我可能有点为时过早,如果我想让图片保持为 Pic 怎么办,因为它现在强制输出为小写。我尝试 ucfirst,但没有任何反应,因为第一个字母是我的 标签中的 s?
    • @BillChambers,按照我的说明在此处执行ucfirst().. $termHighlight = '&lt;span style="color:#cccccc"&gt;' . ucfirst($term) . '&lt;/span&gt;';
    • 几乎就在那里,如果 $term 是第一个单词的开头,那么不好的是,如果用户要搜索 cana 它会将不应大写的第二个单词的 C 大写.这些是植物名称,所以第一个单词总是大写,第二个不是。有没有办法做 if(start of string){ucfirst}?
    猜你喜欢
    • 2016-01-05
    • 2022-11-22
    • 2016-01-26
    • 2014-09-07
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多