在 XSLT 中调用 str_contains 或任何 PHP 函数以将字符串与模式匹配

Calling str_contains or any PHP function in XSLT to match a string to a pattern

我正在尝试使用 PHP 函数来查看 XSLT 中的评论是否包含“作者”。

我没有运气 str_contains:

<!-- in a loop -->
<xsl:choose>
  <xsl:when test="php:functionString('str_contains', 'Written by', comment)">
       <xsl:value-of select="comment"/>
  </xsl:when>
</xsl:choose>

我的理解是函数运行:(PHP 函数,要匹配的模式,变量) 但它不起作用(匹配数据时条件不成立)。

我在想:

  1. 是不是版本问题? str_contains 必须是 PHP 8 但也许服务器是 7。不确定。
  2. 是语法问题吗?
  3. 如果是版本问题,查看评论是否以匹配的模式开头或包含匹配的模式有什么不同的功能?

the condition is not true when the data is matched

如果函数返回错误结果,那么您可能没有正确使用它。如果是版本问题(即不支持的功能),我会收到错误消息。

what is a different function to see if a comments begins with or contains that pattern

XPath 具有这两种功能的本机功能 - 恕我直言,在您使用扩展功能之前,它们应该是您使用 XSLT 时的首选: