0

PHPでtxtファイルから読み込もうとしています。ファイルを開いて行ごとに適切に表示することはできますが、最初の単語に基づいて決定したいと考えています。たとえば、テキスト ファイルの行が次のように始まっているとします。

何か1: これはテストです

その文字列を出力しますが、「Something1:」は太字で色が異なります

何か2: これはテストです2

どちらも大胆で色になります。だから、「Something1:」とタグ付けされたものはすべて太字で赤く出力したいが、「Something2:」はすべて太字で緑で出力したいとします。とにかくそれを行うことはありますか。

$file = fopen($message_dir, "a+") or exit("Unable to open file!");
//Output a line of the file until the end is reached
while (!feof($file))
{
    if (strpos(fgets($file), "Something1") == 0)
    {
        echo "<font color='#686868'><b>".fgets($file)."</b></font><hr />"."<br />";
    }
    else
    {
        echo "<font color='#fc0c87'><b>".fgets($file)."</b></font><hr />"."<br />";   
    }
}
fclose($file);

これは私が目指していた方向ですが、もっと簡単で効率的な方法があると確信しています。まず第一に、これは文全体を太字にして色付けし、第二に、ifステートメントを正しく実行するため、fgets自動インクリメントまたは何かだと思いますが、ifステートメントを実行した行の代わりに次の行を出力します。しかし、それが私の最初の考えでした。単語が文字列の位置 0 にあるかどうかを確認してください。

4

2 に答える 2

0

ファイルからバッファ変数に読み込む必要があります。ファイルから新しいデータを読み取るたびに、前のデータは「失われます」。

$file = fopen($message_dir, "r") or exit("Unable to open file!");
//Output a line of the file until the end is reached
while (!feof($file))
{
    $currentLine = fgets($file);
    if (strpos($currentLine, "Something1") == 0)
    {
        echo "<font color='#686868'><b>$currentLine</b></font><hr /><br />";
    }
    else
    {
        echo "<font color='#fc0c87'><b>$currentLine</b></font><hr /><br />";   
    }
}
fclose($file);

font タグなどは使用しませんが、css に依存します。

$file = fopen($message_dir, "r") or exit("Unable to open file!");
//Output a line of the file until the end is reached
echo "<ul>\n";
while (!feof($file))
{
    $currentLine = fgets($file);
    if (strpos($currentLine, "Something1") == 0)
    {
        echo "<li class="Some1">$currentLine</li>\n";
    }
    else
    {
        echo "<li>$currentLine</li>\n";   
    }
}
echo "</ul>\n";
fclose($file);

あなたはリストを出力しているので、私は順序付けられていないリストを使用し、次のようなcssを介してフォーマットします:

ul > li {
    color: #fc0c87;
    font-weight: bold;
    list-style: none;
}

ul > li.Some1 {
    color: #686868;
}

ルールを適切に変更するul > li ことで、css を活用して、hr/br タグを使用した場合よりも外観をより適切に適合させることができます。

于 2013-06-17T15:20:47.493 に答える