6

私のデータベースには、次のテキストがあります。

for x in values:
   print x

このコードを HTML ページに印刷したいと考えています。そのままHTMLファイルにPHPで出力されます。しかし、ブラウザで HTML を表示すると、もちろん、この形式のテキストは表示されません。次のように表示されます。

for x in values: print x

によって問題を部分的に解決しnl2br、 も使用していますstr_replace(' ','&nbsp',$str)。その結果、私は得ました:

for x in values:
print x

しかし、私はまだ右にシフトprint xする必要があります。で問題を解決できると思いましたstr_replace('\t','   ',$str)str_replaceしかし、印刷前のスペースを「\ t」として認識しないことがわかりました。このスペースも単なるスペースとして認識されません。 つまり、 .の前に何も取得しませんprint

なんで?そして、問題はどのように解決できますか?

4

4 に答える 4

10

\tタブ文字として解釈するには、二重引用符で囲む必要があります。一重引用符で囲まれた文字列は解釈されません。

于 2011-01-18T09:58:45.133 に答える
10

このように、テキストを二重引用符で囲んで引用します

str_replace("\t", '    ', $str);

PHPは、二重引用符で囲まれた文字列の特殊文字を解釈しますが、一重引用符で囲まれた文字列では、。を除いて、文字列をそのまま残します\'


古くて廃止された答え:

メモ帳、データベース文字列、またはこの投稿からタブ文字( "")をコピーし、次のコードを追加します。

str_replace('   ','    ',$str);

(これは4つのスペースではなく、メモ帳からコピーしたタブ文字です)

于 2011-01-18T09:59:21.080 に答える
3

\ t \ nなどを使用する場合は、常に二重引用符を使用してください

于 2011-01-18T09:59:17.170 に答える
3

タブのサイズは実際には固定されておらず、タブストップを計算する必要があるため、注意が必要な場合があります。空白スペースをそのまま印刷し、ブラウザに表示するように指示すると、より簡単になります。タグを使用でき<pre>ます:

<pre>for x in values:
   print x</pre>

...またはwhite-spaceCSSプロパティを設定します。

div.code{
    white-space: pre-wrap
}

(他の人が指摘しているように、PHP'\t'とは異なります。)"\t"

于 2011-01-18T10:05:24.680 に答える