我试图复制您在上述示例中提供的相同输出,我只能按照以下方式实现输出:;
<p class=MsoNormal>
<span class=MsoIntenseReference>
<span style=\'color:red;text-transform:none;letter-spacing:0pt;font-weight:normal;text-decoration:none\'>
Red Example text
</span>
</span>
</p>
正如您所见,Microsoft Word(2010)正在为段落和span标记插入预定义的类名,此外,它还包装了包含文本的span。
您是如何为包装文本的范围指定类名的?
作为参考,我将我的HTML文件保存为“网页,过滤”,过滤是删除任何“脏”格式单词的关键,否则会应用于文档。
如果我可以复制您在上面的示例中得到的相同输出,那么我们可能可以朝着更简单的解决方案努力。
PS.很抱歉,这是对您问题的回答,但我似乎无法发表评论。我确实打算通过一些额外的评论来完成这一点,这些评论将有助于得到一个完整的答案,因为一旦我对上述最初的问题有了进一步的了解,我想提出一些建议罢工>
更新
NOTE: This is intended as a guide to hopefully set you off on the right path and therefore the code provided below are examples missing some functionality in which you will need to write.
理想情况下,您希望XML-RPC脚本以两种方式处理提供内容的内容处理。
1) 通过正则表达式(RegEx)搜索并替换内联样式,使其与WordPress兼容。
2) 以帖子的形式将新清理的内容发布到您的博客。
考虑到您不知道MS Word文档将输出的确切内联样式格式,您可以使用RegEx搜索并在满足特定条件的基础上替换字符之间的文本。
以此为例;
<span style="color:green">Integer</span>
通过RegEx,您可以在
<span
和
>
当您找到匹配的“绿色”时,您将使用所需的内联样式替换其中的所有文本;
<span class="green" style="color:green;font-weight:bold;font-size:10pt">
要在WordPress仪表板的post editor屏幕中提供这种内联样式,您需要在TinyMCE编辑器的“样式下拉列表”中添加一些额外的选项,该选项类似于;
array(
\'title\' => \'Bold Green Text\',
\'classes\' => \'green\',
\'inline\' => \'span\',
\'styles\' => array(
\'color\' => \'green\',
\'fontWeight\' => \'bold\',
\'fontSize\' => \'10pt\'
)
你可以在,
(1)HERE
(2)AND HERE
基本上,您添加的自定义样式应该与您通过RegEx函数提供的样式相匹配。
现在,就您的XML-RPC脚本(例如,通过xmlrpc.php发布)而言,可以看到以下内容:;
<?php
// Your RegExp function for processing your source file
function sanitize_content() {
gloabl $content;
$content = \'<span class="important">example content is here</span>\';
// do your regular expression stuff here
return $content;
}
// Your XML-RPC function
function wpPostXMLRPC($title,$content,$rpcurl,$username,$password,$categories=array(1)){
$categories = implode(",", $categories);
$XML = "<title>$title</title>"."<category>$categories</category>".$sanitized_content;
$params = array(\'\',\'\',$username,$password,$XML,1);
$request = xmlrpc_encode_request(\'blogger.newPost\',$params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_URL, $rpcurl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
curl_exec($ch);
curl_close($ch);
}
// Do stuff here to initiate your post function
?>
在本例中,您可以看到我在脚本中包含了$内容字符串,但您当然希望将MS Word HTML文件传递给此变量,您可以通过表单或文件路径等来执行此操作。
通过xmlrpc承担您的帖子。php可以通过您的本地主机访问,您可以通过访问,
http://localhost/post-via-xmlrpc.php
整个过程中最困难的部分实际上是您需要查找的正则表达式(RegEx)搜索和替换函数
<body>
并删除之前的所有内容,找到
</body>
然后删除后面的所有内容,然后同时删除两者
<body>
和
</body>
然后根据需要替换内联样式来解析其余内容。
如果所有这些都可以通过一个独立的XML-RPC脚本来完成,那么真的不需要再摆弄另一个PHP库了。