无法正确突出显示字符串中的单词
Unable to highlight words correctly inside a string
我试图突出显示字符串中的某些特定单词。
例如:
$keyword='span';
$string='<span>Set color of the string inside span.</span>';
并使用以下函数:
$str = preg_replace("/($keyword)/i","<span style='color:orange;'>[=11=]</span>",$string);
现在的问题是,它在 span 标签和 span 内突出显示 'span' 关键字,但是 我只想在字符串内突出显示 "span" 不是 span 标签本身,但不知道该怎么做。
我想在不使用 strip_tags 的情况下完成所有这些 。
我认为问题在于您正在尝试解析 HTML 代码。我建议删除 HTML 标签,然后解析纯文本,然后将其插入最终 html 代码。
$keyword='span';
$string='<span>Set color of the string inside span.</span>';
$string_notags = strip_tags($string); //remove html tags
echo "<span>".preg_replace("/(".$keyword.")/iu", "<span style=\"color:red\"></span>", $string_notags)."</span>";
希望这会有所帮助
<?php
$keyword='span';
$str='<span>Set color of the string inside span.</span>';
echo preg_replace("/(?<!<|\/)$keyword/i",'<span style="color:red;">[=10=]</span>',$str);
根据您的代码场景,我有两种解决方案。希望这两种解决方案都适合您
$str = preg_replace("/^\s($keyword)[^>]/i","<span style='color:orange;'>[=10=]</span>",$string);
$str = preg_replace("/[^<]($keyword)[^>]/i","<span style='color:orange;'>[=11=]</span>",$string);
我试图突出显示字符串中的某些特定单词。
例如:
$keyword='span';
$string='<span>Set color of the string inside span.</span>';
并使用以下函数:
$str = preg_replace("/($keyword)/i","<span style='color:orange;'>[=11=]</span>",$string);
现在的问题是,它在 span 标签和 span 内突出显示 'span' 关键字,但是 我只想在字符串内突出显示 "span" 不是 span 标签本身,但不知道该怎么做。
我想在不使用 strip_tags 的情况下完成所有这些 。
我认为问题在于您正在尝试解析 HTML 代码。我建议删除 HTML 标签,然后解析纯文本,然后将其插入最终 html 代码。
$keyword='span';
$string='<span>Set color of the string inside span.</span>';
$string_notags = strip_tags($string); //remove html tags
echo "<span>".preg_replace("/(".$keyword.")/iu", "<span style=\"color:red\"></span>", $string_notags)."</span>";
希望这会有所帮助
<?php
$keyword='span';
$str='<span>Set color of the string inside span.</span>';
echo preg_replace("/(?<!<|\/)$keyword/i",'<span style="color:red;">[=10=]</span>',$str);
根据您的代码场景,我有两种解决方案。希望这两种解决方案都适合您
$str = preg_replace("/^\s($keyword)[^>]/i","<span style='color:orange;'>[=10=]</span>",$string);
$str = preg_replace("/[^<]($keyword)[^>]/i","<span style='color:orange;'>[=11=]</span>",$string);