Image 01 Image 02

7
Posted on 26th 十一月 2009 by admin

0.4.2更新:
*phpmyadmin无法读取mysql.dll问题
*更新phpmyqdmin到3.2.3
*点击关闭和启动apache必须刷新后才能显示状态
*更新php至5.2.11
0.4.1更新:
*重写核心代码
*更名为HiPHP
*增加rewrite配置(新增discuz phpwind wordpress的rewrite模版)
软件简介:
HiPHP 是一款图形界面的快速搭建apache2.2.13、PHP 5.2.11、MySQL 5.1.35、phpMyAdmin 3.2.3,网站服务器平台的绿色软件。无需安装,具有灵活的移动性(如D:/HiPHP),打开HiPHP.exe启动服务即可。
HiPHP前身为NPMserv0.4.0进化过来的,为了开发两个不同版本(apache和nginx)的分支,以后集成两个版本的不再开发,但以后会开发转换工具,可以从两者之间相互转换.

1、注意事项:路径不要有中文或空格
2、MySQL默认用户名:root,密码123456
3、MySQL数据库文件存放目录:MySQL5.1\data
4、网站根目录www
5、访问本机请用http://127.0.0.1/
6、HiPHP集成了以下软件:

apahce2.2.13
PHP 5.2.11
MySQL 5.1.35
phpMyAdmin 3.2.3
Sendmail
zend3.3.3
感谢群里的同学进行测试和一些建议,感谢scomota的支持

点击下载

0
Posted on 17th 二月 2009 by admin

odeIgniter默认的配置下是不允许URL中包含非ASCII字符的,如果我们有这样一个字符串:

http://www.example.com/photo/北京/鸟巢.jpg

那么CI会毫不客气的告诉你:
The URI you submitted has disallowed characters.
你 可能会说,那我把这个URL使用函数urlencode一下呢?不行。因为Web Server会在接收到一个被urlencode的URL后自动将其decode,然后在PHP里得到的这些字符串转换成他原来所代表的含义,并使用 Web Server自己的URL编码字符集(IIS6 中文版是GBK,Apache 2.2是UTF-8)传送给应用程序,这就使得CI得到的URL已经是一个解码过的,无论你有没有对URL进行urlencode,浏览器在发出请求时会 自动检测,若没有,则会自动进行编码。所以,手动的进行urlencode并不能解决问题。那么我们应该怎么做来解决这个问题呢?

对于CI这种框架,用到现在,我的观点是尽量不要去修改它,而是去扩展他,CI提供了很好的扩展机制,我们只需要在application/libraries/下增加一个文件MY_URI.php,其内容为:

class MY_URI extends CI_URI {
function _filter_uri($str)
{
if ($str != ” AND $this->config->item(‘permitted_uri_chars’) != ”)
{
$str = urlencode($str);
if ( ! preg_match(“|^[".preg_quote($this->config->item('permitted_uri_chars'))."]+$|i”, $str))
{
exit(‘The URI you submitted has disallowed characters.’);
}
$str = urldecode($str);
}
return $str;
}

}

红 色的两行是我新加入的代码,我覆盖了原来CI_URI中的_filter_uri方法,这样就可以使得中文的URL通过检测。但是,如果URL里有空格, 也不行了,怎么办呢?原来,urlencode会将空格转换成+,而CI的默认配置中是不允许+出现在URL里的,OK,把$config ['permitted_uri_chars'] = ‘a-z 0-9~%.:_\-’;改成$config['permitted_uri_chars'] = ‘a-z 0-9~%.:_\+\-’;就可以了。

0
Posted on 5th 一月 2009 by admin

首先要确定是否在第一行,

如果你是用editplus的话

我的edit plus中设置了默认的编码为utf-8,且UTF_8签名为:总是添加签名;
于是尝试以下操作:
在edit plus 的工具->参数->文件->UTF_8签名一项中,更改选项”总是添加签名”为”总是移除签名”,然后打开index.php文件,并重新另存为,重新运行脚本,终于可以正常了;

0
Posted on 28th 十一月 2008 by admin

以前写了好几个代码,今天整合一下,成一个完整的工具

base64加密和解密,迅雷加密和解密,快车加密和解密

http://www.afen.cn/base64/

0
Posted on 10th 四月 2007 by admin

class CreateHtml
{
function mkdir( $prefix= 'article' )
{
$y = date('Y');
$m = date('m');
$d = date('d');
$p=DIRECTORY_SEPARATOR;
$filePath='article'.$p.$y.$p.$m.$p.$d;
$a=explode($p,$filePath);
foreach ( $a as $dir)
{
$path.=$dir.$p;
if(!is_dir($path))
{
//echo '没有这个目录'.$path;
mkdir($path,0755);
}
}
return $filePath.$p;
}
function start()
{
ob_start();
}
function end()
{
$info = ob_get_contents();
$fileId = '123456';
$postfix = '.html';
$path = $this->mkdir($prefix= ‘article’);
$fileName = time().’_’.$fileId.$postfix;
$file=fopen($path.$fileName,’w ‘);
fwrite($file,$info);
fclose($file);
ob_end_flush();
}
}
?>
$s=new CreateHtml();
$s->start();
?>


