More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  day-report StudyPhotosProfileFriendsMore Tools Explore the Spaces community

day-report Study

我们是“草根开发者”,我们有“草根”的快乐,“草根”的思想,Open是我们的追求,Share是我们的思想。我们疼并快乐着!“疼就疼吧,让我疼死算了!”(武林外传,老邢台词)

Steven

View spaceSend a message
Occupation:
Age:
Location:
Interests:
从事php开发工作5年以上。
现某日企从事基于PHP的标准品图形显示系统开发与维护。
用来存放我认识或认识我的朋友们的BLOG地址。
August 19

Oracle9将服务(数据库)删除(Oracle9i日文版)

1-环境
  WindowsXp(Sp2)
  Oracle9i
  PLSQL
*说明:删除Oracle的服务(数据库)有两步操作,一是删除服务与数据库,二是删除服务的网络连接。


2- 删除原有服务(数据库)
  2-1 删除原有服务(数据库)
clip_image002
  选择其中的“データベースの削除”项目,在弹出的对象框中先择要删除的服务(数据库名)
clip_image004

clip_image006
clip_image008clip_image010
clip_image012
clip_image014
  2-2 删除原有服务网络连接
    (1)打开Oracle企业管理器并选择“本地方式起动”
clip_image016
clip_image018
    (2)选择刚才被删除的服务(数据库)点需“右键”,在弹出的菜单中选择“删除”。
clip_image020
    (3)收到是否删除的提示信息后点击“是”删除服务网络连接,完成服务(数据库)的撤底删除。
clip_image022

Oracle9将备份数据库导入当前数据库中操作(日文版Oracle9i)

1-环境
  WindowsXp(Sp2)
  Oracle9i
  PLSQL
*说明:此文档用于数据库备份文件导入新数据库时使用,若服务名相同则导入会出现“重合/一制性”制约导致导入失败,需要新建一个服务(数据库),在该空服务(数据库)基本上恢复数据库数据。

2-将数据Dump文件复制并放到指定位置
clip_image002

3-打开Oracle数据库管理工具(Database Configuration Assistant)创建Oracle新服务(数据库)
   *删除服务(数据库时也需使用该工具)
  3-1 打开Oracle数据库管理工具,新建服务(数据库)
clip_image004
clip_image006
  3-2 数据库操作类型
clip_image008
  3-3 数据库情况(数据仓库)

clip_image010
  3-4 新数据库服务名(数据库名)
clip_image012
clip_image014
  3-5 数据库属性设置
      *设定新数据库相关参数信息。
      ①(1)设定缓存处理可大些100MB(图3.1.1)
      ②(2)设定语言及信息(图3.1.2)
      ③(3)设定数据库排序空间(图3.1.3)
clip_image016
(图3.1.1)
clip_image018
(图3.1.2)
clip_image020
(图3.1.3)

  3-6 数据库设置显情况显示
clip_image022
clip_image024
clip_image026
  3-7 新建数据库中
clip_image028
clip_image030
  3-8 设定新服务(数据库)管理者密码
clip_image032
完成新建Oracle服务(数据库)

4- 使用Oracle9i的企业管理工具查看新建服务(数据库)情况并建立导入数据库相关信息
   *因为Oracle导出的数据库必须使用相同用户名与空间,因此需要建立相同的导出时的表空间名与用户。(下面就是讲述)
  4-1 打开Oracle9i企业管理工具
clip_image034
选择“本地独立”方式
clip_image036
进入企业管理工具界面
clip_image038

  4-2 选择新建的服务名(数据库),“TESTIMP”
点击左边的“+”,在出现的数据库登录界面中输入System与连接方式。
clip_image040clip_image042

  4-3 打开存储空间项建立新数据库所使用的空间
clip_image044
    (1)在表空间子节按右键,在弹出的菜单中选择“新建”
clip_image046
    (2)输入新表空间名称“USR”并分配该表空间大小“2000MB”(随数据库大小而定),创建新表空间
