Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-突出显示字符串中的字符_Php_String_Text_Formatting - Fatal编程技术网

PHP-突出显示字符串中的字符

PHP-突出显示字符串中的字符,php,string,text,formatting,Php,String,Text,Formatting,我目前正在为我的网站开发搜索功能 例如,当用户搜索“Test”时,某人的名字是“besttest”,那么“besttest”中的“Test”应该是另一种颜色。但只有“测试”,而不是整个单词 我自己也试过想办法,但没有成功 希望你们能帮我^ ^这是有意义的,如果你使用标记语言。。。但这里有一种方法: $lookup = [ 'test' => '<span class="red">%s</span>', 'color' =>

我目前正在为我的网站开发搜索功能

例如,当用户搜索“Test”时,某人的名字是“besttest”,那么“besttest”中的“Test”应该是另一种颜色。但只有“测试”,而不是整个单词

我自己也试过想办法,但没有成功


希望你们能帮我^ ^

这是有意义的,如果你使用标记语言。。。但这里有一种方法:

$lookup = [
    'test' => '<span class="red">%s</span>',
    'color' => '<span class="green">%s</span>',
    '[0-9]+' => '<b>%s</b>',
];


$string = 'This is a test for coloring testwise an uncolored test-value. Testing 950 349 2 numbers... ';
echo 'before: "'. $string.'"'.PHP_EOL;

foreach($lookup as $term => $format) {
    $string = preg_replace_callback('/'.$term.'/', function($matches) use($format) {
        return sprintf($format, $matches[0]);
    }, $string);
}
echo 'after: "'. $string.'"'.PHP_EOL;
$lookup=[
'测试'=>'%s',
“颜色”=>“%s”,
“[0-9]+”=>“%s”,
];
$string='这是一个对未着色测试值进行测试着色的测试。测试950 349 2个数字;
echo“在:“.$string.”之前。PHP_EOL;
foreach($term=>$format查找){
$string=preg_replace_回调('/'.$term'/',函数($matches)use($format){
返回sprintf($format,$matches[0]);
},$string);
}
在“.$string.”之后回显“.PHP_EOL;
输出:

before: "This is a test for coloring testwise an uncolored test-value. Testing 950 349 2 numbers... "
after: "This is a <span class="red">test</span> for <span class="green">color</span>ing <span class="red">test</span>wise an un<span class="green">color</span>ed <span class="red">test</span>-value. Testing <b>950</b> <b>349</b> <b>2</b> numbers... "
before:“这是对未着色测试值进行测试着色的测试。测试950 349 2个数字…”
之后:“这是对未着色测试值进行着色测试。测试950 349 2个数字…”
使用正则表达式,您可以匹配几乎所有可能的内容,并为其提供不同的样式

hth

使用该功能。下面的例子将只强调关键工作的愿望是“测试”,在这种情况下,不是整个单词。试试这段代码,真的会对你有帮助

 $str = "besttest";
 $keyword = "Test";
 $str = preg_replace("/($keyword)/i",'<span class="yellow">$1</span>',$str);
 print($str);
$str=“最佳测试”;
$keyword=“Test”;
$str=preg_replace(“/($keyword)/i”、“$1”、$str);
印刷品($str);
这将输出如下内容:

best<span class="yellow">test</span>
besttest

是的,因为它有数据库。这对我来说很好。只需使用str_替换并在字符串中插入html<代码>str_替换($search,“$search.”,$string)谢谢!它是有效的,但在这种情况下,胺KOUIS溶液对我来说更好:)