我的RSS源中有这个,在drupal视图中:
<link>Prueba "con comillas"</link>
我试图创建一个这样的模块:
function views_without_encoded_preprocess_views_view_views_rss(&$vars) {
if (!empty($vars['rss_feed'])) {
$vars['rss_feed'] = strtr($vars['rss_feed'], array(
'&#039;' => ''',
'&quot;' => '"',
'&lt;' => '<',
'&gt;' => '>',
'&amp;' => '&',
'"gt' => '',
));
}
}
但一切都不好。我继续看到这一部分:
<link>Prueba "con comillas"</link>
仅限报价。
答案 0 :(得分:3)
正如我所见,您尝试使用Views RSS。
有一个修复程序似乎可行,但它仅在Drupal 6站点进行了测试。在Drupal 7中,有些事情发生了变化,但尝试了这个:
转到 views_rss / theme 并打开 theme.inc
复制出整个'function template_preprocess_views_view_views_rss函数,并将其放入主题的template.php中。
将函数名称更改为:function yourthemename _precrocess_views_view_views_rss
然后在原始主题的第200行,或者其中显示'//将XML元素添加到项目数组'的位置插入以下内容:
if (empty($rss_elements)) continue;
// Insert here -- clean up special characters
$rss_elements[0]['value'] = htmlspecialchars_decode(trim(strip_tags(decode_entities( $rss_elements[0]['value'])),"\n\t\r\v\0\x0B\xC2\xA0 "));
$rss_elements[0]['value'] = htmlspecialchars($rss_elements[0]['value'], ENT_COMPAT);
// end of cleaning
// Add XML element(s) to the item array.
$rss_item['value'] = array_merge($rss_item['value'], $rss_elements);
}
检查您的RSS ....您可能需要刷新缓存几次。
你可以尝试的另一件事是htmlspecialchars。在我看来,Views RSS字段的输出可以使用它来强制对引号,撇号和&符号进行编码。
希望有所帮助。