0

例としてファイルにテキストがあります:

<div class="from">jack</span></div>
hey u

<div class="from">ron</span></div>
bye

「」の後の改行タグを削除して「|」を置き換えようとしています

私が必要とする結果は次のとおりです。

<div class="from">jack</span></div>|hey u

<div class="from">ron</span></div>|bye

私はこれを試しましたが、仕事をしているので間違っていると思います。

$string = file_get_contents($filename);
$string = str_replace('/(<\/span><\/div>\r\n)', '|', $string);
file_put_contents($filename, $string);

正しい方法は何ですか?

ありがとう

4

3 に答える 3

0
<?php
$string = '<div class="from"><span>jack</span></div>
hey u';

echo preg_replace('/\r\n/', '|', $string);
于 2013-02-15T16:25:39.690 に答える
0
$file_handle = fopen($filename, "r");
$text = "";
while (!feof($file_handle)) {
   $line = fgets($file_handle);
   if (strpos($line,'<div>') !== false) {
      $line = preg_replace('/\r\n/', '|', $line)
   }
   $text .= $line;
}
file_put_contents($filename, $text);
fclose($file_handle);

ファイルを 1 行ずつ読み取る場合、その行にタグがある場合は \n\r を置き換え、最後にすべての行をファイルに書き戻します。

于 2013-02-15T16:27:27.287 に答える
-1

使用する行末によって異なりますが、\ n、\ r \ n、\rの3つが考えられます。

これを試して:

$string = str_replace('/(<\/span><\/div>\n)', '|', $string);

また、その文字列の最初のスラッシュが疑わしいので、これを試してください。

$string = str_replace('(<\/span><\/div>\r\n)', '(<\/span><\/div>|', $string);
于 2013-02-15T16:24:09.237 に答える