asdfasdfasdfasdfasdfasdfasdfasdfasdf
adfasdfasdf
>

$s->end();
?>

如果程序出错,就是权限问题

0
Posted on 30th 九月 2006 by admin

从say3say4的BLOG看到的,放到我们的团队的系列文章,方便大家学习
再说一句:基础很重要!
ajax架构中主要涉及的技术:
client: javascript解析xml, 操纵DOM修改html页面,javascript是“OO”的语言。
server: servlet + dao, 实现service接口即可

下面是client中主要的代码:
1。JS中封装解析xml的代码,以及实例应用。

//类的构造,传入xml文档和需要处理的标签名称
function DataSet(xmldoc, tagLabel) {
this.rootObj = xmldoc.getElementsByTagName(tagLabel)

//3个方法
this.getCount = getCount
this.getData = getData
this.getAttribute = getAttribute
}

function getCount(){
return this.rootObj.length
}
function getData(index, tagName){
if (index >= this.count) return “index overflow”
var node = this.rootObj[index]
var str = node.getElementsByTagName(tagName)[0].firstChild.data
return str
}

function getAttribute(index, tagName) {
if (index >= this.count) return “index overflow”
var node = this.rootObj[index]
var str = node.getAttribute(tagName)
return str
}
//如何使用DataSet类
function updateByXML(xmlDoc) {

var employeeDS = new DataSet(xmlDoc,”employee”); //关心的标签名称
var count = employeeDS.getCount()
for(i=0;i var name = employeeDS.getAttribute(i,"name")
var job = employeeDS.getData(i,"job")
var salary = employeeDS.getData(i,"salary")
alert(name + "," + job + "," + salary)
}
//使用的xml格式,类似如下



Programmer
32768


无业游民
70000


哈尔滨CEO
100000

2。操纵DOM,创建table,显示获得的数据

function deleteOldTable() {
delRow = document.getElementsByTagName(“table”).length
//此句仅在本例中使用,因为本例中已经有一个table了,因此不能删除,需要根据情况变化一下2005.11.17
if(delRow == 1) return

var node = document.getElementsByTagName(“table”)[delRow-1]; //表格
var c = node.childNodes.length
for(i=0;i node.removeChild(node.childNodes[0]); //删除全部单元行
}

//传入DataSet的一个实例即可
function makeTable(m_ds) {

deleteOldTable() //先清除以前的结果

var table = document.createElement(“table”);
table.setAttribute(“border”,”1″);
table.setAttribute(“width”,”100%”);

document.body.appendChild(table);
var header = table.createTHead();
var headerrow = header.insertRow(0);
headerrow.insertCell(0).appendChild(document.createTextNode(“姓名”));
headerrow.insertCell(1).appendChild(document.createTextNode(“职业”));
headerrow.insertCell(2).appendChild(document.createTextNode(“工资”));

for(var i=0;i var name = m_ds.getAttribute(i,”name”)
var job = m_ds.getData(i,”job”)
var salary = m_ds.getData(i,”salary”)

var row = table.insertRow(i+1);
row.insertCell(0).appendChild(document.createTextNode(name));
row.insertCell(1).appendChild(document.createTextNode(job));
row.insertCell(2).appendChild(document.createTextNode(salary));
}
}

0
Posted on 22nd 九月 2006 by admin

From MoztwWiki
本文章为 Mozilla Developer Center 的 AJAX:Getting Started (http://developer.mozilla.o… 的翻译。原文的作者与编修历史可在它的历史页 (http://developer.mozilla.o… action=history)上看到。

这篇文章说明 AJAX 相关技术的基础,并提供实例供您上手。

AJAX 是啥?

AJAX (Asynchronous JavaScript and XML, 异步 JavaScript 及 XML 技术) 是个新词,但内涵是两个存在已有一段时间的 JavaScript 功能。这两种功能以往一直被忽略,在 Gmail、Google suggest 及 Google Maps 出现后才一举成名天下知。

这两个 JavaScript 功能 是:

0
Posted on 11th 八月 2006 by admin

所以假设你创建了一个”Universe”的类,并且强制所有的类都必须从universe扩展,你可以在universe 中定义一个clone的方法,如下:

class Universe {
function clone() {
$herring=serialize($this);
$vec=explode(‘:’,$herring);
$nam=str_replace(“\”",”,$vec[2]);
$ret=new $nam;
return $ret;
}
}

//然后

$obj=new Something();
//从Universe扩展
$other=$obj->clone();

你所得到的是一个新的Something类的对象,它同使用new方法,调用构造函数创建出的对象一样。我不知道这个对你是否有用,但是Universe类可以知道派生类的名字是一个好的经验。想象是唯一的限制。

注意:我用的是PHP4,我写的有些东西在PHP3下可能不能工作。]]>