clip_image048clip_image050
clip_image052

  4-4 打开用户管理,新建导入数据库所使用的用户名并分配新建的表空间
clip_image054
    (1)在安全,用户管理中按右键,在弹出的菜单中选择“新建”
clip_image056
    (2)在弹出的界面中输入用户名并选择刚才建立的表空间
clip_image058
    (3)设定用户规则(DBA,管理员)并设定管理权限
clip_image060
    (4)设定系统规则(管理员权限)
clip_image062
    (5)设定该用户指定表空间使用情况
clip_image064
clip_image066
  4-4 使用新建的管理员用户以管理者身份,重新登陆服务(数据库)确认
clip_image068
clip_image070
clip_image072

5-使用Oracle9i导入命令将数据导入新服务(数据库)中
  5-1 在“运行”里输入“cmd”进入命令行方式
clip_image074
  5-2 使用导出的用户名
  imp tempusr/temp@testimp FILE=C:\1-cssweb_data_070604\cssweb_data_070604.dmp LOG=c:\imp.log FULL=Y IGNORE=Y

clip_image076

  6- 使用PLSQL登陆并查看数据库导入情况

JavaScript概要

1-加载JavaScript方法
  1-1 直接加入html方式(头文件定义)

<script language="Javascript">
<!--
document.writeln("这是Javascript!采用直接插入的方法!");
-->
</script>

  在这个例子中,我们可看到一个新的标签: <script>……</script>,而<script language="Javascript”> 用来告诉浏览器这是用Javascript编写的程序,需要调动相应的解释程序进行解释。
  HTML的注释标签<!--和-->:用来去掉浏览器所不能识别的Javascript源代码的,这对不支持 Javascript 语言的浏览器来说是很有用的。
  //-Javascript结束:双斜杠表示 Javascript的注释部分,即从//开始到行尾的字符都被忽略。 至于程序中所用到的document.write()函数则表示将括号中的文字输出到窗口中去, 这在后面将会详细介绍。 另外一点需要注意的是,<script>……</script>的位置并不是固定的,可以包含在<head>......</head> 或<body>.....</body>中的任何地方。
  1-2 引用JS文件方式
  如果已经存在一个Javascript源文件(以js为扩展名),则可以采用这种引用的方式,以提高程序代码的利用率。其基本格式如下:在网页中可以这样调用程序:

<script src="Script.js" language="Javascript"></script>

2-JavaScript的注释
  2-1 单行注释方式:“// 文本”;
  2-2 多行注释方式:“/* 文本 */”

3-JavaScript的过程控制
  3-1 选择结构
  用来指明两种程序流方向,在程序中创建一个交叉点(像岔路)。在 Jscript 中有四种选择结构可用。
  (1)单一选择结构(if),
  (2)二路选择结构(if/else),
  (3)内联三元运算符 ?:
  (4)多路选择结构(switch)。
  3-2 循环结构
  使用循环结构来指明当某些条件保持为真时要重复的动作。当控制语句的条件得到满足时(通常在某些迭代的特定数字后),控制跳过循环结构传递到下条语句。在 Jscript 中有四种循环结构可用。
  (1)在循环的开头测试表达式(while)
  (2)在循环的末尾测试表达式(do/while),
  (3)对对象的每个属性都进行操作(for/in),
  (4)由计数器控制的循环(for)。

4-判断对象或变量是否存在;

if(typeof(x) == “undefined”){
  alert("存在");
} else {
alert("不存在");
}

5-判断对象是否有对应属性;

if("prop" in someObject){
  alert("存在prop属性");
} else {
alert("在prop属性"); }

6-JavaScript变量与对象

var str1 = "this is String1"; // 字符串变量
var str2 = "this is String2"; 
var objstr1 = new String(str1); // 字符串对象
var objstr2 = new String(str2); 
if(str1 == str2){
alert("Same");
}
// 按值判断
if(objstr1.valueOf() != objstr2){
alert("No Same");
}

7-数组

