Geen omschrijving

EscapeHelper.php 1.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. namespace MailPoet\Newsletter\Renderer;
  3. if (!defined('ABSPATH')) exit;
  4. class EscapeHelper {
  5. /**
  6. * @param string $string
  7. * @return string
  8. */
  9. public static function escapeHtmlText($string) {
  10. return htmlspecialchars((string)$string, ENT_NOQUOTES, 'UTF-8');
  11. }
  12. /**
  13. * @param string $string
  14. * @return string
  15. */
  16. public static function escapeHtmlAttr($string) {
  17. return htmlspecialchars((string)$string, ENT_QUOTES, 'UTF-8');
  18. }
  19. /**
  20. * Similar to escapeHtmlAttr just this one keeps single quotes since some email clients
  21. * (e.g. Yahoo webmail) don't support encoded quoted font names
  22. * @param string $string
  23. * @return string
  24. */
  25. public static function escapeHtmlStyleAttr($string) {
  26. return htmlspecialchars((string)$string, ENT_COMPAT, 'UTF-8');
  27. }
  28. /**
  29. * @param string $string
  30. * @return string
  31. */
  32. public static function unescapeHtmlStyleAttr($string) {
  33. return htmlspecialchars_decode((string)$string, ENT_COMPAT);
  34. }
  35. /**
  36. * @param string $string
  37. * @return string
  38. */
  39. public static function escapeHtmlLinkAttr($string) {
  40. $string = self::escapeHtmlAttr($string);
  41. if (preg_match('/\s*(javascript:|data:text|data:application)/ui', $string) === 1) {
  42. return '';
  43. }
  44. return $string;
  45. }
  46. }