2016-09-13 03:20
浏览 81


I'm building a report in PHP, and am really new to this language.

I read the documentation on preg_replace, but it's not working exactly as I expect.

Here's my code:

    $pattern = 0;
    $replacement = ' ';

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

Instead of replacing a result of 0 with an empty string, it replaces all results with an empty string. The round works great like this:


It's just when I put the preg_replace around it, it says 'phooey, I shall replace everything'. What am I doing wrong?

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

  • douao1858 2016-09-13 03:46

    Try this instead

    $pattern = '/^0$/';
    $replacement = ' ';
    $report_output.= '
        <td>'.preg_replace($pattern, $replacement, round($row[$win_count])).'</td>
    • The ^ means match start of string
    • The 0 is match one 0
    • The $ means match end of string

    So it will only match '0' one zero start to finish and not something like this hell0 the end 0 wont be matched because the l is not the start of the string.

    Your question is confusing if you want any 0 anywhere then use this instead

    $pattern = '/0/';

    With delimiters.

    解决 无用
    打赏 举报

相关推荐 更多相似问题