var myArray = new Array(3);
myArray[0] = "Hello"
myArray[1] = "JavaScript"
myArray[2] = "World!"

8-JavaScript的11个内置对象
(1)Array--------数组对象
(2)Boolean-----布尔对象
(3)Date---------日期时间对象,
(4)Function---函数定义
(5)Global------全局定义
(6)Math--------科学计算函数(PI,sin,pow等)
(7)Number----数值对象
(8)Object------对象
(9)RegExp----正则表达对象
(10)Error-----错误对象
(11)String-----字符串对象

9-JavaScript创建自定义对象方法
(1)自定义构造器创建对象(类)

// 创建对象构造器并传递变量 
function person(v_name, v_sale, v_sexy){ this.name = v_name; // 类变量name this.sale = v_sale; this.sexy = v_sexy; this.today = new date(); // 内部变量 this.toString = personTostring; // 对象方法指定 }
// 对象指定方法实现
function personTostring(){
return "Name :"+this.name+"sale"+this.sale+"sexy"+this.sexy; }
使用时:
var personal1 = new personal("stven","2300","1");
alert(personal1.toString());

(2)继承内置原型创建对象prototype
对于每个JavaScript内置对象中都存在一个叫prototype的方法该方法就是对指定内置对象中附加相应性性与方法的构造函数(反射)
如,在String对象中追加trim函数

String.prototype.trim = function(){
  return this.replace (/(^\s*)|(\s*$)/g, "");
}
使用时:
var String1 = " testdd ";
String1.trim();

10-强制类型比较
  在JavaScript中采用自动类型转换方式(像PHP),若要确保真正意义上的相同,并对比类型采用“===”进行判断处理。

"100" == 100      // true
false == 0        // true
?g100?h === 100   // false
false ===0        // false
August 13

八款JS框架介绍及比较(转)

Dojo
    Dojo 是目前最为强大的JS框架,它在自己的 Wiki 上给自己下了一个定义,Dojo 是一个用 JavaScript 编写的开源的DHTML工具箱。Dojo 很想做一个“大一统”的工具箱,不仅仅是浏览器层面的,野心还是很大的。Dojo 包括 Ajax、Browser、Event、Widget 等跨浏览器 API,包括了 JS 本身的语言扩展,以及各个方面的工具类库,和比较完善的 UI 组件库,也被广泛应用在很多项目中,他的 UI 组件的特点是通过给 HTML 标签增加 TAG 的方式进行扩展,而不是通过写 JS 来生成,Dojo 的 API 模仿 Java 类库的组织方式。用 Dojo 写 Web OS 可谓非常方便。Dojo 现在已经 4.0 了,Dojo 强大的地方在于界面和特效的封装,可以让开发者快速构建一些兼容标准的界面。
    优点:库相当完善,发展时间也比较长,功能强大,据说利用 Dojo 的 io.bind() 可以实现 comet 看见其功能强大非一般,得到 IBM 和 SUN 的支持。
    缺点:文件体积比较大,200多KB,初次下载相当慢,此外,Dojo 的类库使用显得不是那么易用,JS语法增强方面不如 Prototype

Prototype
    它是一个非常优雅的 JS 库,定义了 JS 的面向对象扩展,DOM 操作API,事件等等,以 Prototype 为核心,形成了一个外围的各种各样的 JS 扩展库,是相当有前途的 JS 底层框架,值得推荐,感觉也是现实中应用最广的库类(RoR 集成的 AJAX JS 库),之上还有 Scriptaculous 实现一些JS组件功能和效果。
    优点:基本底层,易学易用,甚至是其他一些js特效开发包的底层,体积算是最小的了。
    缺点:如果说缺点,可能就是功能是他的弱项

dScriptaculous
    Scriptaculous 是基于prototype.js 框架的 JS 效果。包含了 6 个 js 文件,不同的文件对应不同的 js 效果,所以说,如果底层用 prototype 的话,做js效果用 Scriptaculous 那是再合适不过的了,连大名鼎鼎的 digg 都在用他,可见不一般
    优点:基于prototype 是最大的优点,由于使用 prototype 的广泛性,无疑对用户书锦上添花。
    缺点:刚刚兴起,需要时间的磨练

Yui-ext
    基于 Yahoo UI 的扩展包 yui-ext 是具有 CS 风格的 Web 用户界面组件,能实现复杂的 Layout 布局,界面效果可以和 backbase 媲美,而且使用纯 javascript 代码开发。真正的可编辑的表格 Edit Grid,支持 XML 和 Json 数据类型,直接可以迁入 Grid。许多组件实现了对数据源的支持,例如动态的布局,可编辑的表格控件,动态加载的 Tree 控件、动态拖拽效果等等。从 1.0 beta 版开始同 Jquery 合作,推出基于 jQuery 的 Ext 1.0,提供了更多有趣的功能。
    优点:结构化,类似于 java 的结构,清晰明了,底层用到了 Jquery 的一些函数,使整合使用有了选择,最重要的一点是界面太让让人震撼了。
    缺点:太过复杂,整个界面的构造过于复杂。

Jquery
    JQuery 是一款同 prototype 一样优秀 js 开发库类,特别是对 css 和 XPath 的支持,使我们写 js 变得更加方便!如果你不是个 js 高手又想写出优秀的 js 效果,那么 JQuery 可以帮你达到目的!并且简介的语法和高的效率一直是jQuery追求的目标。
    优点:注重简介和高效,js 效果有 yui-ext 的选择,因为 yui-ext 重用了很多 jQuery 的函数
   缺点:据说太嫩,历史不悠久。

Mochikit
    MochiKit 自称为一个轻量级的 js 框架。MochiKit 主要受到 Python 和 Python 标准库提供的很多便利之处的启发,另外还缓解了浏览器版本之间的不一致性。其中的 MochiKit.DOM 尤其方便,能够以比原始 JavaScript 更友好的方式处理 DOM 对象。MochiKit.DOM 大部分都是针对 XHTML 文档定制的,如果与 MochiKit 和 Ajax 结合在一起,使用 XHTML 包装的微格式尤其方便。Mochikit 可以直接对字符串或者数字格式化输出,比较实用和方便。它还有自己的 js 代码解释器
    优点:MochiKit.DOM 这部分很实用,简介也是很突出的
   缺点:轻量级的缺点

Mootools
    MooTools 是一个简洁,模块化,面向对象的 JavaScript 框架。它能够帮助你更快,更简单地编写可扩展和兼容性强的 JavaScript 代码。Mootools 跟 prototypejs 相类似,语法几乎一样。但它提供的功能要比 prototypejs 多,而且更强大。比如增加了动画特效、拖放操作等等。
    优点:可以定制自己所需要的功能,可以说是 prototypejs 的增强版。
    缺点:不大不小,具体应用具体分析。

Moo.fx
    Moo.fx是 一个超级轻量级的 javascript 特效库(7k),能够与 prototype.js 或mootools 框架一起使用。它非常快、易于使用、跨浏览器、符合标准,提供控制和修改任何 HTML 元素的 CSS 属性,包括颜色。它内置检查器能够防止用户通过多次或疯狂点击来破坏效果。moo.fx整体采用模块化设计,所以可以在它的基础上开发你需要的任何特效。
    优点:小块头有大能耐
    缺点:这么小了,已经不错了

引用来自:冷眼 - 技术专栏 http://www.blogjava.net/kent/articles/202855.html

Apache 下配置脚本和可执行程序功能解决可执行权限问题实现IIS的“脚本和可执行文件”功能

环境:
  WindowsXp(Sp2)
  Apache2.0.55
  PHP4.4.1(dev)
  我们知道IIS可以对指定Web-Application配置“脚本和可执行文件”项,该项配置后,对于该Web-App中所有脚本与可执行程序用户都可以通过IE经过服务器访问,这种方式主要是用来处理,某可执行文件解释其他语言或导向时使用。(如下图)
clip_image001
IIS中可以通过设置“脚本和可执行文件”解决可执行文件的运行权限,但是Apache中应该如何设置呢?答案是肯定的也是有的,只需要将可执行文件放到Apache中对应cgi-bin中即可
clip_image003
clip_image005
这样就实现了IIS中的“脚本和可执行文件”,可执行文件权限问题。

August 12

如何在Windows中查看端口及对应的应用程序

环境:WindowsXp(sp2)
简要说明:使用“netstat”查看端口对应PID(应用程序执行线程),再使用“tasklist”查看PID对应的应用程序。
  1-查看端口开放及对应PID情况
  方法:使用系统命令“netstat”处理。
  Netstat
命令用法
  命令格式:Netstat -a -e -n -o -s-an
  -a 表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。
  -e 表示显示以太网发送和接收的字节数、数据包数等。
  -n 表示只以数字形式显示所有活动的TCP连接的地址和端口号。
  -o 表示显示活动的TCP连接并包括每个连接的进程ID(PID)。
  -s 表示按协议显示各种连接的统计信息,包括端口号。
  -an 查看所有开放的端口
clip_image002

2-
使用tasklist查看PID对应程序
clip_image004
  查看相应的程序后将该程序的服务停止即可将相应的端口释放。

August 08

IIS5+PHP4安装说明(资料整理)

环境:
  WindowsXp(Sp2)
  PHP4.3.8
  IIS5

  因为一直在使用Apache做为WebServer所以有些忘记IIS下是如何配置的了,下面我将根据从网上找到的资料对IIS下安装PHPISAPI方式)进行说明。
  注:因为刚开始配置PHP的时候采用的是解释方法,即直接采用.php扩展名用php.exe解释的方式,但配置后会因为Oracle.dll加载不上造成项目不可使用的情况,因此采用了ISAPI方式。

