Re: --with-sablot
| From: | Greg Militello | Date: | Thu, 09 Nov 2000 21:12:19 +0000 |
| Subject: | Re: --with-sablot | ||
| References: | 1 2 | Groups: | php.install |
| Request: | Send a blank email to php-install+get-701@lists.php.net to get a copy of this message | ||
Well, it is partially working at least.
There are a few functions I can't get to work:
xslt_create_processor();
xslt_process_strings();
Possibly more. I have made a transform using the code in my second block
below, however, the first class bombs out.
Is this an Expat problem?
-Greg
This code does not work:
<?php
/*
XSLTranformer -- Class to transform XML files using XSL with the Sablotron
libraries.
Justin Grant (2000-07-30)
Thanks to Bill Humphries for the original examples on using the Sablotron
module.
*/
/* test */
/*
$transformer = new XSLTransformer();
if ($transform->setXsl("http://www.someurl.com/document.xsl")
&&
$transform->setXml("http://www.someurl.com/document.xml"))
$transformer->transform();
echo $transformer->getOutput();
} else
echo $transformer->getError();
}
*/
class XSLTransformer
{
var $xsl, $xml, $output, $error ;
/* Constructor */
function XSLTransformer()
$this->processor = xslt_create_processor();
}
/* Destructor */
function destroy()
xslt_destroy_processor($this->processor);
}
/* output methods */
function setOutput($string)
{
$this->output = $string;
}
function getOutput()
{
return $this->output;
}
/* set methods */
function setXml($uri)
if($doc = new docReader($uri))
$this->xml = $doc->getString();
return true;
} else
$this->setError("Could not open $xml");
return false;
}
}
function setXsl($uri)
{
if($doc = new docReader($uri))
{
$this->xsl = $doc->getString();
return true;
}
else
{
$this->setError("Could not open $uri");
return false;
}
}
/* transform method */
function transform() {
$this->setOutput(
xslt_process_strings($this->processor,
$this->xsl, $this->xml, &$err));
$this->setError($err);
}
/* Error Handling */
function setError($string)
$this->error = $string;
}
function getError()
return $this->error;
}
}
/* docReader -- read a file or URL as a string */
/* test */
/*
$docUri = new docReader('http://www.someurl.com/doc.html');
echo $docUri->getString();
*/
class docReader
var $string; // public string representation of file
var $type; // private URI type: 'file','url'
var $bignum = 1000000;
/* public constructor */
function docReader($uri) { // returns integer
$this->setUri($uri);
$this->setType();
$fp = fopen($this->getUri(),"r");
if($fp)
// get length
if ($this->getType() == 'file')
$length = filesize($this->getUri());
} else
$length = $this->bignum;
}
$this->setString(fread($fp,$length));
return 1;
} else
return 0;
}
}
/* determine if a URI is a filename or URL */
function isFile($uri) { // returns boolean
if (strstr($uri,'http://') == $uri)
return false;
} else
return true;
}
}
/* set and get methods */
function setUri($string)
$this->uri = $string;
}
function getUri()
return $this->uri;
}
function setString($string)
$this->string = $string;
}
function getString()
return $this->string;
}
function setType()
if ($this->isFile($this->uri))
$this->type = 'file';
} else
$this->type = 'url';
}
}
function getType()
return $this->type;
}
}
?>
But this code block works:
<?php
/*
* Subject: XSLT class using PHP4 Sablotron extension
* Author: Urs Gehrig <urs@circle.ch>
* Date: 11-10-2000
* Version: 0.1
*
* URL: http://www.circle.ch/projects/xml/
*/
class xsl_transform {
var $xsl_file;
var $xml_file;
var $filename;
// {{{ xsl_transform(), constructor of xsl_transform class
function xsl_transform($xsl_file = '', $xml_file = ''){
$this->xsl_string = $this->read_file($xsl_file);
$this->xml_string = $this->read_file($xml_file);
}
// }}}
// {{{ read_file()
function read_file($filename) {
// get contents of a file into a string
$fd = fopen( $filename, "r" );
$content = fread( $fd, filesize( $filename ) );
fclose( $fd );
return $content;
}
// }}}
// {{{ apply()
function apply() {
$this->result = '';
$this->msg = xslt_process($this->xsl_string, $this->xml_string,
$this->result);
if(!$this->msg) print ("Transformation failed.");
return $this->result;
}
// }}}
}
$xslt = new xsl_transform("slashdot.xsl", "slashdot.xml");
print ($xslt->apply());
?>
----- Original Message -----
From: Greg Militello <gmilitello@dyrectmedia.com>
To: Matt Dunford <matt@stary.zoomedia.com>
Cc: <php-install@lists.php.net>
Sent: Thursday, November 09, 2000 3:35 PM
Subject: Re: [PHP-INST] --with-sablot
> All is well. Thanks a lot for responding
>
>
> -Greg
>
> ----- Original Message -----
> From: Matt Dunford <matt@stary.zoomedia.com>
> To: Greg Militello <gmilitello@dyrectmedia.com>
> Cc: <php-install@lists.php.net>
> Sent: Thursday, November 09, 2000 3:24 PM
> Subject: Re: [PHP-INST] --with-sablot
>
>
> > It looks like sablot wasn't compiled in correctly after all.
> >
> > Here's what I did to compile sablot and php.
> > I use Redhat 7.0, but this config runs on 6.2 as well.
> >
> > Sablot:
> > tar zxvf Sablot-0.44.tar.gz
> > tar zxvf Sablot-Expat-1.1.2.tar.gz
> > mv Expat Sablot-0.44
> > cd Sablot-0.44
> > ./configure
> > make
> > make install
> >
> > Apache:
> > cd apache_1.3.14
> > ./configure
> >
> > Php:
> > cd php-4.0.3p1
> > ./configure \
> > --enable-track-vars \
> > --with-mysql=/usr/local \
> > --with-apache=../apache_1.3.14 \
> > --with-sablot
> > make
> > make install
> >
> > Apache (again):
> > cd apache_1.3.14
> > ./configure \
> > --prefix=/www/apache \
> > --enable-module=so \
> > --activate-module=src/modules/php4/libphp4.a
> > make
> > make install
> >
> >
> >
> >
> >
> > On Thu, 9 Nov 2000, Greg Militello wrote:
> >
> > >Nope. I included my error and my code. Do you think you could send
your
> > >configs?
> > >
> > >-Greg
> > >
> > >
> > >Here is what I get returned:
> > >
> > >Fatal error: Call to undefined function: xslt_create_processor() in
> > >class.XSLTransformer.php on line 27
> > >
> > >
> > >here is the code:
> > >
> > ><?
> > >set_magic_quotes_runtime(0); // this was from your post.
> > >
> > >include "class.XSLTransformer.php";
> > >$transformer = new XSLTransformer();
> > >if ($transform->setXsl("slashdot.xsl") &&
> > >$transform->setXml("slashdot.xml"))
> >
>
> > > $transformer->transform();
> > > echo $transformer->getOutput();
> > >} else
>
> > > echo $transformer->getError();
> > >}
> > >?>
> > >
> > >
> > >
> > >here is the class:
> > >
> > ><?php
> > >/*
> > >XSLTranformer -- Class to transform XML files using XSL with the
> Sablotron libraries.
> > >Justin Grant (2000-07-30)
> > >Thanks to Bill Humphries for the original examples on using the
Sablotron
> module.
> > >*/
> > >
> > >/* test */
> > >/*
> > >$transformer = new XSLTransformer();
> > >
> > >if
> > >($transform->setXsl("http://www.someurl.com/document.xsl")
> > >&&
> > >
> > > $transform->setXml("http://www.someurl.com/document.xml"))
>
> > > $transformer->transform();
> > > echo $transformer->getOutput();
> > >} else
>
> > > echo $transformer->getError();
> > >}
> > >*/
> > >
> > >class XSLTransformer
> > >{
> > >
> > > var $xsl, $xml, $output, $error ;
> > >
> > > /* Constructor */
> > > function XSLTransformer()
>
> > > $this->processor = xslt_create_processor();
> > > }
> > >
> > > /* Destructor */
> > > function destroy()
>
> > > xslt_destroy_processor($this->processor);
> > > }
> > >
> > > /* output methods */
> > >
> > > function setOutput($string)
> > > {
> > > $this->output = $string;
> > > }
> > >
> > > function getOutput()
> > >{
> > > return $this->output;
> > > }
> > >
> > >
> > > /* set methods */
> > >
> > > function setXml($uri)
>
> > > if($doc = new docReader($uri))
>
> > > $this->xml = $doc->getString();
> > > return true;
> > > } else
>
> > > $this->setError("Could not open $xml");
> > > return false;
> > > }
> > > }
> > >
> > > function setXsl($uri)
> > > {
> > > if($doc = new docReader($uri))
> > > {
> > > $this->xsl = $doc->getString();
> > > return true;
> > > }
> > > else
> > > {
> > > $this->setError("Could not open $uri");
> > > return false;
> > > }
> > > }
> > >
> > >
> > > /* transform method
> > > */
> > >
> > > function transform() {
> > > $this->setOutput(
> > >xslt_process_strings($this->processor,
> > >$this->xsl, $this->xml, &$err));
> > > $this->setError($err);
> > > }
> > >
> > >
> > > /* Error Handling */
> > >
> > > function setError($string)
> > >
> > > $this->error = $string;
> > > }
> > >
> > > function getError()
> > >
> > > return $this->error;
> > > }
> > >
> > >}
> > >
> > >
> > >/* docReader -- read a file or URL as a string */
> > >
> > >/* test */
> > >/*
> > >$docUri = new
> > >docReader('http://www.someurl.com/doc.html');
> > >echo $docUri->getString();
> > >*/
> > >
> > >class docReader
> > >
> > >
> > > var $string; // public string representation of file
> > > var $type; // private URI type: 'file','url'
> > > var $bignum = 1000000;
> > >
> > > /* public constructor */
> > >
> > > function docReader($uri) { // returns integer
> > >
> > > $this->setUri($uri);
> > > $this->setType();
> > >
> > > $fp = fopen($this->getUri(),"r");
> > >
> > > if($fp)
> > >
> > > // get length
> > > if ($this->getType() == 'file')
> > >
> > > $length = filesize($this->getUri());
> > > } else
> > >
> > > $length = $this->bignum;
> > > }
> > >
> > > $this->setString(fread($fp,$length));
> > > return 1;
> > > } else
> > >
> > > return 0;
> > > }
> > > }
> > >
> > >
> > > /* determine if a URI is a filename or URL */
> > >
> > > function isFile($uri) { // returns boolean
> > >
> > > if (strstr($uri,'http://') == $uri)
> > >
> > > return false;
> > > } else
> > >
> > > return true;
> > > }
> > > }
> > >
> > > /* set and get methods */
> > >
> > > function setUri($string)
> > >
> > > $this->uri = $string;
> > > }
> > >
> > > function getUri()
> > >
> > > return $this->uri;
> > > }
> > >
> > > function setString($string)
> > >
> > > $this->string = $string;
> > > }
> > >
> > > function getString()
> > >
> > > return $this->string;
> > > }
> > >
> > > function setType()
> > >
> > > if ($this->isFile($this->uri))
> > >
> > > $this->type = 'file';
> > > } else
> > >
> > > $this->type = 'url';
> > > }
> > > }
> > >
> > > function getType()
> > >
> > > return $this->type;
> > > }
> > >
> > >}
> > >
> > >?>
> > >
> > >
> > >----- Original Message -----
> > >From: Matt Dunford <matt@stary.zoomedia.com>
> > >To: Greg Militello <gmilitello@dyrectmedia.com>
> > >Cc: <php-install@lists.php.net>
> > >Sent: Thursday, November 09, 2000 12:50 PM
> > >Subject: Re: [PHP-INST] --with-sablot
> > >
> > >
> > >> your configuration looks fine. What's probably happening is the
> > >> --enable-magic-quotes option is conflicting with Sablot somehow.
> > >> But there's no need to recompile.
> > >>
> > >> Add this to the top of php scripts that use Sablot functions:
> > >>
> > >> set_magic_quotes_runtime(0);
> > >>
> > >> If that doesn't work, I'll send you my configuration.
> > >>
> > >>
> > >>
> > >> On Wed, 8 Nov 2000, Greg Militello wrote:
> > >>
> > >> >Does anyone have detailed instructions for how to use this package?
> > >> >
> > >> >After two days of work I can't get this to work.
> > >> >
> > >> >below I have listed my "general" install method. Note: I do not
have
> > >> >all my commands in here, like cd's etc.
> > >> >
> > >> >Any clues as to what I am doing wrong?
> > >> >
> > >> >
> > >> >----
> > >> >MySQL
> > >> >----
> > >> >gunzip -dc mysql-3.22.32.tar.gz | tar xvf -
> > >> >./configure --prefix=/usr/local/mysql
> > >> >make
> > >> >make install
> > >> >scripts/mysql_install_db
> > >> >cd /usr/local/mysql/bin
> > >> >./safe_mysqld &
> > >> >./mysqladmin -u root password 'T&56jlq'
> > >> >
> > >> >----
> > >> >sablotron
> > >> >----
> > >> >tar -xzvf sablot_*.tar.gz
> > >> >cp expat*.tar.gz <sablotdir>
> > >> >cd <sablotdir>
> > >> >tar -xzvf Sablot-Expat*.tar.gz
> > >> >./configure --with-prefix=/usr/local
> > >> >make
> > >> >make install
> > >> >
> > >> >----
> > >> >php 4
> > >> >-----
> > >> >cd /tmp/download
> > >> >gunzip -c apache_1.3.12.tar.gz | tar xf -
> > >> >cd apache_1.3.12
> > >> >./configure --prefix=/usr/local/apache
> > >> >cd ..
> > >> >
> > >> > NOTE: add to etc/sablot/config.m4
> > >> >
> > >> > PHP_SUBST(SABLOT_SHARED_LIBADD)
> > >> > AC_ADD_LIBRARY_WITH_PATH(sablot, $SABLOT_DIR/lib,
> SABLOT_SHARED_LIBADD)
> > >> > +AC_ADD_LIBRARY(xmltok)
> > >> > +AC_ADD_LIBRARY(xmlparse)
> > >> >
> > >> > AC_DEFINE(HAVE_SABLOT,1,[ ])
> > >> >
> > >> > END NOTE
> > >> >
> > >> >./buildconf
> > >> >./configure --with-mysql=/usr/local/mysql \
> > >> >--with-sablot=/usr/local \
> > >> >--with-xml \
> > >> >--with-apache=../apache_1.3.14 \
> > >> >--enable-calendar \
> > >> >--enable-track-vars \
> > >> >--enable-magic-quotes
> > >> >make
> > >> >make install
> > >> >cp php.ini-dist /usr/local/lib/php.ini
> > >> >
> > >> >
> > >> >
> > >> >----
> > >> >rsaref
> > >> >----
> > >> >mkdir rsaref-2.0
> > >> >cd rsaref-2.0
> > >> >gzip -dc ../rsaref20.tar.Z | tar xvf -
> > >> >cp -rp install/unix local
> > >> >cd local
> > >> >make
> > >> >mv rsaref.a librsaref.a
> > >> >cd ../..,
> > >> >
> > >> >
> > >> >----
> > >> >openssl
> > >> >----
> > >> >gunzip -dc openssl-0.9.6.tar.gz | tar xvf -
> > >> >cd openssl-0.9.6
> > >> >./config --prefix=/usr/local/ssl \
> > >> >-L
pwd/../rsaref-2.0/local/rsaref -fPIC
> > >> >make
> > >> >make test
> > >> >make install
> > >> >
> > >> >-----
> > >> >modssl
> > >> >-----
> > >> >gunzip -dc mod_ssl-2.6.4-1.3.12.tar.gz |tar xvf -
> > >> >cd mod_ssl-2.6.4-1.3.12
> > >> >./configure --with-apache=../apache_1.3.12
> > >> >
> > >> >-----
> > >> >apache
> > >> >-----
> > >> >
> > >> >SSL_BASE=../openssl-0.9.6 \
> > >> >RSA_BASE=../rsaref-2.0/local \
> > >> >./configure \
> > >> >--enable-module=ssl \
> > >> >--prefix=/usr/local/apache \
> > >> >--enable-shared=ssl \
> > >> >--activate-module=src/modules/php4/libphp4.a \
> > >> >--enable-module=php4 \
> > >> >--htdocsdir=/home/www
> > >> >make
> > >> >make certificate TYPE=custom
> > >> >make install
> > >> >
> > >> >
> > >>
> > >>
> > >> --
> > >> PHP Install Mailing List (http://www.php.net/)
> > >> To unsubscribe, e-mail: php-install-unsubscribe@lists.php.net
> > >> For additional commands, e-mail: php-install-help@lists.php.net
> > >> To contact the list administrators, e-mail:
> php-list-admin@lists.php.net
> > >>
> > >
> >
> >
> > --
> > PHP Install Mailing List (http://www.php.net/)
> > To unsubscribe, e-mail: php-install-unsubscribe@lists.php.net
> > For additional commands, e-mail: php-install-help@lists.php.net
> > To contact the list administrators, e-mail: php-list-admin@lists.php.net
> >
>
>
> --
> PHP Install Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: php-install-unsubscribe@lists.php.net
> For additional commands, e-mail: php-install-help@lists.php.net
> To contact the list administrators, e-mail: php-list-admin@lists.php.net
>