A '>' yerleştirmek için bir yolu var mı

6 Cevap

Ben bu mesajı yazmak için kullanıyorum gibi bir textarea var. Ben tatili her satır için bir '>' eklenecek veya CONCAT istiyorum. Ben yaşıyorum sorun hatları kırmak nerede bilmiyorum ki. Ne yapmak istiyorum birisi cevap geldiğinde bir e-posta iletisi taklit olduğunu gördükleri '>' her satırına eklenir. Bunun için bir işlevi var mı?

Teşekkürler.

6 Cevap

Bir e-posta iletisi için ise, bir dize almak ve yaklaşık 75 karakter de kırmak için wordwrap işlevini kullanabilirsiniz:

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

Kendi sonu dize temin edebilir, çünkü orada > içerebilir!

Orijinal zaten satırlara kırılırsa, o zaman sadece mevcut hat sonu değiştirin:

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

Siz PHP str_replace() işlevini kullanabilirsiniz.

Nasıl bir line-break ve bir greather-daha tüm çizgi sonlarını değiştirme hakkında? Belki de böyle bir şey:

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

Alıntı e-posta için daha küçük olduğunu:

$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);

Birden fazla teklif seviyeleri arasında boşluklar ekleyerek bunu şişkinlik değil iken bu, '>' ile metin arasında her zaman yararlı boşluk ekler.

Eğer zaten orijinal mesajda kote hatları WordWrap değil yapabilirsiniz bile daha iyidir. Daha da iyisi, biçimini uygulamak = aktı. Ama Bunlar işime ya oldukça fazla kod alır.

First off, thanks to Paul Dixon - great and simple idea :) Anyway I had some two problems with the solution: empty lines and lists (which have already \n linebreaks) wouldn't begind with > and long links are not cut after the given number of charaters.

Yani burada Pauls fikri benim uzantısıdır:

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

İlk satır, $original 75 karakter sarar uzun kelimelerin \n ve kuvvetler kırma ile keser (ie: urls). İkinci satır bir mola ile satır sonları ve > değiştirir ve bütün dizenin başına> fazladan ekler.

Belki bu daha kolay yapılabilir ama bu benim için çalışıyor ;)

Sen istemci tarafında demek? Bunu javascript yapmak gerekir.