Mail Empfänger / Betreff maskieren
bearbeitet von Jörg ReinholzMoin!
> 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 auch `htmlentities($to, ENT_COMPAT)` um die `" `in `"` umzuwandeln.
~~~ PHP
<?php
$name = 'Shanty-Chor "Die Landratten"'; # Eingabe
$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"; # Eingabe
$mail = 'bar@example.com';
$to = '"' . str_replace('"', '\"', $name) . '" <' . $mail . '>';
$link = '<a href="mailto:' . htmlentities($to, ENT_COMPAT) . '">' . htmlentities($name). '</a>';
echo $link, "<br>";
~~~
Ergebnis:
~~~ html
<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
Mail Empfänger / Betreff maskieren
bearbeitet von Jörg ReinholzMoin!
> 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
* Einschließen des Namens in `"`
* Link wird im html nochmals in `"` eingeschlossen? Dann verwende `htmlentities($to, ENT_COMPAT)` um auch die die `" `in `"` umzuwandeln.
~~~ PHP
<?php
$name = 'Shanty-Chor "Die Landratten"'; # Eingabe
$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"; # Eingabe
$mail = 'bar@example.com';
$to = '"' . str_replace('"', '\"', $name) . '" <' . $mail . '>';
$link = '<a href="mailto:' . htmlentities($to, ENT_COMPAT) . '">' . htmlentities($name). '</a>';
echo $link, "<br>";
~~~
Ergebnis:
~~~ html
<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