11

検索しましたが、役立つものは見つかりませんでした

したがって、基本的にコンマを間に入れる必要があるデータがたくさんあります。データはすべてレコードから取得されるため、次のようになります。

13
566
888
958
898

次のように出力する必要があります。

13,566,888,958,898

次のように、任意の 2 桁を 1 つ上に移動できればさらに良いでしょう。

566,13,888,958,989

私はそれが非常に単純であることを知っているので、基本的にフォームを作成し、それをGETで渡し、URLから変数を読み取ってから、 str_replace(" ",",",$outtext) を使用して取得しようとしていますスペースをコンマに置き換えて、エコーアウトしてすぐにコピーペーストできるようにします。問題は、データが改行で入ってくると思いますが、それを置き換える方法がわかりません。試してみました」\n " および "%0D%0A" ですが、それは置き換えられず、スペースを付けてすぐに返されます。

とにかく、これが私が使用しているコードです。誰かが私が見逃している簡単なことを教えてくれるかもしれません。

<?php
if (isset($_GET['intext'])) {
    $outtext=$_GET['intext'];

    $newout=str_replace(" ", ",", $outtext);

    echo $newout;
    //testing
    //echo(str_replace(" ",",","$outtext"));
}
?>

そしてhtml

<form name="indata" id="indata" method="get" action="index.php">
        <textarea id="intext" name="intext"></textarea>
        <input type="submit" id="submit" name="submit">
    </form>

配列に投げ込んで内破することも考えましたが、しばらく時間が経ち、その方法を忘れてしまいました。

4

4 に答える 4

2

最初に、入力から余分な空白またはキャリッジ リターンと新しい行を削除してから、カンマに置き換えます。

 <?php
  if( isset($_GET['intext']) ){
      var_dump($_GET['intext']);

      //get and trim the input
      $value = trim($_GET['intext']);

      //clean the input by removing extra white spaces
      $value = preg_replace( '/\s+/', ' ', $value );

      //replace spaces with comma
      $value = str_replace(" ", ',', $value);

      //echo output
      echo $value;
  }
 ?>

 <form name="indata" id="indata" method="get" action="">
    <textarea id="intext" name="intext"></textarea>
    <input type="submit" id="submit" name="submit">
 </form>
于 2013-07-24T15:34:23.307 に答える
0

*nix (Mac もそうだと思います) システムでは、LF "\n" で区切られた行があり、Windows では CR+LF "\r\n" があります。str_replaceaまたは aを実行しpreg_replaceて、スペース、CR+LF、および LF を置き換えることができます。正規表現を使用して、正規表現で解決されるものをコンマに置き換えることができます。

改行を置き換えていないコードと文字列のソースを示してください。おそらく、それが機能しない理由がわかります。

于 2013-07-24T15:24:42.223 に答える