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