1

我一直在寻找有关如何使用Emogrifier将链接 CSSv3 的 HTML 转换为内联 HTML 格式的信息。到目前为止,我一直在寻找与向不允许 CSS 的网站发送电子邮件有关的事情。

有关我的问题集的更多信息:我有一个 HTML 文档,带有链接的 CSS,格式很好,我需要将其作为 doc(x) 打开。Word 不支持 v1 以上的 CSS。我正在使用 v3。截至目前,由于缺少 CSS,在转换时格式非常糟糕。我有多个 HTML 文档和 CSS 文件要转换为内联格式,并且不想手动进行。

我曾尝试使用Emogrifier,但似乎总是从我的服务器收到错误页面(using MAMP)。该页面一直有效,直到它到达这些Emogrify部分。我尝试了带和不带 args 的构造函数。如果没有,我提供了带有 set 函数的 HTML 和 CSS。我还尝试使用 和 传递fopen()文件file_get_contents()

元素和版本:

  • MAMP 版本 2
  • 阿帕奇 2.0.64
  • PHP 5.4.10

问题 1: Emogrifier 可以处理电子邮件以外的事情吗?

问题 2:是否有其他产品/程序可以更好地满足我的需求?

问题3:我的代码有问题吗?

<?php
  include(emogrifier.php);

  $site = file_get_contents('file.html');
  $link = file_get_contents('file.css');

  $emog = new Emogrifier($site,$link);

  /* alternate call
  $emog = new Emogrifier;
  $emog->setHTML($site);
  $emog->setCSS($link);
  */
  $result = $emog->emogrify();

  print($result);

  ?>

编辑

我试图将三种类型的变量传递给构造函数:

  • 文件路径
  • 文件指针 (fopen())
  • 字符串 (file_get_contents())

尝试访问 php 页面时,我在浏览器中收到服务器错误:

网站在检索 http://localhost/file.php 时遇到错误。它可能因维护而停机或配置不正确。

我已经注释掉了构造函数和函数调用,它们允许页面使用 echo 语句“工作”以进行测试。然而,即使只是构造函数取消注释也会导致错误。

当“运行” emogrifier.php 文件时,页面加载得很好(白屏,没有打印输出)。

这是我对这个问题的所有信息。

最终编辑

我只是想把这个包起来。

我从来没有一个表情包来解决我的问题。我最终使用带有大量 VisualBasic 编辑的 Word 宏来获得我们想要的格式。这是一个复杂的解决方案,因为宏系统没有很好的文档记录。另外,由于我要修改很多表格和单元格,谷歌搜索几乎没有帮助,因为在搜索单元格时,所有内容都出现在 Excel 中。

...然后他们将报告格式移至其他格式,而我的工作无论如何都没有使用!哈哈

4

2 回答 2

0

Emogrifier 可以处理电子邮件以外的事情吗?

好吧,它实际上适用于 HTML,而不是电子邮件。HTML 旨在用于电子邮件,但您可以在任何您喜欢的地方使用它。

是否有其他产品/程序可以更好地满足我的需求?

这是个好问题!我倾向于说:是的,可能有。请联系专门与您一起寻找软件组件的顾问。

我的代码有问题吗?

从你给出的描述我会说是的。尤其是您谈论错误的部分。但是,由于您描述该错误的不确定性,由于不确定性,我只能说:是的,您的代码可能有问题。

于 2013-04-09T15:08:24.757 回答
0

我已经成功使用了 Emogrifier。这是有效的代码片段。

$emogrifier = new \Pelago\Emogrifier();
$emogrifier->setHtml($Data);
$cssFile = mb_substr($curFile, 0, 6) . 'override.css'; // each issue has a common CSS file
$emogrifier->setCss(fgc_UTF8($cssFile));
//After you have set the HTML and CSS, you can call the emogrify method to merge both:
$Data = $emogrifier->emogrify();
于 2016-03-12T02:05:05.093 回答