顯示具有 xslt 標籤的文章。 顯示所有文章
顯示具有 xslt 標籤的文章。 顯示所有文章

14 11月 2007

[Ubuntu] php5安裝extension xsl

原本在我的舊文章有提到Ubuntu 安裝php5+xslt,感謝L大大的寶貴意見,讓我又上到一課了。
原來在php4支援的extension xslt,在php5以後就不支援了,改成支援新的extension xsl,所以原本在php4中用到xslt的地方,要全部改寫成xsl,才能正確地跑在php5+xsl上。幸好我的project,只有一個地方用到xslt,因此只要改小部分就好了。

至於xslt與xsl差在哪邊呢,它們都是用來讀取xsl檔格式的library。但是xslt是function base,xsl是class base。而用了一下之後,果然是新版的比較好,在xsl檔有error時,會秀出error訊息,而原本的xslt要另外寫個function xslt_error_handler去取得error message。


在Ubuntu上安裝php+xsl很簡單:
% apt-get install php5
% apt-get install php5-xsl


以下寫個xsl與xslt寫法的簡單對應:
xslt (function base)
$xsltproc = xslt_create();
xslt_set_encoding( $xsltproc, "UTF-8" );
echo xslt_process( $xsltproc, "input.xml", "falldog.xsl" );

xsl (class base)
$doc = new DOMDocument();
$xsl = new XSLTProcessor();

$doc->load("falldog.xsl");
$xsl->importStyleSheet($doc);

$doc->load("input.xml");
echo $xsl->transformToXML($doc);

關於其他xsl的訊息,請參考PHP官方網站說明
http://www.php.net/manual/en/ref.xsl.php

27 9月 2007

[Linux] php5安裝extension xslt

## 此篇文章有更新 ##
## 以下為手動compile安裝xslt+php的步驟 ##
## 至於Ubuntu+php5+xsl 請參考我的新文章 ##

由於在php4.1以後的版本對extension xslt預設不再是support,因此如果想要為php安裝xslt的話,就變得有點麻煩了。最近正好要在Fedora5上安裝Apache+PHP+XSLT+Mysql,原本一切很順利得裝起來了,但是最後才發現PHP5不support XSLT了,原本全都用yum指令安裝的,或是用rpm安裝的,全都要移除重新安裝一次…

在Linux上,由於要讓PHP5裝上XSLT,就必須要自行下載source code經過compile後才能安裝,而要compile安裝PHP的話,也必須compile安裝Apache才行。

安裝XSLT所需要的套件是Sablot,而Sablot又需要先安裝Expat,所以安裝的順序為(以下版本為參考用):

  1. Expat-2.0.1
  2. Sablot-1.03 (Sablotron)
  3. Apache (httpd-2.0.59)
  4. PHP-5.2.3

以下為我的安裝指令,--prefix的路徑是可以自己設的,以自己的主機設定為主。

  • Expat
    • ./configure
    • make
    • make install
  • Sablot
    • 要-enable-shared才能讓PHP找到XSLT的library
    • ./configure --enable-shared
    • make
    • make install
  • Apache
    • 要--enable-module才能讓PHP順利安裝
    • ./configure --prefix=/usr/local/apache2 --enable-module=so
    • make
    • make install
  • PHP
    • ./configure --prefix=/usr/local/php \
    • --with-apxs2=/usr/local/apache2/bin/apxs \
    • --with-mysql=/usr/ \
    • --enable-xslt \
    • --with-xslt-sablot
    • make
    • make install

這只是在Linux上,安裝Apache+PHP再加上PHP的extension的XSLT,如果要加上其他的extension也是差不多依樣畫胡蘆就行了。若還是不太清楚,可以下./configure --help查一查,或是看看INSTALL檔案的內容,應該就滿清楚的了。


#ps. 最近改用Ubuntu照上面的步驟安裝,卻是屢裝屢敗,硬是不給我裝起來...明明phpinfo()的結果都看得到xslt了,執行時,就是給我出現Fatal error: Call to undefined function xslt_create() 的訊息...真的很幹!
後來改用php 4.4.7安裝後,才成功。真是奇怪...