1- 安装IIS5(不再详细说明了)
2- 准备PHP环境进行配置
  2-1 将PHP解释文件放到你所想安装的目录中(本文以C:\PHP4.3.8为例);
  2-2 把C:/PHP4.3.8下面的php.ini-dist文件复制到Windows目录下,并改名成php.ini;
      *配置Extension与Session时需要打开该ini文件采用绝对路径(全路径)方式书写;
  2-3 把C:/PHP4.3.8/php4ts.dll复制到C:/Windows/system32目录下;
  2-4 点开始/运行,输入mmc启动Windows综合管理台,选择菜单中“文件”->“管理追加与删除”在弹出的窗口中点击[添加]按钮,在后弹出的窗口中选择“计算机管理”,点击[添加]按钮(点完后窗口不消息),再点击[关闭]即完成添加;
      *这时会在前一窗口中显示出被添加的管理项。
  2-5 选择2-4所添加的“计算机管理”项,点击“服务与程序”项,选择“Internet服务项”;
  2-6 在计算机管理窗口上展开“服务和应用程序”->“Internet信息服务”,在“默认Web站点”上点鼠标右键,选属性,这时系统弹出“默认Web站点属性”窗口;
  2-7 在“默认Web站点属性”窗口上点取“ISAPI筛选器”标签,点击“添加”按钮,在弹出的“筛选器属性”窗口的“筛选器名称”中输入“PHP”,“可执行文件”中输入“C:/PHP4.3.8/sapi/php4isapi.dll”,点击[确定];
  2-8 在“默认Web站点属性”窗口上点取“主目录”标签,点“配置”按钮,在弹出的“应用程序配置”窗口中点取“添加”按钮,在弹出的“添加->编辑应用程序扩展名映像”对话框中的“可执行文件”文本框中输入“C:/PHP4.3.8/sapi/php4isapi.dll”,“扩展名”文本框中输入“.php”(注意一定要有那个点),点击[确定];
  2-9 回到命令行窗口,输入“net stop iisadmin”命令,终止IIS服务。系统会问你是否要将相关的服务也停止,答
  2-10 输入“net start w3svc”命令,重新启动IIS服务;
      *因为采用的是isapi方式(与Apache模块方式相似)因此每次重新配置php的时候都需要重启IIS
