【问题标题】:Specific font family inside a form in PHPPHP中表单内的特定字体系列
【发布时间】:2018-11-05 07:14:53
【问题描述】:

我正在使用我在 HTML 中创建的表单在 PHP 中创建一个查询表单。是否可以像在 HTML 中一样在 PHP 代码中使用特定字体?例如:

    <link href="https://fonts.googleapis.com/css?family=Quicksand" rel="stylesheet">

font-family: 'Quicksand', sans-serif;

您可以在下面看到我所指的我的 PHP 代码:

$email_to = "billy.farroll@hotmail.com";
$name = $_POST["name"];
$email = $_POST["email"];
$tel = $_POST["tel"];
$msg = $_POST["msg"];

$email_from = "billy@slickfin.com"; // This email address has to be the same email on the server if using Fasthots server i.e. SlickFin server - billy@SlickFin.com you can't put the $email variable entered by user because its not authorised to send it.
$message = $_POST["message"];
$email_subject = "Enquiry";

例如,这部分(下)我想使用font-family: 'Quicksand', sans-serif; 填写表格并提交后收到的电子邮件。这是我的问题。

$headers =   
"From: $email .\n";   
"Reply-To: $email .\n"; // 
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";  
$message = '<html><body>';
$message .= "<h1 style='color: #0d1237;'>Enquiry</h1>";
$message .= "<h2 style='color: #0d1237; font-size: 22px;'> Name: " . $name . "</h1>";
$message .= "<p style='font-weight: bold;'> Email Address: " . $email . "</p>";
$message .= "<p style='font-weight: bold;'> Telephone Number: " . $tel . "</p>"; 
$message .= "<p style='font-weight: bold;'> Message: " . $msg ."</p>";
$message .= "</body></html>";

另外,这是我的 HTML 表单代码:

<section id="contact">
    <form action="enquiry.php" method="post">
          <div class="field name-box">
                <input type="text" name="name" id="name" placeholder="Who Are You?" tabindex="1" required>
                <label for="name">Name</label>
                <span>Done</span>
          </div>

          <div class="field email-box">
                <input type="text" name="email" id="email" placeholder="name@email.com" tabindex="2" required>
                <label for="email">Email</label>
                <span>Done</span>
          </div>

      <div class="field tel-box">
                <input type="text" name="tel" id="tel" placeholder="Telephone Number" tabindex="3" required>
                <label for="tel">Mobile</label>
                <span>Done</span>
          </div>

          <div class="field msg-box">
                <textarea id="msg" name="msg" rows="4" placeholder="What's Up?" tabindex="1" required></textarea>
                <label for="msg">Message</label>
                <span>Done</span>
          </div>

          <input class="button" name="submit" type="submit" value="Send" />
  </form>

如果您想查看整个 index.html 和整个 equiry.php 文件,可以通过 Github 访问:https://github.com/billyfarroll/enquiry_slick_one

【问题讨论】:

  • 您可以像使用其他设置一样将该字体系列设置作为样式属性写入 HTML 标记。但是,该电子邮件的收件人必须在他/她的计算机上安装该字体。如果不是,显示的字体将退回到该系统的标准无衬线字体。我不认为 HTML 电子邮件允许从 googlefonts 或类似的字体中获取字体,就像您可以在网页中那样。
  • 好的,谢谢您的建议。这是我的主要查询,看看是否有任何可能的方法将特定的字体系列导入到 enquiry.php 文件中。

标签: php css forms fonts font-family


【解决方案1】:

PHP 不是一种输出格式。 PHP 可能会操纵输出,但它不是输出本身。将 PHP 视为计算器,将 HTML 视为计算器屏幕上的数字。你的问题真的没有意义。

有许多不同的输出格式。 HTML 只是其中之一,除了JSON 之外,您可能主要使用它。

在这种情况下,您似乎正在发送 HTML 电子邮件。大多数电子邮件客户端将显示 HTML 和 CSS;类似于网络浏览器。您要做的是使用 PHP 生成 一些CSS(一种输出格式)和HTML(也是一种输出格式)以获得您想要的结果。

您的 HTML 电子邮件中的 CSS 比您在浏览器中可以做的更有限。为了确保兼容性在这种特殊情况下,我建议使用inline styles 以获得您想要的效果。

要在您的 HTML 电子邮件中添加您不希望客户拥有的字体,您还可以执行以下操作...

<html>
  <head>
    <style>
    @font-face {
      font-family: 'Lato';
      font-style: normal;
      font-weight: 400;
      src: local('Lato Regular'), local('Lato-Regular'), url(https://some-site/email.woff) format('woff');
    }
    body {
      font-family: "Lato", "Lucida Grande", "Lucida Sans Unicode", Tahoma, Sans-Serif;
    }
    </style>
  </head>
</html>

请注意,这将适用于某些电子邮件客户端,而不适用于其他客户端...所以请确保在您的 CSS 中使用一些备用字体。

【讨论】:

  • 我很欣赏 PHP 不是一种输出格式,它只操纵输出(取决于用户输入的内容)。但是在我的 PHP 代码中,您可以看到 $message 变量,我在这里使用了内联样式,但很想知道是否有任何更改在发送的邮件中输出的字体?你的意思是没有改变邮件中传递的字体?
  • @billy.farroll 你可以使用内联css来改变字体。
  • @billy.farroll 就 HTML 而言,使用 PHP 将我在答案中添加的内容插入到您的 HTML 电子邮件中是可行的。
  • 完美,所以基本上你是在 HTML 中声明字体,即 Lato,而不是从外部 src 即 Google Fonts 导入它。那么 PHP 可以理解你在 inline 样式中使用的 font-family 吗?
  • @billy.farroll 不。如果您查看我的代码 (src: local('Lato Regular'), local('Lato-Regular'), url(https://some-site/email.woff) format('woff');),我仍在从外部来源获取字体。同样,一些电子邮件客户端会允许这样做,而另一些则不会,因此选择您希望所有客户端在本地拥有的后备字体非常重要。
猜你喜欢
  • 2013-08-02
  • 2019-04-12
  • 2021-11-25
  • 1970-01-01
  • 2013-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多