0

テキストエリアと送信ボタンがあり、テキストエリアに何かを書き込んでボタンを押すと、テキストエリアのコンテンツがtxtファイルに書き込まれます。爆発を使用してそのコンテンツをフォーマットするのに助けが必要です。テキストエリアのコンテンツをtxtファイルに書き込むために使用するコードは次のとおりです。

$tavalues = ($_POST['dname']); //dname is textarea field
$filename = "imones.txt";
$fp = fopen ($filename, "w");
if ($fp){
    fwrite($fp, $tavalues);
} 
fclose($fp);

ご覧のとおり、これは imones.txt ファイルに書き込まれます。今、私はそのファイルの内容を読み込んでフォーマットし、フォーマットされた内容を別のファイルに書きたいと思っています。爆発用に複数の区切り文字を記述する方法がわかりません.. これは、データをテキストエリアに入力する方法の例です(すべてコンマなどで乱雑です):

example.com  example.com
 example.com, example.com
example.com

フォーマットする方法は次のとおりです(基本的に、「、」、「\ n」、「\ r」を削除したい):

example.com
example.com
example.com

..(スペースを入れずにすべてのリンクを 1 行にまとめます。リンクは異なり、同じではないことに注意してください)

4

3 に答える 3

1

多分これを試してみてください。早くて汚いです。より良い解決策として、正規表現を試してみてください

$input = "exampleA.com  exampleB.com
 exampleC.com, exampleD.com
exampleE.com";
$tmp = explode(" ", $input);
$str = "";
$filename = "imones.txt";
$fp = fopen ($filename, "w");
if ($fp){
    for ($i = 0; $i < count($tmp); $i++) {
      if ($tmp[$i] != "") {
          $tmp[$i] = str_replace(",", "", $tmp[$i]);
          $tmp[$i] = trim($tmp[$i]);
          $str .= $tmp[$i]."\n";
      }
    }
fwrite($fp, $str);
} 
fclose($fp);
于 2013-02-17T17:41:06.617 に答える
0

爆発する文字をすべて1つに変換して、これで爆発するのはどうですか?!

$expl = ';';
$content = file_get_contents('imones.txt');
$content = str_replace(',', $expl, $content);
$content = str_replace('\n', $expl, $content);
$content = str_replace('\r', $expl, $content);
$content = str_replace(' ', $expl, $content);
// ...

while (strpos($content, "$expl$expl") !== false) { // while $expl is found twice
    $content = str_replace("$expl$expl", $expl, $content); // remove this
}

$parts = explode($expl, $content);

// than join them
$formatted = implode("\n", $parts);
file_put_contents('somefile.txt', $formatted);
于 2013-02-17T16:56:15.997 に答える
-1

PHPのpreg_replace()を試してみてください。

于 2013-02-17T16:49:15.477 に答える