我从数据库中获取了列类型为TEXT的数据。假设获取的数据是一个包含一些唯一关键字的段落。
例如。
I am -b- Batman -.b-
现在-b- and -.b-
打算做的是这些必须是粗体
像
I am **Batman**
我如何实现这一目标?我正在使用PHP和MySQL,如果这在jquery javascript中可以实现,请告诉
并且在数据库中它就像这样存储
I am -b- Batman -.b-
答案 0 :(得分:2)
您可以将其替换为HTML-Tags。像BBCode一样。
$i = 0;
$open=array("-b-","-i-");
$close=array("-.b-","-.i-");
$openhtml=array("<b>","<i>");
$closehtml=array("</b>","</i>");
while(count($open) > i){
if (strpos($text, $open[i]) !== false) {
echo str_replace("$open[i]","openhtml[i]","$text");
echo str_replace("$close[i]","closehtml[i]","$text");
}
i++;
}
我希望我能帮助你。
别忘了接受答案;)
答案 1 :(得分:1)
只需使用str_replace。如果你想要HTML:
$string = str_replace('-b-', '<strong>', $string);
$string = str_replace('-.b-', '</strong>', $string);
或者,如果你真的是指*
个字符
$string = str_replace('-b-', '**', $string);
$string = str_replace('-.b-', '**', $string);
答案 2 :(得分:0)
我们可以做preg_matches
,构建函数并做各种事情来实现你想要的。但是,由于您只想将-b-
和-.b-
替换为**
,我建议您使用str_replace
。
$result['paragraph'] = str_replace(array('-b-', '-.b-'), "**", $result['paragraph']);
如果您愿意,仍然可以使用preg_replace
。
$string = "There is a white -b- dog -.b- in my neighbor's garden";
$string = preg_replace("/-b-(.+?)-.b-/is", "**$1**", $string);
echo $string;
答案 3 :(得分:0)
没有whitespace
或attributes
然后会这样做:
str = 'I am -b- -i- Batman -.i- -.b- -br.-';
console.log(
str.replace(/-\.?\w+\.?-/ig, function(n) {
m = n
.replace('-.', '-/')
.replace('.-', '/-')
.replace('-', '<');
m = m
.split("").reverse().join("")
.replace('-', '>');
m = m
.split("").reverse().join("")
return m;
})
)
&#13;
答案 4 :(得分:0)
您可以通过str_replace
$str = $result['paragraph'];
echo str_replace('-.b-', '</strong>', str_replace('-b-', '<strong>', $str));
并在javascript中:
var str = '<?php echo $result['paragraph']; ?>';
str.replace('-b-', '<strong>').replace('-.b-', '</strong>');
答案 5 :(得分:-1)
在PHP中,使用str_replace();
在Javascript中,replace();