您好我是新来的PHP的选择,我需要一点点帮助从PHP字符串
我需要改变就是**之间的PHP字符串文本,并把它的HTML标记
$text = "this is an *example*";之间
但我真的不知道该怎么和我需要帮助
您好我是新来的PHP的选择,我需要一点点帮助从PHP字符串
我需要改变就是**之间的PHP字符串文本,并把它的HTML标记
$text = "this is an *example*";之间
但我真的不知道该怎么和我需要帮助
个人而言,我会用爆炸,那么你就可以拼凑句一起回来,如果例如出现在一个句子的中间
<?php
$text = "this is an *example*";
$pieces = explode("*", $text);
echo $pieces[0];
?>
编辑:
既然你要找的东西基本上相当于定制BB代码中使用此
$text = "this is an *example*";
$find = '~[\*](.*?)[\*]~s';
$replace = '<span style="color: green">$1</span>';
echo preg_replace($find,$replace,$text);
您可以将它添加到一个函数,并将它解析被传递到任何文本它,你也可以找到并替换变量到数组中,并添加更多的代码
你真的应该使用DOM解析器来处理这样的事情,但是如果你能保护它,它将永远是你可以使用的*
字符一些正则表达式:
$text = "this is an *example*";
$regex = '/(?<=\*)(.*?)(?=\*)/';
$replacement = 'ostrich';
$new_text = preg_replace($regex, $replacement, $text);
echo $new_text;
返回
this is an *ostrich*
这里是正则表达式是如何工作的:
Positive Lookbehind (?<=\*)
\* matches the character * literally (case sensitive)
1st Capturing Group (.*?)
.*? matches any character (except for line terminators)
*? Quantifier — Matches between zero and unlimited times, as few times as possible, expanding as needed (lazy)
Positive Lookahead (?=\*)
\* matches the character * literally (case sensitive)
此正则表达式本质出发,通过看什么是前方和搜索字符后面结束您指定并在preg_replace()
替换过程中保留这些字符完好无损。
这不是我所确切的想要... – azjezz
你想要什么?你说*“我需要改变**和这个之间的文本,这样做。 –
我需要的是将**之间的文本放在HTML 标签内而不更改它 – azjezz
您应该使用[PHP DOM解析器](http://simplehtmldom.sourceforge.net/)。 –
如果答案解决了您的问题,请考虑接受答案。以下是http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work然后返回到此处,并使用勾号/复选标记执行相同操作,直至变为绿色。这告知社区,找到了解决方案。否则,其他人可能会认为这个问题仍然存在,并且可能需要发布(更多)答案。您将获得积分,其他人将被鼓励帮助您。 *欢迎使用堆栈!* –