<form id="form1" name="form1" method="post" action="">
<textarea name="content" cols="60" rows="10"></textarea>
<input type="submit" name="Submit" value="提交" />
</form>
<?
$content=$_POST["content"];
//echo $content;
$ft=array("<br />","</p>");
//echo count($ft);
$html = "abaaaaaaa<br />cssssssssssssssssssd<br />efdddddddddddddddddd";
preg_match_all ("|(<br \/>)|U",$html,$out, PREG_PATTERN_ORDER);
while (list($key,$value) = each($out[1])) {
}
$keywords = preg_split ("/(<br \/>)/", $html);
//echo $html;
$pagesize=10;
$size=0;
$h="";
for ($i=0; $i< count($keywords); $i++) {
if($size<$pagesize){
$size+=strlen($keywords[$i]);
// echo "size=".$size;
$h.=$keywords[$i];
}
}
echo $h;
?>
思路是使用 <br /> 将文章内容分解为多个块.形成数组
然后遍例,同时将文章内容块,一点点组合,直到它的长度大于 $pagesize
这是一个不错的方法,使用正则的 preg_split 进行文章内容的分割,是考虑到,以后不光使用<br /> 同时使用 </p> 或者更多的分割符号
但问题是,同时使用多个分割符后, 无法判断某一段是根据哪个分割符进行分割的. 无法对文章内容完整还原
项目比较紧,而且添加文章的编辑器是fckeditor,每个文章都有n多的</ br>.就暂时不考虑多个分割符了
所以还不算是完整的解决方案.
<?php
/**
* 功能:实现像JSP,ASP里Application那样的全局变量
* author: [url]www.itzg.net[/url]
* version: 1.0
* 版权:如许转载请保留版权声明
*/
/*+----------------example----------------------
require_once("Application.php");
$arr = array(0=>"Hi",1=>"Yes");
$a = new Application();
$a->setValue("t1","arui");
$a->setValue("arr",$arr);
$u = $a->getValue();
---------------------------------------------+*/
class Application
{
/**保存共享变量的文件*/
var $save_file = 'Application/Application';
/**共享变量的名称*/
var $application = null;
/**序列化之后的数据*/
var $app_data = '';
/**是否已经做过setValue的操作 防止频繁写文件操作*/
var $__writed = false;
/**
* 构造函数
*/
function Application()
{
$this->application = array();
}
/**
* 设置全局变量
* @param string $var_name 要加入到全局变量的变量名
* @param string $var_value 变量的值
*/
function setValue($var_name,$var_value)
{
if (!is_string($var_name) || empty($var_name))
return false;
if ($this->__writed)
{
$this->application[$var_name] = $var_value;
return;
}
$this->application = $this->getValue();
if (!is_array($this->application))
settype($this->application,"array");
$this->application[$var_name] = $var_value;
$this->__writed = true;
$this->app_data = @serialize($this->application);
$this->__writeToFile();
}
/**
* 取得保存在全局变量里的值
* @return array
*/
function getValue()
{
if (!is_file($this->save_file))
$this->__writeToFile();
return @unserialize(@file_get_contents($this->save_file));
}
/**
* 写序列化后的数据到文件
* @scope private
*/
function __writeToFile()
{
$fp = @fopen($this->save_file,"w");
@fwrite($fp,$this->app_data);
@fclose($fp);
}
}
?>
目的:配置运行PHP的环境(IIS+PHP+MYSQL+CF+Perl)支持php+cgi+asp+jsp等
操作系统:windows2000 advance server(sp3)简体中文版
需要相关软件:
一:php-4.3.0-Win32.zip ,到相应站点下载,我上传文件不方便,以下同。
二:ActivePerl-5.6.1.635-MSWin32-x86.msi ,注意,必须下载安装文件,就是说.msi的,不要下原代码了,我也不会弄原代码,加装这个支持cgi,如果你不想支持cgi也可以不下载这个安装
三:mysql-4.0.7-gamma-win.zip
四:MM ColdFusion MX(有没有这个无所谓拉,我也是装着玩的,主要是支持PHP+MYSQL)
一切都以我机子上目录为标准,假定你机子上L:\WEB为你的站点根目录
将php-4.3.0-Win32.zip解压缩到L:\php目录下
复制php目录下php4ts.dll到winnt\system32目录下
复制php.ini.dist到winnt目录下,并将扩展名.dist去掉,得到php.ini文件,用记事本打开修改两个参数:
1.搜索extension_dir ,将其指向你的PHP的extensions目录,比如我是L:\PHP\extensions,我这样修改:
extension_dir = L:\PHP\extensions 这些等你想支持一些扩展库的时候可以修改extension
保存php.ini
安装mysql:
打开mysql-4.0.7-gamma-win.zip压缩包
双击setup.exe运行程序,在安装过程中注意选择mysql的安装目录(当然,你要默认目录也可以),比如我安装在L:\mysql目录下运行L:\mysql\bin\mysqld-nt.exe ,其实一般安装完成后系统都自动启动服务了,如果不放心到“服务”看一下mysql是否启动
安装M$ Office ,不知道要不要安装这东西才支持asp我就不知道了,反正我装完系统后就全部安装office了,呵呵,估计没装也支持asp,(如果你不想它支持asp可以不去管它)
安装perl解释器:
运行ActivePerl-5.6.1.635-MSWin32-x86.msi,安装过程中选择L:\perl目录,当然你要默认也行。
装MM的ColdFusion MX,我是装到L:\ColdFusionMX目录下了
配置服务器,嘿嘿,写到这边不得不开photoshop弄图了,说不好说
点击 开始-》程序-》管理工具-》Internet 服务管理器
单击“默认 web 站点”,然后右键单击它,选择“属性”,打开对话框
单击“主目录”,做如下设置:在“本地路径”中选择你的机子上要作为站点根目录的文件夹,比如我的是L:\WEB,如下图:然后点击右下方的“配置”,弹出新的对话框
在新的对话框中选择“添加”
在可执行文件中浏览选择L:\php\sapi\php4isapi.dll,注意在浏览对话框中文件类型要选择*.dll,不然看不到L:\php\sapi\目录下的.dll文件哦,选定后在扩展名中输入.php ,如下图:
单击确定
如上方法在添加L:\perl\bin\perlis.dll,设置扩展名为.cgi (这是我自己研究的,装支持cgi的时候我没看任何资料,如php一样依样画葫芦,呵呵),如下图设置,单击确定就OK了
最后一步设置默认文件,就是index.php拉什么的,如下图,设置好后一路确定后关闭“Internet 服务管理器”
好象这样就可以了哦,测试一下php拉,其他各位自己写程序测试咯,建个info.php的文件,保存在你的web根目录下,用记事本打开,复制下列内容保存:
<?php
phpinfo();
?>
如果一切顺利的话会见到如下页面:
最后祝大家PHP玩得愉快,嘿嘿
另外,在装完MM CFMX后,站点会自动停止,请启动它,还有一个要修改的是:
找到L:\CFusionMX\db\slserver52\admin目录下的setcp.bat,在当前目录创建它的快捷方式,记住文件名也是setcp.bat哦,然后在右键点击快捷方式,选属性,在目标后面加上空格和大写的OS,然后点确定就OK了,
如:L:\CFusionMX\db\slserver52\admin\setcp.bat OS
这个是解决乱码问题,朋友告诉我的,修改后重起计算机就OK了。
后记:很多人说调试不成功,显示类似于这些的信息:
Warning: Unknown(D:\www\phpinfo.php): failed to create stream: No such file or directory in Unknown on line 0
Warning: Unknown(): Failed opening 'D:\www\phpinfo.php' for inclusion (include_path='.;c:\php4\pear') in Unknown on line 0
那是你info.php这个文件错误,扩展名不是真正的.php,而是.txt文件,只有显示扩展名才能去掉.txt