首页 > 编程技术 > php

用PHP实现动态产生XML文件以及从XML文件中抽取数据转化成HTML的小程序。。。不用DOM的。。

发布时间:2016-11-25 17:16

这个东东搞了我一天。。。可是到最后发现却无法实现自己想像中的那种效果。。。真是可惜。。。看来PHP对XML还需要加强。。。如果哪位对此有研究。欢迎来信探讨。。。
首先建表:
CREATE TABLE books (
     bookid int(4) NOT NULL auto_increment,
     bookname varchar(100) NOT NULL,
     bookauth varchar(50) NOT NULL,
     bookpublisher varchar(50) NOT NULL,
     bookpubdate datetime NOT NULL,
     bookurl varchar(50) NOT NULL,
     KEY bookid (bookid),
);
然后。。。这段是从MYSQL里取数据转化成XML的源代码:
<?
$connect_id=mysql_connect("localhost","root","");
mysql_select_db("bbs",$connect_id);
$query="select * from books order by bookid";
$rs=mysql_query($query,$connect_id);
$numfields=mysql_num_fields($rs);
$xmlfile="<?xml version="1.0" encoding="GB2312"?> ";
$xmlfile.="<books> ";
while($row=mysql_fetch_array($rs)){
    for($i=0;$i<$numfields;$i++){
        $fieldname=mysql_field_name($rs,$i);
        $xmlfile.="<" . $fieldname . ">" . $row[$i] . "</" . $fieldname . "> ";
    }
}
mysql_free_result($rs);
mysql_close($connect_id);
$xmlfile.="</books> ";
$fp=fopen("xmldoc/xmldoc.xml","w");
if(fwrite($fp,$xmlfile)){
    echo "写入文件成功!";
}
else{
    echo "写入文件失败!";
}
?>
这段是从XML里取数据转化成HTML的源代码。。。
<?
class xml{
    var $parser;
<form name="form1" method="post" action="">
    <table width="420" border="1" cellspacing="0" cellpadding="0" bordercolor="#31659C" align="center">
    <tr bgcolor="#31659C">
    <td>
        <div align="center"><font color="#FFFFFF"><b>超级用户->版面管理</b></font></div>
    </td>
    </tr>
    <tr>
    <td> <br>
        <table width="420" border="0" cellspacing="0" cellpadding="0" align="center">
       <tr>
        <td width="246">
        <select name="board_top" size="6" onclick="show_board(form1.board_top,form1.board)">
       <?php echo $board_top_option; ?>
        </select>
        </td>
        <td width="254">
        <select name="board" size="6"    onclick="select_board(form1.board)">
        </select>
        </td>
    </tr>
    <tr>
       <td width="246"> 名称:<br>
把你的函数改写成递归函数,现在这个函数可以列出某指定目录内的所有文件及子目录内的文件啦。
<?
function listdir($path)
{
     chdir($path);
     $d = dir($path);
     $d->path."<br> ";
     print "<ul style='font-size:9pt;'>";
     while($entry=$d->read()){
        if ($entry<>"." and $entry<>".." ){
       $last=filemtime($entry);
       print "<li>";
       $name=is_dir($entry)?("<img" width=100% src=folder.gif>".$entry):("<img" width=100% src=file.gif>".$entry);
       print $name." --- ".date("Y/m/d h:i:s",$last);
       if (is_dir($path."/".$entry)){
           listdir($path."/".$entry);
       }
        }
    }
     $d->close();
     print "</ul>";
}
$listpath="c:";
echo $listpath;
listdir($listpath);
?>

刚刚看到有人贴win下安装步骤
刚好今天公司网站的新服务器到手。花了一上午安装mysql+php+apache。
新版的老版的还是有些不同的。现在把步骤帖一下
安装步骤:
1.mysql
在如下页面下载mysql的for linux rpm包
http://www.mysql.com/downloads/down...3.52-1.i386.rpm
http://www.mysql.com/downloads/down...3.52-1.i386.rpm
存至/home/tmp目录
命令列表:
cd /home/tmp
rpm -ivh MySQL-3.23.52-1.i386.rpm #安装mysql server
rpm -ivh MySQL-client-3.23.52-1.i386.rpm #安装mysql client
/usr/mysql/safe_mysqld & #启动mysql server
mysql #运行mysql 客户端,并开放root用户的远程访问权限。以便调试
use mysql
update user set host = '%' where user = 'root' and host <> 'localhost';
flush privileges;
quit
至此mysql安装完成
2.apache
在如下页面下载apache的for linux 的源码包
http://www.apache.org/dist/httpd/apache_1.3.26.tar.gz
存至/home/tmp目录
命令列表:
cd /home/tmp
tar -zxvf apache_1.3.26.tar.gz
mv apache_1.3.26.tar.gz apache
cd apache
./configure --prefix=/usr/local/apache --enable-module=so
make
make install
安装apache至/usr/local/apache 并配置apache支持dso方式
3.php
在如下页面下载php的for linux 的源码包
http://www.php.net/get_download.php?df=php-4.2.3.tar.gz
存至/home/tmp目录
命令列表:
cd /home/tmp
tar -zxvf php-4.2.3.tar.gz
mv php-4.2.3.tar.gz php
cd php
./configure --prefix=/usr/local/php --with-apxs=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/lib --enable-track-vars --with-xml --with-mysql
make
make install
cp php.ini-dist /usr/local/lib/php.ini
以dso方式安装php至/usr/local/php 设置配置文件目录为/usr/local/lib 开启mysql,xml支持
4.配置
vi /usr/local/apache/conf/httpd.conf
对apache做如下配置
#将ServerAdmin q3boy@younet.com一行改为您的邮箱地址
#DocumentRoot "/home/httpd/html/" 此处为html文件主目录
#<Directory "/home/httpd/html"> 同上
PHP代码:--------------------------------------------------------------------------------
<?
/*
------------------------------------------------------------------------------------
类名:Lwgpagenum
说明:PHP+MySQL分页类
作者:龙卫国
网络user:lwg888
邮箱:lwg888@163.com
使用、修改、传播请保留作者信息
------------------------------------------------------------------------------------
*/
require_once(dirname(__FILE__)."/Lwgdb.inc.php");
//Lwgdb.inc.php是数据库连接与sql语句执行类
class Lwgpageturn {
//----------可以设置值的变量----------------------------------------
var $maxnum;//每页显示数
var $maxnum_max_size=100; //每页最多显示数,用来规定$maxnum不能超过$maxnum_max_size
var $sql;//sql语句
var $navchar=array('[|<<]','[<]','[>]','[>>|]','[<<]','[>>]');
//导航条的显示字符,值可以自定义,如一个img标签
//$navchar[0]表示第一页,$navchar[1]表示前一页,$navchar[2]表示后一页,$navchar[3]表示最后页,$navchar[4]表示前n页,$navchar[5]表示后n页
var $key;//如果一个页面中有多个分页时作为区别标记
var $debug=true;//是否显示调试信息

//----------用来获取值的变量---------------------------------------
var $totalnum;//总记录数
var $totalpage;//总页数
var $startnum;//本页的第一条在总数中的序数
var $endnum;//本页的最后一条在总数中的序数
var $pagenum;//本页在总页数中的序数
var $field;//结果记录的集合
var $id;//每条记录的序号
var $linkhead;//链接指定的url及要传递的相关参数
var $err;//记录最后一条错误信息

//构造函数。
//参数$maxnum用来指定每页显示多少条记录,如果不指定$maxnum,表示全部显示而不用分页
//如果同一个页面中有两个以上的分页,参数$key作为区分标记,否则不用指定
//使用方法:
// $obj=new Lwgpagenum('10');
//或: $obj=new Lwgpagenum();
标签:[!--infotagslink--]

您可能感兴趣的文章: