您好我是新來的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然後返回到此處,並使用勾號/複選標記執行相同操作,直至變爲綠色。這告知社區,找到了解決方案。否則,其他人可能會認爲這個問題仍然存在,並且可能需要發佈(更多)答案。您將獲得積分,其他人將被鼓勵幫助您。 *歡迎使用堆棧!* –