php与XML、XSLT、Mysql的结合运用,安装篇
更新时间:2016年11月25日 16:14 点击:2007
经常看到有用户问一些关于php与XML、数据库结合运用的贴子,也经常看到一些初学者
把php代码与HTML代码混写到一起,然后在出错的时候找不到错误,急得团团转,下面我就给大
家讲一下如何用XML技术将HTML代码和PHP程序分离,当然,分离的技术有好多种,比如PEAR中
的IT模板.
总的来说,个人认为使用XML技术是最方便的,废话不多说了,我们言归正传,
讲一下在win2000下的安装
使用php中的xml与xslt要用到一些dll库,
extension=php_domxml.dll //操作XML的函数库
extension=php_iconv.dll //转码用的,比如将GB2312的转成UTF-8的
extension=php_xslt.dll //XSLT的函数库
使用上面这三个库的时候,你要将php安装目录下的dlls目录加入到路径中,否则会找不到
这些类库的
在下面的课程中,我们会用到php中的PEAR类库,主要用了DB类库,Sql2XML类库,大家可以在
pear.php.net上下载最新的版本
下载完上面二个类库以后,大家最好在php.ini中设置一下
include_path = ".;d:phppear"
d:phppear 是我的pear的安装路径
设置完以后,重新启动一下机器,否则因为路径找不到而导致Apache启动不正常,无法正常使用
至此要使用PHP中的XML和XSLT的设置就完成了,是不是很简单:)
使用Linux的用户可以到
<?php
function getImageInfo($img) { //$img为图象文件绝对路径
$img_info = getimagesize($img);
switch ($img_info[2]) {
case 1:
$imgtype = "GIF";
break;
case 2:
$imgtype = "JPG";
break;
case 3:
$imgtype = "PNG";
break;
}
$img_type = $imgtype."图像";
$img_size = ceil(filesize($img)/1000)."k"; //获取文件大小
$new_img_info = array (
"width"=>$img_info[0],
"height"=>$img_info[1],
"type"=>$img_type
"size"=>$img_size
}
return $new_img_info;
}
?>
很简单,大家应该都看得懂的
J2EE是很好的。作为开发环境,如果采用经典配置:JBuilder Weblogic Oracle,自是得心应手,但价格是惊人的。此配置主要是针对大型或超大型应用,硬件要求也很高,针对国内以中小型应用为主的现况,不作推荐。
虽然国内开发者早已习惯,但笔者以为还是防患于未然,应尽早加入OpenSource行列,促进国内软件业的发展。
本文所推荐的Eclipse、JBoss、MySQL均是名气很高的开源软件,并且非常实用。
1、JDK:到http://java.sun.com下载,推荐使用J2SDK1.4.X
2、JBoss:到http://www.jboss.org下载,笔者使用jboss-3.0.4_tomcat-4.0.6
3、MySQL:到http://www.mysql.com下载,笔者使用mysql-4.0.13,另须下载MySQL Control Center(图形化管理工具),到http://sourceforge.net/projects/mmmysql/下载MySQL的JDBC驱动程序,如mm.mysql-2.0.14-you-must-unjar-me.jar
4、Eclipse:到http://www.eclipse.org下载,最新版本为3.0M8,如果是新手推荐下载2.1.2和中文包(2.1.2_Translations)。到http://www.objectlearn.com/下载lomboz(此插件开发J2EE必需),需要注意的是lomboz的版本必须与eclipse版本一致,否则不正常。
环境设置(以Windows 2000下D盘作根目录为例):
1、JDK的安装配置在此不再说明。
2、将JBoss解压到D:,将MySQL的JDBC驱程包中的mm.mysql-2.0.14-bin.jar解压到D:jboss-3.0.4_tomcat-4.0.6serverdefaultlib中,再将D:jboss-3.0.4_tomcat-4.0.6docsexamplesjca目录下的mysql-service.xml拷贝到D:jboss-3.0.4_tomcat-4.0.6serverdefaultdeploy目录下,找到相应段落并作如下修改:
lgx522@21cn.com)
<?php
//多文件上载系统完整版
include("../include/common.inc");
$title = "多个文件的上载程序";
include("../include/header.inc");
//定义允许上载文件的数目
define("UPLOAD_NO", 10);
echo("<p align='center'><font size='4' color='#000080'>欢迎您!<br>一次可以最多上载".UPLOAD_NO."个文件<br><HR>n");
if($REQUEST_METHOD!="POST"){
echo("<form enctype="multipart/form-data" method=post>n");
echo("<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="3000000">n");
for($i=1;$i<=UPLOAD_NO;$i ){
echo("<input type=file name=infile$i> ");
if($i%2==0)
echo("<br>n");
}
echo("<br><br><input type="checkbox" name="overload" value="ON"></font> <font color='#ff0000'>是否覆盖已经存在的文件?</font>");
echo("<br><br><input type=submit value=上载></form>n");
}
else{
//处理上载
$noinput = true;
for($i=1;$noinput&&($i<=UPLOAD_NO);$i ){
if(${"infile".$i}!="none") $noinput = false;
}
if($noinput){
echo("<font size='4' color='#000080'>没有选定的文件,返回重试</font>");
exit();
}
echo("<p align='center'><font size='4' color='#000080'>您选中的文件已经成功地上载到服务器的临时目录!</font><br>");
echo("<table border='1' width='84%' height='52' bordercolorlight='#008080' bordercolordark='#008080'>
<tr>
<td width='14%' bgcolor='#008000' height='21'><font color='#FFFFFF'>文件号</font></td>
<td width='52%' bgcolor='#008000' height='21'><font color='#FFFFFF'>文件名称</font></td>
<td width='34%' bgcolor='#008000' height='21'><font color='#FFFFFF'>文件大小</font></td>
</tr>");
for($i=1;$i<=UPLOAD_NO;$i ){
$just=${"infile".$i."_size"};
$fp_size[i] = $just;
程序如下:
$file_name = "info_check.exe";
$file_dir = "/public/www/download/";
if (!file_exists($file_dir . $file_name)) { //检查文件是否存在
echo "文件找不到";
exit;
} else {
$file = fopen($file_dir . $file_name,"r"); //打开文件
//输入文件标签
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir . $file_name));
Header("Content-Disposition: attachment; filename=" . $file_name);
//输出文件内容
echo fread($file,filesize($file_dir . $file_name));
fclose($file);
exit;}
而如果文件路径是"http"或者"ftp"网址的话,则源代码会有少许改变,程序如下:
$file_name = "info_check.exe";
$file_dir = "www.easycn.net/";
$file = @ fopen($file_dir . $file_name,"r");
if (!$file) {
echo "文件找不到";
} else {
Header("Content-type: application/octet-stream");
Header("Content-Disposition: attachment; filename=" . $file_name);
while (!feof ($file)) {
echo fread($file,50000);
}
fclose ($file);
}
这样就可以用PHP直接输出文件了
把php代码与HTML代码混写到一起,然后在出错的时候找不到错误,急得团团转,下面我就给大
家讲一下如何用XML技术将HTML代码和PHP程序分离,当然,分离的技术有好多种,比如PEAR中
的IT模板.
总的来说,个人认为使用XML技术是最方便的,废话不多说了,我们言归正传,
讲一下在win2000下的安装
使用php中的xml与xslt要用到一些dll库,
extension=php_domxml.dll //操作XML的函数库
extension=php_iconv.dll //转码用的,比如将GB2312的转成UTF-8的
extension=php_xslt.dll //XSLT的函数库
使用上面这三个库的时候,你要将php安装目录下的dlls目录加入到路径中,否则会找不到
这些类库的
在下面的课程中,我们会用到php中的PEAR类库,主要用了DB类库,Sql2XML类库,大家可以在
pear.php.net上下载最新的版本
下载完上面二个类库以后,大家最好在php.ini中设置一下
include_path = ".;d:phppear"
d:phppear 是我的pear的安装路径
设置完以后,重新启动一下机器,否则因为路径找不到而导致Apache启动不正常,无法正常使用
至此要使用PHP中的XML和XSLT的设置就完成了,是不是很简单:)
使用Linux的用户可以到
<?php
function getImageInfo($img) { //$img为图象文件绝对路径
$img_info = getimagesize($img);
switch ($img_info[2]) {
case 1:
$imgtype = "GIF";
break;
case 2:
$imgtype = "JPG";
break;
case 3:
$imgtype = "PNG";
break;
}
$img_type = $imgtype."图像";
$img_size = ceil(filesize($img)/1000)."k"; //获取文件大小
$new_img_info = array (
"width"=>$img_info[0],
"height"=>$img_info[1],
"type"=>$img_type
"size"=>$img_size
}
return $new_img_info;
}
?>
很简单,大家应该都看得懂的
J2EE是很好的。作为开发环境,如果采用经典配置:JBuilder Weblogic Oracle,自是得心应手,但价格是惊人的。此配置主要是针对大型或超大型应用,硬件要求也很高,针对国内以中小型应用为主的现况,不作推荐。
虽然国内开发者早已习惯,但笔者以为还是防患于未然,应尽早加入OpenSource行列,促进国内软件业的发展。
本文所推荐的Eclipse、JBoss、MySQL均是名气很高的开源软件,并且非常实用。
1、JDK:到http://java.sun.com下载,推荐使用J2SDK1.4.X
2、JBoss:到http://www.jboss.org下载,笔者使用jboss-3.0.4_tomcat-4.0.6
3、MySQL:到http://www.mysql.com下载,笔者使用mysql-4.0.13,另须下载MySQL Control Center(图形化管理工具),到http://sourceforge.net/projects/mmmysql/下载MySQL的JDBC驱动程序,如mm.mysql-2.0.14-you-must-unjar-me.jar
4、Eclipse:到http://www.eclipse.org下载,最新版本为3.0M8,如果是新手推荐下载2.1.2和中文包(2.1.2_Translations)。到http://www.objectlearn.com/下载lomboz(此插件开发J2EE必需),需要注意的是lomboz的版本必须与eclipse版本一致,否则不正常。
环境设置(以Windows 2000下D盘作根目录为例):
1、JDK的安装配置在此不再说明。
2、将JBoss解压到D:,将MySQL的JDBC驱程包中的mm.mysql-2.0.14-bin.jar解压到D:jboss-3.0.4_tomcat-4.0.6serverdefaultlib中,再将D:jboss-3.0.4_tomcat-4.0.6docsexamplesjca目录下的mysql-service.xml拷贝到D:jboss-3.0.4_tomcat-4.0.6serverdefaultdeploy目录下,找到相应段落并作如下修改:
lgx522@21cn.com)
<?php
//多文件上载系统完整版
include("../include/common.inc");
$title = "多个文件的上载程序";
include("../include/header.inc");
//定义允许上载文件的数目
define("UPLOAD_NO", 10);
echo("<p align='center'><font size='4' color='#000080'>欢迎您!<br>一次可以最多上载".UPLOAD_NO."个文件<br><HR>n");
if($REQUEST_METHOD!="POST"){
echo("<form enctype="multipart/form-data" method=post>n");
echo("<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="3000000">n");
for($i=1;$i<=UPLOAD_NO;$i ){
echo("<input type=file name=infile$i> ");
if($i%2==0)
echo("<br>n");
}
echo("<br><br><input type="checkbox" name="overload" value="ON"></font> <font color='#ff0000'>是否覆盖已经存在的文件?</font>");
echo("<br><br><input type=submit value=上载></form>n");
}
else{
//处理上载
$noinput = true;
for($i=1;$noinput&&($i<=UPLOAD_NO);$i ){
if(${"infile".$i}!="none") $noinput = false;
}
if($noinput){
echo("<font size='4' color='#000080'>没有选定的文件,返回重试</font>");
exit();
}
echo("<p align='center'><font size='4' color='#000080'>您选中的文件已经成功地上载到服务器的临时目录!</font><br>");
echo("<table border='1' width='84%' height='52' bordercolorlight='#008080' bordercolordark='#008080'>
<tr>
<td width='14%' bgcolor='#008000' height='21'><font color='#FFFFFF'>文件号</font></td>
<td width='52%' bgcolor='#008000' height='21'><font color='#FFFFFF'>文件名称</font></td>
<td width='34%' bgcolor='#008000' height='21'><font color='#FFFFFF'>文件大小</font></td>
</tr>");
for($i=1;$i<=UPLOAD_NO;$i ){
$just=${"infile".$i."_size"};
$fp_size[i] = $just;
程序如下:
$file_name = "info_check.exe";
$file_dir = "/public/www/download/";
if (!file_exists($file_dir . $file_name)) { //检查文件是否存在
echo "文件找不到";
exit;
} else {
$file = fopen($file_dir . $file_name,"r"); //打开文件
//输入文件标签
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir . $file_name));
Header("Content-Disposition: attachment; filename=" . $file_name);
//输出文件内容
echo fread($file,filesize($file_dir . $file_name));
fclose($file);
exit;}
而如果文件路径是"http"或者"ftp"网址的话,则源代码会有少许改变,程序如下:
$file_name = "info_check.exe";
$file_dir = "www.easycn.net/";
$file = @ fopen($file_dir . $file_name,"r");
if (!$file) {
echo "文件找不到";
} else {
Header("Content-type: application/octet-stream");
Header("Content-Disposition: attachment; filename=" . $file_name);
while (!feof ($file)) {
echo fread($file,50000);
}
fclose ($file);
}
这样就可以用PHP直接输出文件了
上一篇: php 顶层类(自家用)
相关文章
- 编译安装非常的简单了我们现在的php版本已经到了php7了,下文小编来为各位介绍一篇关于PHP7快速编译安装的步骤,希望文章能够帮助到各位。 一、安装必要一些依赖 yum...2016-11-25
- 这篇文章主要介绍了MySQL性能监控软件Nagios的安装及配置教程,这里以CentOS操作系统为环境进行演示,需要的朋友可以参考下...2015-12-14
- 这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
- 这篇文章主要介绍了Rstudio中安装package出现的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
- 新版 Mysql 中加入了对 JSON Document 的支持,可以创建 JSON 类型的字段,并有一套函数支持对JSON的查询、修改等操作,下面就实际体验一下...2016-08-23
- PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
- PHP-FPM我们相信各位用高版本的php经常使用到了,下面整理了一些关于PHP-FPM的笔记,有兴趣的可进来看看。 今天赶上了123System OPenVZ VPS全场半价的机会,购入了一...2016-11-25
深入研究mysql中的varchar和limit(容易被忽略的知识)
为什么标题要起这个名字呢?commen sence指的是那些大家都应该知道的事情,但往往大家又会会略这些东西,或者对这些东西一知半解,今天我总结下自己在mysql中遇到的一些commen sense类型的问题。 ...2015-03-15- 这篇文章主要介绍了MySQL 字符串拆分操作(含分隔符的字符串截取),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22
- index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
安装和使用percona-toolkit来辅助操作MySQL的基本教程
一、percona-toolkit简介 percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括: 检查master和slave数据的一致性 有效地对记录进行归档 查找重复的索...2015-11-24- 一、先说一下为什么要分表:当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。根据个人经验,mysql执行一个sql的过程如下:1...2014-05-31
Linux安装Pytorch1.8GPU(CUDA11.1)的实现
这篇文章主要介绍了Linux安装Pytorch1.8GPU(CUDA11.1)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-25- 这篇文章主要介绍了vscode安装git及项目开发过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-19
- 我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B。...2015-03-15
- 这篇文章主要为大家详细介绍了Visual Studio 2015下载和安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
- 现在我们介绍一种在Node下检查简单错误的JS代码验证工具JSHint。 JSHint的具体介绍参考http://www.jshint.com/about/,说直白点儿,JSHint就是一个检查JS代码规范与否的工具,它可以用来检查任何(包括server端和client端...2014-05-31
Centos中彻底删除Mysql(rpm、yum安装的情况)
我用的centos6,mysql让我整出了各种问题,我想重装一个全新的mysql,yum remove mysql-server mysql之后再install并不能得到一个干净的mysql,原来的/etc/my.cnf依然没变,datadir里面的数据已没有任何变化,手动删除/etc/my.cn...2015-03-15PHP中func_get_args(),func_get_arg(),func_num_args()的区别
复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04- 这几天在centos下装mysql,这里记录一下安装的过程,方便以后查阅Mysql5.5.37安装需要cmake,5.6版本开始都需要cmake来编译,5.5以后的版本应该也要装这个。安装cmake复制代码 代码如下: [root@local ~]# wget http://www.cm...2015-03-15