0

私のhtmlビューは、.htgroupファイルの内容を画面に表示します。次に例を示します。

download: user1 user2 user3
movies: test test2 user1 user2 user3

downloadグループ名 (およびmovies) を<strong>タグでカプセル化し、ブラウザーで太字で表示されるようにします。PHP5でこれを行うにはどうすればよいですか? のような関数でこれを行うエレガントな方法があると確信していますがpreg_replace()、正規表現が非常に苦手です。

行区切りは\n.

4

4 に答える 4

8

str_replaceこの場合、のようにチートしてそれを行うことができますが$line = "<strong>".str_replace(":", ":</strong>", $line);、乱雑でなく信頼できる方法は正規表現を使用することです。

于 2012-09-11T14:09:17.277 に答える
2

テキストがどのようにフォーマットされているかについての詳細はありませんでした。

$htgroup = preg_replace('/^.*?:/m', '<strong>\0</strong>', $htgroup);
于 2012-09-11T14:11:04.550 に答える
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) レイアウトを使用する場合は、すべての行の後に改行を追加することをお勧めします。しかし、プレゼンテーションの部分はあなたに任せます。

于 2012-09-11T14:16:24.217 に答える
0

正規表現は必要ないと思います。このようなものは簡単にうまくいくはずです

$lines = file('/path/to/.htgroup');

foreach($lines as $line) {
    echo '<strong>' . str_replace(':', ':</strong>', $line) . '<br />';
}

ブラウザーの別の行に出力を保持するために、改行が追加されていることに注意してください。

于 2012-09-11T14:21:16.513 に答える