我有以下PHP函数,它是从XSLT脚本调用的。目标是根据日期过滤选择的节点。
function filter_feed($nodes)
{
if( ! $nodes || ! count($nodes))
return '';
$r = $nodes[0]->ownerDocument->createDocumentFragment();
if($r === FALSE)
exit('failed to create document fragment');
$limit = date('Y-m-d', strtotime('next Saturday'));
foreach($nodes as $n)
if($n->getAttribute('date') <= $limit)
$r->appendChild($n); // (!)
return $r;
}
XSLT的XSLT行如下所示:
<xsl:apply-templates select="php:function('filter_feed', //week)/*">
<xsl:sort select="@date" order="descending" />
</xsl:apply-templates>
这完全适用于我的机器和webhost A.但是在webhost B,我们得到了一个分段错误:11在标有(!)
的linje。我根本不明白为什么,webhost B的支持人员也不明白。
这里有没有人经历过这个?造成这种错误的可能原因是什么?我在做错事还是不稳定?
我正在做类似的事情,在不同的地方工作正常:获取ownerDocument,创建片段,追加子节点并返回。不同之处在于我正在创建 new 元素。在上面列出的函数中,我将附加已经是文档一部分的子项。我做错了吗?如果是这样,我该怎么做?
真的希望有人在这里有一些指示,因为我完全迷失了:S