有没有办法放置'>'使用PHP在行的开头签名?

时间:2009-08-17 07:47:33

标签: php

如果我有一个textarea就像我用来键入此消息的那个。我想追加或连续'>'到每条破线。我遇到的问题是我不知道线路在哪里断裂。我想做的是在有人回复时模拟电子邮件,他们看到'>'附加到每一行。这有功能吗?

感谢。

6 个答案:

答案 0 :(得分:4)

如果是电子邮件消息,您可以使用字符串并使用wordwrap函数打破大约75个字符:

$reply='> '.wordwrap($original, 75, "\n> ");

因为您可以提供自己的休息字符串,所以可以在那里包含>

如果原件已经分成几行,那么只需替换现有的换行符:

$reply='> '.str_replace ("\n", "\n >", $original);

答案 1 :(得分:0)

如何用换行符和大于?替换所有换行符?也许是这样的事情:

$subject = str_replace (PHP_EOL, PHP_EOL.'>', $subject);

答案 2 :(得分:0)

您可以在PHP中使用str_replace()功能。

答案 3 :(得分:0)

电子邮件报价稍微好一点:

$text = $_POST['text'];
$text = str_replace("\r\n", "\n", $text);
$text = str_replace("\r", "\n", $text);

$text = str_replace("\n", "\n> ", $text);
$text = wordwrap($text, 75, "\n> ");
$text = str_replace("\n> >", "\n>>", $text);
$text = ($text[0] == '>' ? '>' : '> ') . $text;
$text = htmlspecialchars($text);

这会在'>'之间添加始终有用的空格和文本,而不是通过在多个引用级别之间添加空格来膨胀它。

更好的是,如果你可以使它不是原始消息中已引用的wordwrap行。更好的是,实现format = flowed。但是其中任何一个都需要更多的代码。

答案 4 :(得分:0)

首先,感谢Paul Dixon - 伟大而简单的想法:) 无论如何,我在解决方案中遇到了两个问题: 空行和列表(已经 \ n 换行符)不会与> 一起生成,并且在给定数量的字符之后不会删除长链接。

所以这是我对Pauls想法的延伸:

$reply = wordwrap($original, 75, "\n", true);
$reply = '> '.str_replace ("\n", "\n> ", $reply);

第一行将 $ original 包装为75个字符,与 \ n 断开并强制断开长字( ie:urls )。第二行用break和> 替换换行符,并添加一个额外的>到整个字符串的开头。

也许这可以做得更容易,但它对我有用;)

答案 5 :(得分:-1)

你的意思是在客户端?你需要在javascript中这样做。