使用php格式化文本


Formatting text using php

我想格式化将插入文本区域的文本。

文本将具有类似的结构(我注意到了*-*空行。):

Phone
*-*
02.03.2007 My phone is excellent.
*-*
*-*
Phone
02.06.2007 I want new phone.
....

如何删除一个空行,如下例所示?

Phone
02.03.2007 My phone is excellent.
Phone
02.06.2007 I want new phone.

我现在还没有做任何代码

    <?php

        if(isset($_POST["submit"])) {
            $text = $_POST["text"];
            $text = .....
         }
    ?>
<form id="form1" name="form1" method="post" action="">
<input style="display:block;" type="submit" name="submit" id="submit" value="Submit" />
<textarea name="text" id="text" cols="45" rows="700">
</textarea>

<textarea name="result" id="result" cols="45" rows="700">
<?php echo $text; ?>
</textarea>
</form>

尝试preg_replace php函数

<textarea name="result" id="result" cols="45" rows="700">
    <?php echo preg_replace('/[^A-Za-z0-9'-]/', '', $text); ?>
</textarea>

我不明白为什么其他答案在这种情况下使用正则表达式,str_replace会很好地工作:

$text = str_replace("'r'n'r'n", "'r'n", $text);

Windows和Unix的换行符不同,Windows有额外的回车符('r)。您可能还想了解一下PHP常量PHP_EOL