2016-09-13 7 views
-1

私はPHPでレポートを作成しています。この言語は本当に新しいです。PHPで0を空の文字列に置き換える方法

私はpreg_replaceのドキュメントを読んでいましたが、期待通りに動作しません。

はここに私のコードです:

$pattern = 0; 
    $replacement = ' '; 

    $report_output.= ' 
     <td>'.preg_replace($pattern, $replacement, round($row[$win_count])).'</td> 
    '; 

の代わりに空の文字列で0の結果を置き換え、それが空の文字列を持つすべての結果に置き換えられます。ラウンドは、このように素晴らしい作品:

<td>'.round($row[$win_count]).'</td> 

それは私がその周りにpreg_replaceを置くときだけだ、それはphooey、私はすべてを置き換えるものとする "と言います。私は間違って何をしていますか?

+0

代わりに 'str_replace'を試してください。あなたの場合は正規表現は必要ありません。与えられた文字列のすべての出現箇所を置き換えたいだけです。 http://php.net/manual/fr/function.str-replace.php – olibiaz

+0

「0」は「0」と同じではありません – nogad

+0

区切り文字はどこにありますか?この ''/^ 0 $/''をあなたのパターンとして試してみてください。 '^'は開始 '$'は終了ですので、 '0'と一致します。 – ArtisticPhoenix

答えて

1

代わり

$pattern = '/^0$/'; 
$replacement = ' '; 

$report_output.= ' 
    <td>'.preg_replace($pattern, $replacement, round($row[$win_count])).'</td> 
'; 
  • ^は、文字列の一致開始を意味し、これを試してみてください
  • 0が0
  • $一致一つですが

ので、それを文字列の一致終わりを意味します'0'と1つのゼロスタートで一致しますこのようなものではありません。hell0lが文字列の先頭ではないため、末尾の0は一致しません。あなたはどの0はどこでも、代わりに

$pattern = '/0/'; 

区切り文字でこれを使用したい場合は

あなたの質問は混乱しています。

+0

ありがとうございました!これはうまくいきましたが、私はあなたの指導に感謝し、紛らわしいことをお詫びします。私は私の元の質問を編集したので、うまくいけばそれは他の人には明らかです。 – nyancat

+0

roundには2番目のパラメータがありますか?小数点以下の桁数である精度のためにhttp://php.net/manual/en/function.round.php – ArtisticPhoenix

関連する問題