服务器。
3- 查看配置情况验证php解释运行(制作一个phpinfo.php文件)
[phpinfo.php]

<?php
Phpinfo();
?>

把这个文件保存在默认Web节点的默认文文件目录下(C:/Inetpub/wwwroot),然后打开浏览器,在地址栏中输入localhost/hello.php,如果顺利,经典的“Hello,World!”应该出现在你的浏览器中。如果找不到页面,而你也能确认上述几步都没问题,那么在浏览器的地址栏中输入地址127.0.0.1/hello.php试试看,如果能成功,则说明你的hosts文件有问题,请编辑C:/WINNT/system32/drivers\etc下面的hosts文件,加入“127.0.0.1 localhost”一行。

资料整理来自:php 168论坛http://bbs.php168.com/simple/index.php?t120797.html

August 07

解决Oracle XDB与Tomcat等的8080端口的冲突(转载)

从9i开始,oracle的安装缺省包含了XDB。在数据库后,Oracle XDB的http服务自动霸占了8080端口,这给使用或JBoss、Tomcat进行java web开发的人造成了不小的麻烦。 这里介绍修改XDB的http和ftp服务端口的3种方法:
  1.使用dbms_xdb包修改端口设置
  使用sys登录sqlplus
sqlplus sys/syspassword as sysdba
然后执行如下的脚本
============================
--  Change  the  HTTP/WEBDAV  port  from  8080  to  8081
call  dbms_xdb.cfg_update(updateXML(
   dbms_xdb.cfg_get()
   ,  '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()'
   ,  8081))
