Copy link to clipboard
Copied
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
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
Copy link to clipboard
Copied
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
Copy link to clipboard
Copied
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;
}
Copy link to clipboard
Copied
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.
Copy link to clipboard
Copied
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.