我试图将^
替换为<span>
。但是,我失败了。我试过str_replace
,但没有正常工作。
所以,我原来的价值是:
^ffcb4a Special reward of the territory war. \rUsed to manufacture Rank IX gears. \rDon't lose this.
你可以看到,有一个颜色值,以^
开头,我想替换为:'<span style=color"#ffcb4a">
。
但是对于我的str_replace
,我得到了这个:
<span style='color:#'ffcb4a Special reward of the territory war. \rUsed to manufacture Rank IX gears. \rDon't lose this.
你可以看到,它不起作用。
$item_description = str_replace('^', "<span style='color:#'" . '', $item_description);
答案 0 :(得分:0)
你需要使用正则表达式。
$item_description = '^ffcb4a Special reward of the territory war. \rUsed to manufacture Rank IX gears. \rDon\'t lose this.';
echo preg_replace('/\^(.*?)\h/',
'<span style="color:#$1">',
$item_description);
输出:
<span style="color:#ffcb4a">Special reward of the territory war. \rUsed to manufacture Rank IX gears. \rDon't lose this.
还不清楚您希望span
在哪里结束..
此正则表达式捕获^
和第一个水平空格之间的所有内容。
Regex101演示:https://regex101.com/r/bA4dC8/1
您无法使用str_replace
,因为您不知道在哪里关闭span
。
如果您想在^
之后拉出前6个字符,则可以更改
(.*?)\h
到
(.{6})
其中任何6个字符。
示例:
$item_description = '^ffcb4a Special reward of the territory war. \rUsed to manufacture Rank IX gears. \rDon\'t lose this.';
echo preg_replace('/\^(.{6})/',
'<span style="color:#$1">',
$item_description);