/
--  Change  the  FTP  port  from  2100  to  2111
call  dbms_xdb.cfg_update(updateXML(
       dbms_xdb.cfg_get()
   ,  '/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()'
   ,  2111))
/
COMMIT;
EXEC  dbms_xdb.cfg_refresh;

  2.使用OEM  console

  选择数据库,XML  Database,Configuration。更改XDB的有关设置。
  3.修改SPFILE[SID名].ORA文件,去掉数据库的初始化参数:
  这个文件是
Oracle的启动配置文件dispatchers='(PROTOCOL=TCP)  (SERVICE=XDB)',将会禁止XDB的http和ftp服务。
  重启计算机,或者在服务中重启OracleService[SID名]这个服务。重启后可能无法使用Enterprise  Manager  Console和其他客户端连接,这时请使用Oracle的Configuration  and  Migration  Tools/Net  Configuration  Assistant工具删除监听器,然后新建一个监听器,重启监听器。

转载来自:中国IT实验室,
http://oracle.chinaitlab.com/install/351299.html
*用于个人技术类收藏,仅用于个人。

June 20

使用ionCube的API对加密后的非PHP文件(XML)进行访问

  ionCube是一款对PHP代码进行加密的软件,该软件强于ZendGuard功能,不仅可以对PHP(或带有PHP标记)的文件进行加密处理,还可以对非PHP类,以文本(TEXT)方式存储的文件进行加密处理,如:XML,CSS,JS等文件。
但是对于被ionCube加密后的文件需要使用其所提供的API对文件进行读取操作后才能处理,因此就必须对原代码进行简单调整。
下面我们将讲述ionCube加密前,相关文件的调整说明。(读取XML并解析),使用ionCube的ioncube_read_file读取加密后的xml文件
  *对于写文件与读文件相同,不再讲述,使用ionCube的ioncube_write_file进行写加密文件。
1- 调整前代码
   test.php

<?php
// 该代码是使用PHP的SAX方式对指定XML文件进行解析并打印Tag
$file = "book.xml";
$depth = array();
function startElement($parser, $name, $attrs){
    global $depth;
    for ($i = 0; $i < $depth[$parser]; $i++) {