スクリプトを書き込もうとしていますが、行き詰まり続けています。
変数があります$message
。解析したいです。*と*の間に含まれるすべてのものが異なる色になるようにします。例えば:
This is message * 1
影響を受けません。だが
This is a *message* see how it works *again here*.
持っているmessage
とagain here
は別の色になります。
スクリプトを書き込もうとしていますが、行き詰まり続けています。
変数があります$message
。解析したいです。*と*の間に含まれるすべてのものが異なる色になるようにします。例えば:
This is message * 1
影響を受けません。だが
This is a *message* see how it works *again here*.
持っているmessage
とagain here
は別の色になります。
regexpes付き:
$in = 'This is a *message* see how it works *again here*.';
$out = preg_replace('/\*([^*]+)\*/', '<span class="color">$1</span>', $in);
print $out;
欲張りでないマッチより少し速い。
explode
アスタリスクで文字列を分割するために使用します。その後、配列内の各要素を出力し、その間に適切なマークアップを入れて色を変更できます。
このようなもの:
$parts = explode('*', $message);
$italic = false;
for ($part in $parts)
{
if ($italic)
echo '<i>' . $part . '</i>';
else
echo $part;
$italic = !$italic;
}
私はの使用をお勧めしますpreg_replace()
:
$message = preg_replace("#\*(.*?)\*#", "<span class=\"color-red\">\\1</span>", $message);
$output = preg_replace('/\*([^*]+)\*/', '<em>$1</em>', $message);
また
$output = preg_replace('/\*(.+?)\*/', '<em>$1</em>', $message);
$message = 'This is a *message* see how it works *again here*.';
$colorMessage = preg_replace('/\*([^\*]+|[\w]+)\*/', "<span class='color2'>$0</span>", $message);