Moin!
Irgendwie blicke ich nicht durch.
Das ist doch einfach. Du musst Dich nur dumm stellen und stur "von innen nach außen" denken
- Ersetzen aller
"
durch\\"
im Name. Grund? Nächster Schritt: - Einschließen des Namens in
"
. Grund? Nächster Schritt: - Link wird im html nochmals in
"
eingeschlossen. Dann verwende auchhtmlentities($to, ENT_COMPAT)
um die"
in"
umzuwandeln.
<?php
$name = 'Shanty-Chor "Die Landratten"';
$mail = 'foo@example.com';
$to = '"' . str_replace('"', '\"', $name) . '" <' . $mail . '>';
$link = '<a href="mailto:' . htmlspecialchars($to) . '">' . htmlentities($name). '</a>';
echo $link, "<br>\n";
$name = "anges d'amour";
$mail = 'bar@example.com';
$to = '"' . str_replace('"', '\"', $name) . '" <' . $mail . '>';
$link = '<a href="mailto:' . htmlentities($to, ENT_COMPAT) . '">' . htmlentities($name). '</a>';
echo $link, "<br>";
Ergebnis:
<a href="mailto:"Shanty-Chor \"Die Landratten\"" <foo@example.com>">Shanty-Chor "Die Landratten"</a><br>
<a href="mailto:"anges d'amour" <bar@example.com>">anges d'amour</a><br>
Mehr ist nicht zu tun.
Tipp: Sende dem Browser ordentliche Header für die Kodierung (charset). Sonst geht's beim Umläuten daneben.
Jörg Reinholz