Ok, ik ben bezig met een shop. Als mensen nu afgerekend hebben, dan wil ik een text mail sturen, waarin de produkten netjes in een texttabel staan. Hoe kan ik dit het beste doen. ik heb al gezoch en er is wel een functie voor namelijk sprintf oid. maar het is mij niet geheel duidelijk. 3 gegevens moeten er in staan, namelijk aantal, naam en de prijs. Hoe krijg ik nu een mooi uitgelijnd text tabelletje.
Dat gaat volgens mij ontzettend lastig worden. In Outlook wordt voor text-only messages geen monospace font gebruikt (tenzij dat ingesteld is als dat al kan).
Karakters tellen heeft in dit geval dus al geen zin.
Je zou wel kunnen proberen om van alle karakters de breedte te meten en dan daarmee de totale breedte van je tekst uitrekenen. Op die manier zou je kunnen uitvogelen hoeveel spaties oid je nodig zal hebben.
Je kunt er natuurlijk ook gewoon op hopen dat iedereen die je een meeltje stuurt HTML aan heeft staan maar dan negeer je waarschijnlijk een deel van je doelgroep.
Voor de mensen die geen HTML aan hebben staan kun je dan evt een linkje naar een webpagina met die resultaten plaatsen maar dat wordt weer een stuk complexer.
Karakters tellen heeft in dit geval dus al geen zin.
Je zou wel kunnen proberen om van alle karakters de breedte te meten en dan daarmee de totale breedte van je tekst uitrekenen. Op die manier zou je kunnen uitvogelen hoeveel spaties oid je nodig zal hebben.
Je kunt er natuurlijk ook gewoon op hopen dat iedereen die je een meeltje stuurt HTML aan heeft staan maar dan negeer je waarschijnlijk een deel van je doelgroep.
Voor de mensen die geen HTML aan hebben staan kun je dan evt een linkje naar een webpagina met die resultaten plaatsen maar dat wordt weer een stuk complexer.
Nu met Land Rover Series 3 en Defender 90
Wat proberen met tab's (\t als ik me niet vergis) als je geen html gebruikt?RSD schreef op 25 september 2004 @ 12:46:
Ok, ik ben bezig met een shop. Als mensen nu afgerekend hebben, dan wil ik een text mail sturen, waarin de produkten netjes in een texttabel staan. Hoe kan ik dit het beste doen. ik heb al gezoch en er is wel een functie voor namelijk sprintf oid. maar het is mij niet geheel duidelijk. 3 gegevens moeten er in staan, namelijk aantal, naam en de prijs. Hoe krijg ik nu een mooi uitgelijnd text tabelletje.
code:
1
2
3
| Naam Aantal Prijs Een appeltje 5 E 0,15 Een peer 5 E 0,20 |
[ Voor 10% gewijzigd door semicolon op 25-09-2004 14:03 ]
:D/-<
Ik zou een MIME message sturen met daarin HTML tabellen voor de HTML users, en een txt versie (netjes aangespatieerd) voor de txt users.
Dan is het altijd goed.
Met de mime classjes van PEAR gaat dit een voudig:
Dan is het altijd goed.
Met de mime classjes van PEAR gaat dit een voudig:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| <? include('Mail.php'); include('Mail/mime.php'); $txt="txt tabllen etc etc etc"; $hmtl="<html> <table> blah blah"; $crlf = "\n"; $hdrs = array( 'From' => 'Dick Visser <dick@tienhuis.nl>', 'Subject' => 'Uw bestelling', 'X-Generated-By' => 'PHP-5.0.1' ); $mime = new Mail_mime($crlf); $mime->setTXTBody($text); $mime->setHTMLBody($html); $body = $mime->get(); $hdrs = $mime->headers($hdrs); $mail =& Mail::factory('mail'); $mail->send('dick@tienhuis.nl', $hdrs, $body); ?> |
Wat je kan doen is http://nl2.php.net/sprintf bekijken, en daar zie je iets als
Dat is dus handig, je checkt eerst de max(strl_len) van iedere cel in een kolom en je vervangt die 10 door max + 1 oid. Dit is als je plain-text gebruikt. Hoe je in outlook een mono-type font gebruikt in een textmail weet ik niet zo direct.
Je kan natuurlijk ook een html-mailtje versturen.
PHP:
1
| printf("[%10s]\n", $s); // right-justification with spaces |
Dat is dus handig, je checkt eerst de max(strl_len) van iedere cel in een kolom en je vervangt die 10 door max + 1 oid. Dit is als je plain-text gebruikt. Hoe je in outlook een mono-type font gebruikt in een textmail weet ik niet zo direct.
Je kan natuurlijk ook een html-mailtje versturen.
Verwijderd
RSD schreef op 26 september 2004 @ 12:54:
Zit dat mime standaard in PHP?
Het kost je ongeveer 2 minuten om dit zelf uit te zoekenMet de mime classjes van PEAR gaat dit eenvoudig
Je kan toch str_pad gebruken hiervoor?
Verwijderd
Lees je het topic wel? Dat is toch geen oplossing als de mailclient geen fixed-width font gebruikt?Wolfboy schreef op 26 september 2004 @ 12:58:
Je kan toch str_pad gebruken hiervoor?
Dat weet ik ja, maar met str_pad kan je ook andere tekens gebruiken.Verwijderd schreef op 26 september 2004 @ 13:20:
[...]
Lees je het topic wel? Dat is toch geen oplossing als de mailclient geen fixed-width font gebruikt?
Mooi is het misschien niet maar op die manier kan je het redelijk goed krijgen.
Verwijderd
Leg eens uit welke techniek je gebruikt dan? Ik zeg je dat het een illusie is dat je het met elke mailclient goed uitgelijnd krijgt als je plaintext gebruikt.Wolfboy schreef op 26 september 2004 @ 13:36:
Dat weet ik ja, maar met str_pad kan je ook andere tekens gebruiken.
Mooi is het misschien niet maar op die manier kan je het redelijk goed krijgen.
Een heel simpel voorbeeld:
regel 1 w regel 2
Zorg maar dat zoiets in elk willekeurig lettertype juist is uitgelijnd. Het kan niet.
Dat is waar, het zal niet altijd overal hetzelfde er uit zien.
Maar als je in plaats van spaties bijvoorbeeld underscores gebruikt dan kan je het nog redelijk netjes krijgen.
Maar ik geef toe dat een tabel een stuk beter er uit ziet, en fixed fonts zouden ook een stuk makkelijker zijn.
Maar als je in plaats van spaties bijvoorbeeld underscores gebruikt dan kan je het nog redelijk netjes krijgen.
Maar ik geef toe dat een tabel een stuk beter er uit ziet, en fixed fonts zouden ook een stuk makkelijker zijn.
Ja, zie pear.php.netRSD schreef op 26 september 2004 @ 12:54:
Zit dat mime standaard in PHP?
Het is al eerder gezegd, maar omdat het volgens mij ondergesneeuwd is:Verwijderd schreef op 26 september 2004 @ 13:47:
Het kan niet.
Maak een mailtje met zowel een HTML-deel met tabellen (dat wordt altijd goed) en een plaintext-deel waarbij je ervan uitgaat dat die mailreader een fixed-font gebruikt.
Nu zullen je 97% van gebruikers het goed zien: bijna iedereen gebruikt Outlook (Express) met HTML, die zien het goed. Pine-, mutt- en andere text-based-mailclients zien het goed, want die gebruiken een fixed-font.
Voor die andere 3% die dan nog een andere exotische mailclient gebruikt gebruikt en de plaintextversie van de mail bekijkt met een niet-fixed-font (zoals ik
Pagina: 1