我的html视图在屏幕上显示.htgroup
文件的内容,例如:
download: user1 user2 user3
movies: test test2 user1 user2 user3
我想在download
标记中封装组名(movies
和<strong>
),以便它们在浏览器中显示为粗体。我怎么能在PHP5中这样做?我确信使用像preg_replace()
这样的函数有一种优雅的方法可以做到这一点,但我在正则表达式上非常糟糕。
行分隔符为\n
。
答案 0 :(得分:8)
在这种情况下,您可以使用str_replace
作弊并执行此操作,例如$line = "<strong>".str_replace(":", ":</strong>", $line);
,但非混乱且可靠的方法是使用正则表达式。
答案 1 :(得分:2)
您没有详细说明文本的格式,也许这个?
$htgroup = preg_replace('/^.*?:/m', '<strong>\0</strong>', $htgroup);
答案 2 :(得分:0)
假设每一行都以\n
分隔,优雅的正则表达式解决方案将是:
$str = "download: user1 user2 user3\n".
"movies: test test2 user1 user2 user3";
$rows = explode( "\n", $str );
foreach( $rows as $r ){
echo preg_replace('/^([^ ]*):/', '<strong>$1</strong>:', $r);
}
如果你想使用html(-ish)布局,那么你可能想在每一行之后添加一个换行符。但我告诉你演讲部分。
答案 3 :(得分:0)
我认为不需要正则表达式。像这样的东西应该很容易做到这一点
$lines = file('/path/to/.htgroup');
foreach($lines as $line) {
echo '<strong>' . str_replace(':', ':</strong>', $line) . '<br />';
}
请注意添加换行符以保留浏览器中不同行的输出。