Skip to main content
Participant
April 27, 2019
Answered

MM_XSLTransform error on upgrade of PHP to 7.3

  • April 27, 2019
  • 3 replies
  • 1029 views

I have had to upgrade to PHP 7.3

I have had a site running quite happily using PHP 5.4

Now getting the error

MM_XSLTransform error.

The server could not perform the XSL transformation because an XSLT processor for PHP could not be found. Contact your server administrator and ask them to install an XSLT processor for PHP.

Any suggestions please where to start looking for a solution.

Many thanks

Richard

This topic has been closed for replies.
Correct answer BenPleysier

It looks like you have an xml data feed which needs php_xsl.dll to be activated in the php.ini file.

See xml-data-feed/MM_XSLTransform.class.php at master · les113/xml-data-feed · GitHub and [Solved] Fatal error: Class 'XSLTProcessor' not found

3 replies

Participant
August 17, 2019

After some investigation I found a solution to the problem, Should anyone have the same problem is relatively simple to resolve.

My dynamic pages use an xml file to hold the data and php file using XLST to extract it and display the contents.

Dreamweaver provided via the MM_XSLTransform include the ability to use statements such as <xsl:value-of select =  . . . to obtain and display the XML data. This failed in the move from php 5.3 to 7.3

The solution is to use the PHP 7 XML Parsers - with very simple php statements which make it straightforward and made conditional functionality that I always wanted very simple to achieve. Hope that helps.

https://www.w3schools.com/php7/php7_xml_parsers.asp

Participant
May 1, 2019

Thank you for your reply - sorry for the delay in responding.

I got confirmation from the hosting company that php_xsl has been activated in the php.ini - I was told that it was the default set up.

I asked the hosting company to revert to php 5.6, which they did and without any modification my end - the web site is fine. I must move to 7.3 - requirement of the hosting company so the problem is still there.

I notice in the included file MM_XSLTransform.class.php  (// MM_XSLTransform version: 0.6.4) the code 'function checkProcessor()'

There is no test for version 7 - is this the problem?

Is there another later version - I can't seem to upgrade it using Dreaweaver cc?

Or does anyone know a modification to required for this?

Or am I looking in completely the wrong place?

This might explain ​the error message The server could not perform the XSL transformation because an XSLT processor for PHP could not be found.

Richard

function checkProcessor() {

  $extensions = get_loaded_extensions();

  if (substr(PHP_VERSION, 0, 1) == '5') {

   if ( in_array('dom', $extensions) && in_array('xsl', $extensions) && class_exists('DOMDocument') && class_exists('XSLTProcessor') ) {

    $this->processor = 'domxml5';

    return;

   }

  }

  if (substr(PHP_VERSION, 0, 1) == '4' && substr(PHP_VERSION, 2, 1) > '2') {

   if ( in_array('xslt', $extensions) && function_exists('xslt_create')) {

    $this->processor = 'sablotron';

    return;

   }

   if ( in_array('domxml', $extensions) && function_exists('domxml_open_mem') && function_exists('domxml_xslt_stylesheet') ) {

    $this->processor = 'domxml4';

    return;

   }

  }

  if (substr(PHP_VERSION, 0, 1) == '4' && substr(PHP_VERSION, 2, 1) < '3') {

   if ( in_array('xslt', $extensions) && function_exists('xslt_create')) {

    $this->processor = 'sablotron';

    return;

   }

  }

  $this->processor = 'undefined';

  $this->setError($this->getErrorFromCode('MM_NO_PROCESSOR_ERROR'));

  return;

}

Nancy OShea
Community Expert
Community Expert
May 1, 2019

You have reached that fork in the developer's road that we all dread sooner or later.  Those old Macromedia scripts are outdated.  It's time to rebuild your site with modern code or find a web host who is willing to let you stay on PHP 5.6 forever. 

See links below for modern server-side development tools.

Nancy O'Shea— Product User & Community Expert
BenPleysier
Community Expert
BenPleysierCommunity ExpertCorrect answer
Community Expert
April 27, 2019

It looks like you have an xml data feed which needs php_xsl.dll to be activated in the php.ini file.

See xml-data-feed/MM_XSLTransform.class.php at master · les113/xml-data-feed · GitHub and [Solved] Fatal error: Class 'XSLTProcessor' not found

Wappler is the DMXzone-made Dreamweaver replacement and includes the best of their powerful extensions, as well as much more!