简单的类定义

class SimpleClass
{
   // 成员声明
   public $var = 'a default value';

   // 方法声明
   public function displayVar() {
       echo $this->var;
   }
}
?>  
new
要创建一个对象的实例,必须创建一个新对象并将其赋给一个变量。当创建新对象时该对象总是被赋值,除非该对象定义了构造函数并且在出错时抛出了一个异常。(很像java,呵呵)
创建一个实例e

$instance = new SimpleClass()
?>  
当把一个对象已经创建的实例赋给一个新变量时,新变量会访问同一个实例,就和用该对象赋值一样。此行为和给函数传递入实例时一样。可以用克隆给一个已创建的对象建立一个新实例。

对象赋值

$assigned   =  $instance;
$reference  =& $instance;

$instance->var = '$assigned will have this value';

$instance = null; // $instance and $reference become null

var_dump($instance);
var_dump($reference);
var_dump($assigned);
?>  

上例将输出:

NULL
NULL
object(SimpleClass)#1 (1) {
  ["var"]=>
    string(30) "$assigned will have this value"
}

extends
一个类可以在声明中用 extends 关键字继承另一个类的方法和成员。不能扩展多个类,只能继承一个基类。

被继承的方法和成员可以通过用同样的名字重新声明被覆盖,除非父类定义方法时使用了 final 关键字。可以通过 parent:: 来访问被覆盖的方法或成员。

例子 19-4. 简单的类继承

class ExtendClass extends SimpleClass
{
   // Redefine the parent method
   function displayVar()
   {
       echo "Extending class\n";
       parent::displayVar();
   }
}

$extended = new ExtendClass();
$extended->displayVar();
?>  

上例将输出:

Extending class
a default value


看后觉得如果有Java基础是不是感觉这个问题很是简单了呢。。。。呵呵

ajax可以说的上当今很火的技术啦.
在村子里经常看到有人问xajax的技术,说实话,我觉得那东西太麻烦,用起来太费事.

ajax本身实现的机制不是很难,难的应该是在后期的javascript处理返回的responseText,responseXml

ajax本身的操作过程无外是:

1.构建一个xmlHTTP对像
2.通过xmlHTTP的同步或是异步方式发送数据(大部分都是异步方式)
3.如果是异步方式检查xmlHttp的状态变化
4.当状态变到readyState==4,而且status==200说明发送数据成功
5.这时候再通过javascript处理xmlHTTP的responseText或是responseXml(这两者是同时存在的)

下面来实现这个过程
1.构建一个xmlHTTP的对像


CODE:function createRequest(){
       if(typeof XMLHttpRequest!="undefined")        {
               return new XMLHttpRequest();
       }else if(typeof ActiveXObject!="undefined"){
               var xmlHttp_ver  = false;
               var xmlHttp_vers = ["MSXML2.XmlHttp.5.0","MSXML2.XmlHttp.4.0","MSXML2.XmlHttp.3.0","MSXML2.XmlHttp","Microsoft.XmlHttp"];
               if(!xmlHttp_ver){
                       for(var i=0;i<xmlHttp_vers.length;i++){
                               try{
                                       new ActiveXObject(xmlHttp_vers[i]);
                                       xmlHttp_ver = xmlHttp_vers[i];
                                       break;
                               }catch(oError){;}
                       }
               }
               if(xmlHttp_ver){
                       return new ActiveXObject(xmlHttp_ver);
               }else{
                       throw new Error("Could not create XML HTTP Request.");
               }
       }else{
               throw new Error("Your browser doesn't support an XML HTTP Request.");
       }
}
注意:xmlHttp_vers 应该从版本高的往版本低的写,这样建立对像的数据调用的是你机子上安装过的最高版本的MSXML2.XmlHttp


第二步发送数据
这里主要是调用xmlHttp的open方法和send方法来处理
xmlHTTP的方法可以到www.xmlhttp.cn查看(我以前发过一个chm的,但因为版权被村长删除啦,谁要是想要,回信,我发一下)
下面是用post的方法发送数据


CODE:var xmlHttp;
xmlHttp = createRequest();
function sendPostRequest()
{    
       var shownum=document.getElementById("shownum").value;// html页面中一个id为shownum的input表单
       var url = "show.php";//要发送到的URL
       var queryString = "shownum" + "=" + shownum;
       //向服务端发送请求
       xmlHttp.open("post", url, true);//这里的第三个参数为true为异步方式处理
       xmlHttp.onreadystatechange = showData;//异步方式处理,当状态改变时会调用onreadystatechange属性指定的回调函数showData
       xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");//这一句是用post方法发送的时候必须写的
       xmlHttp.send(queryString);//发送你构建成的数据,如果为“get”方法时,这里可以写成xmlHttp.send(NULL);
}
第三步

当状态改变时会调用onreadystatechange属性指定的回调函数showData,来来检查状态变化

xmlHTTP.readyState 和xmlHTTP.status 可以去查手册,看一下就知道


CODE:function showData()
{
       var msg=document.getElementById("status");
                    //第4步
       if(xmlHttp.readyState==4)
       {
               if(xmlHttp.status==200)
               {
                //只有当readyState为4并且status为200时,才表示符合要求
                                                              //下面这一句话,就相当于上面说的第5步,处理返回的结果
                       msg.innerHTML =  xmlHttp.responseText;
               }
       }
       else
       {
               switch(xmlHttp.readyState)
               {
               case 0:
                       msg.innerHTML="未初始化...";
                       break;
               case 1:
                       msg.innerHTML="加载中...";
                       break;
               case 2:
                       msg.innerHTML="连接完成...";
                       break;
               case 3:
                       msg.innerHTML="交换数据...";
                       break;
               default:
                       break;
               }
       }
}
到这里就一次xmlhttp发送异步调用数据也就算完成啦
完整的代码是


CODE:<html>
<head>
<title>
ajax
</title>
<script language="javascript">
function createRequest(){
       if(typeof XMLHttpRequest!="undefined")        {
               return new XMLHttpRequest();
       }else if(typeof ActiveXObject!="undefined"){
               var xmlHttp_ver  = false;
               var xmlHttp_vers = ["MSXML2.XmlHttp.5.0","MSXML2.XmlHttp.4.0","MSXML2.XmlHttp.3.0","MSXML2.XmlHttp","Microsoft.XmlHttp"];
               if(!xmlHttp_ver){
                       for(var i=0;i<xmlHttp_vers.length;i++){
                               try{
                                       new ActiveXObject(xmlHttp_vers[i]);
                                       xmlHttp_ver = xmlHttp_vers[i];
                                       break;
                               }catch(oError){;}
                       }
               }
               if(xmlHttp_ver){
                       return new ActiveXObject(xmlHttp_ver);
               }else{
                       throw new Error("Could not create XML HTTP Request.");
               }
       }else{
               throw new Error("Your browser doesn't support an XML HTTP Request.");
       }
}

var xmlHttp;

function sendPostRequest()
{    
                    xmlHttp = createRequest();
       var shownum=document.getElementById("shownum").value;// html页面中一个id为shownum的input表单
       var url = "show.php";//要发送到的URL
       var queryString = "shownum" + "=" + shownum;
       //向服务端发送请求
       xmlHttp.open("post", url, true);//这里的第三个参数为true为异步方式处理
       xmlHttp.onreadystatechange = showData;//异步方式处理,当状态改变时会调用onreadystatechange属性指定的回调函数showData
       xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");//这一句是用post方法发送的时候必须写的
       xmlHttp.send(queryString);//发送你构建成的数据,如果为“get”方法时,这里可以写成xmlHttp.send(NULL);
}
function showData()
{
       var msg=document.getElementById("status");
                    //第4步
       if(xmlHttp.readyState==4)
       {
               if(xmlHttp.status==200)
               {
                //只有当readyState为4并且status为200时,才表示符合要求
                                                              //下面这一句话,就相当于上面说的第5步,处理返回的结果
                       msg.innerHTML =  xmlHttp.responseText;
               }
       }
       else
       {
               switch(xmlHttp.readyState)
               {
               case 0:
                       msg.innerHTML="未初始化...";
                       break;
               case 1:
                       msg.innerHTML="加载中...";
                       break;
               case 2:
                       msg.innerHTML="连接完成...";
                       break;
               case 3:
                       msg.innerHTML="交换数据...";
                       break;
               default:
                       break;
               }
       }
}

</script>
</head>
<body>
<div>要发送的数据:<input name="shownum" id="shownum" type="text"><input type="button" name="search" value="发送" onClick="sendPostRequest()"></div>
<div id="status"></div>
</body>
</html>
同一目录下要有一个show.php
内容为


CODE:<?php
$shownum = $_POST["shownum"];
echo $shownum;
?>
3D到底有什么好,感觉就是好玩,呵呵。。。。
Linux:每一个虚拟桌面都是一个独立的立体
http://desk3d.sourceforge.net/screenshots.php

Apple公司:把每一个虚拟桌面贴在四方体的每一个面上
http://www.apple.com/macosx/features/fastuserswitching/

SUN公司:每一个窗口都是一个独立的立体
http://wwws.sun.com/software/looking_glass/details.html

--------------------------------------------------------------------------------


3d桌面,有用吗?我觉得很无聊阿
老师是这样回答的:

quote:
--------------------------------------------------------------------------------
借用法拉第的名言回答你的问题:小伙子,请问新生的婴儿有什么用呢?
关于法拉第的那句名言历史老师或物理老师都会提到:
法拉第发现电磁感应现象后,发明了世界上第一台最原始的感应发电机。这年圣诞节他为朋友们进行了表演,只见他转动摇柄,铜盘旋转起来,电流计的指针开始偏转,铜盘转得越快,电流表指针的读数就越大,在场的人都交口称誉,惟独一位贵妇人不以为然,她以不屑一顾的口吻发问:“请问先生,你发明的这玩艺儿有什么用?”法拉第不气不恼,反问道:“夫人,请问新生的婴儿有什么用呢?”
是的,一项刚被人发现的科学原理正像刚出生的婴儿一样,有谁能预料它们的未来呢?
--------------------------------------------------------------------------------

我所知sun的3d桌面用是到java+OpenGL引擎来做,是真正的3D。并且直接接手桌面系统与显卡3d显示的操作,从原理上来说是会比现在的2d桌面更加快速的。因为现在的2d系统只是把数据传给显卡并没用到3d显卡的功能的,是一种最大的浪费。其实3d桌面系统并不是像3d游戏一样占用系统资源的。因为3D运算及显示部分是交给3D桌面引擎跟显卡GPU来直接处理的,所以占资源会很少的!这种情况的理想状态就像你现在用打印机打印一样有效而少占资源!!!

3D桌面实用化还远着呢!一是大家需要时间习惯,而且现在鼠标还是平面上操作的。
本人体验过SUse10的企业版,呵呵。。。。本人还有张solaris10g的企业盘可惜没有时间安装。。。。玩玩应该很好的。


 你说软件打败了硬件了还是硬件打败了软件了呢,理论上应该是硬件打败软件,应为软件要在硬件上跑,但是现目前的事实是软件打败了硬件,你的硬件得适合我这个软件,尤其是像windows等的操作系统,这个神话让比尔盖茨创造了。
 你说开源于商业谁打败了,是不是商业的就很好了呢?常规说应该是商业能打败开源,但是现在地开源是否好像在说,呵呵,我们的技术你还得学者点,微软是商业吧,他也得学习linux系统的一些东西。可惜他又不开源,广进不出。
 呵呵,世界就是这么有趣,都在想向对方证明点什么,那就是他有存在地价值,而且他会很NB。。。。这才是他的核心。。
什么是黑客?

Jargon File中对“黑客”一词给出了很多个定义,大部分定义都涉及高超的编程技术,强烈的解决问题和克服限制的欲望。如果你想知道如何成为一名黑客,那么好,只有两方面是重要的。(态度和技术)

长久以来,存在一个专家级程序员和网络高手的共享文化社群,其历史可以追溯到几十年前第一台分时共享的小型机和最早的ARPAnet实验时期。 这个文化的参与者们创造了“黑客”这个词。 黑客们建起了Internet。黑客们使Unix操作系统成为今天这个样子。黑客们搭起了Usenet。黑客们让WWW正常运转。如果你是这个文化的一部分,如果你已经为它作了些贡献,而且圈内的其他人也知道你是谁并称你为一个黑客,那么你就是一名黑客。

黑客精神并不仅仅局限于软件黑客文化圈中。有些人同样以黑客态度对待其它事情如电子和音乐---事实上,你可以在任何较高级别的科学和艺术中发现它。软件黑客们识别出这些在其他领域同类并把他们也称作黑客---有人宣称黑客实际上是独立于他们工作领域的。 但在本文中,我们将注意力集中在软件黑客的技术和态度,以及发明了“黑客”一词的哪个共享文化传统之上。 阅读全文
点击在新窗口中浏览此图片
问:
在CU论坛上看到一段文字:
-------------------------------------------
关于JSP的问题,就我所知,SUN公司现在已不打算继续支持JSP的发展,因为JSP其实还是JAVA,当初搞JSP主要是因为用JAVA写页面比较麻烦,为了与ASP在WEB方面竞争(SUN公司好象有专门的文档写这个事,我肯定看过)。SUN公司已经明确表示与ZEND公司合作支持PHP+JAVA,用PHP做前台显示,JAVA做商务逻辑,JSR规范正在讨论之中。在新的PHP5的架构中,肯定为JSR预留了接口,就我用PHP4+JAVA的经验,真的是结合容易,效率提高很多,写程序也很简单,在PHP方面写页面简单,在JAVA方面写事务处理简单,两者结合很是舒服。但PHP4与JAVA之间的接口还是不成熟,在MOD方式或是线程方式下还是有问题。
-------------------------------------------
真的吗?
这是否能看出一些PHP的发展方向和应用前途?
______________________________________________________________________________________________
答1:
PHP也该有个什么团队与其合作了,要不然他真的是没什么发展的,现在好了,有Java就好了。
______________________________________________________________________________________________
答2:
估计主要是在socket和web service编程方面发展。
______________________________________________________________________________________________
答3:
有这个就更好了,要不PHP这个民间组织般的技术的发展前景确实暗淡。
______________________________________________________________________________________________
答4:
Free很好,但是要一直坚持Free就比较苦难了~~
______________________________________________________________________________________________
答5:
假的!
______________________________________________________________________________________________
答6:
作者在瞎吹.
______________________________________________________________________________________________
答7:
吹牛也好,给人一点光明的希望啊
______________________________________________________________________________________________
答8:
ft!
拜托楼顶的个别同志去国外站点看看!
都是老得快掉牙的信息了
还有人怀疑真实性
尽管翻译可能有出入
但是确实有这事!
______________________________________________________________________________________________
答9:
是吗
______________________________________________________________________________________________
答10:
又多了一门新的语言!!!!!
什么时侯学习的完啊!!!!!


如果是真,当然支持,因为我是用php和JAVA来工作,可加快开发web!!!
______________________________________________________________________________________________
答11:
哦?
第一次听说
看来,这一个月的php没白学,将来还有点用,又要抗起我的老本行java了
______________________________________________________________________________________________
答12:
估计PHP5应该有着方面的特性吧
______________________________________________________________________________________________
答13:
实际上对JAVA和dotNET的支持,在4.X版本中就有提供测试部分的~~~~或许5.X进行了完善吧~~
______________________________________________________________________________________________
答14:
这可能是大型网站的顶尖搭配。如果数据库再用Oracle10g的话
先展望php6(当然也可能是php5.2之类,暂未确定)

去掉的东西(感觉有必要提的)
2.1 register_globals
这个影响安全,又不好处理.
2.2 magic_quotes
这个本意很好,但反对的声音很多…
2.3 safe_mode
这个东西被E_CORE_ERROR代替了.
2.11 register_long_arrays, HTTP_*_VARS
这个东西影响速度

特别的
1. Unicode
这个东西好!不用再担心很多了.
3.1 XMLReader / XMLWriter in the distribution, on by default
以后处理rss之类的就更容易了
3.2 Move non-PDO DB extensions to PECL
下面特别讨论.
3.3 Move ereg to PECL
实际preg,ereg差不多.用两个等于浪费.

其余的参见(http://www.php.net/~derick/meeting-notes.html)

============================================
下面描述一下,在php6,没有mysql_*,我们怎么过.

首先要连接mysql数据库
$dbh = new PDO(’mysql:host=localhost;dbname=test’, $user, $pass);
//如果你想连mssql:
//mssql:host=localhost;dbname=testdb
//连pgsql:
//pgsql:host=localhost port=5432 dbname=testdb user=bruce password=mypass
//连odbc(DSN)
//odbc:testdb
//连access:
//odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\db.mdb;Uid=Admin
//还有oracle,sqlite,db2….

我要执行个查询
foreach ($dbh->query(’SELECT * from FOO’) as $row) {
print_r($row); //这个结果和mysql_fetch_array差不多。PDOStatement::setFetchMode 可以调整。
}
//现在多简单

另外还可以:
$sth = $dbh->prepare(”SELECT name, colour FROM fruit”);
$sth->execute();

/* Fetch all of the remaining rows in the result set */
print(”Fetch all of the remaining rows in the result set:\n”);
$result = $sth->fetchAll();
print_r($result);
得到:
Fetch all of the remaining rows in the result set:
Array
(
[0] => Array
(
[NAME] => pear
[0] => pear
[COLOUR] => green
[1] => green
)

[1] => Array
(
[NAME] => watermelon
[0] => watermelon
[COLOUR] => pink
[1] => pink
)

)

偶还想删/更新条数据。
$count = $dbh->exec(”DELETE FROM fruit WHERE colour = ‘red’”);
//$count就是删除的条数。相当于mysql_affected_rows
//也可用PDOStatement::rowCount

偶忘了偶用啥数据库了。。。。
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == ‘mysql’) {
echo “Running on mysql; doing something mysql specific here\n”;
}

偶插入数据的时候要用mysql_escape_string.现在?

print “Unquoted string: $string\n”;
print “Quoted string: ” . $conn->quote($string) . “\n”;
得到:
Unquoted string: Nice
Quoted string: ‘Nice’
//你看现在连引号都自动加了。。。。
//注意在不同的数据库中结果不同,比如有的’ => ‘’,有的’ => \’,\ => \\
//现在没顾虑了,全自动。

//最后偶要关闭它了
$conn = null; //fcicq和这个数据库连接要说再见了。。。。
//但是!你可以:
$dbh = new PDO(’odbc:SAMPLE’, ‘db2inst1′, ‘ibmdb2′,
array(PDO_ATTR_PERSISTENT => true)); //保持连接

很简单的不是?

附:特别简单的特殊调用方法:
$stmt = $dbh->prepare(”SELECT * FROM REGISTRY where name = ?”);
if ($stmt->execute(array($_GET[’name’]))) { //你怕啥?自动quote!
while ($row = $stmt->fetch()) {
print_r($row);
}
}

也可以:
$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES[’file’][’type’]);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);

这么好的功能,哪里可以找到?php5.1以上在扩展里,php5在pecl里,php4?你别想了,没有。
类与对象(PHP5)之五:抽象类(Class Abstraction)
PHP 5中引入了抽象类和抽象方法。不允许创建一个已经定义为abstract的类的一个实例。任何至少包含一个抽象方法的类也必须是抽象的。被定义为抽象的方法仅仅是声明方法的一个信号,并不能定义它们的实现。
当从一个抽象类继承时,在父类中所有抽象方法的标记的声明必须通过子类定义;另外,这些方法必须用定义相同的访问属性。例如,如果方法被定义为protected类型,执行函数必须定义为protected或public.
例子 19-16. 抽象类例子


PHP代码如下:

abstract class AbstractClass
{   // Force Extending class to define this method
   abstract protected function getValue();
   abstract protected function prefixValue($prefix);
   public function printOut()  // Common method
   {  
       print $this->getValue()."\n";
   }
}
class ConcreteClass1 extends AbstractClass
{   protected function getValue()
   {  
       return "ConcreteClass1";  
   }
   public function prefixValue($prefix)
   {
       return "{$prefix}ConcreteClass1";
   }
}
class ConcreteClass2 extends AbstractClass
{   public function getValue()
   {  
       return "ConcreteClass2";  
   }
   public function prefixValue($prefix)
   {
       return"{$prefix}ConcreteClass2";
   }
}
$class1 = new ConcreteClass1;
$class1->printOut();
echo $class1->prefixValue('FOO_') ."\n";
$class2 = new ConcreteClass2;
$class2->printOut();
echo $class2->prefixValue('FOO_') ."\n";
?>


上例将输出:


CODE:
ConcreteClass1
FOO_ConcreteClass1
ConcreteClass2
FOO_ConcreteClass2

旧代码拥有非用户自定义的命名为abstract的类或函数将要运行如果没有被修改

最近比较忙

WEB2.0 jack 2006-10-25 22:47
....................................I am busy @
编者按:
看到这些多“开始”→“运行”命令,你肯定会感叹Windows命令的强大,甚至是“叹为观止”呀!  
   winver---------检查windows版本
   wmimgmt.msc----打开windows管理体系结构(wmi)
   wupdmgr--------windows更新程序
   wscript--------windows脚本宿主设置
   write----------写字板
   winmsd---------系统信息
   wiaacmgr-------扫描仪和照相机向导
   winchat--------xp自带局域网聊天
   mem.exe--------显示内存使用情况
   msconfig.exe---系统配置实用程序
   mplayer2-------简易widnows media player
   mspaint--------画图板
   mstsc----------远程桌面连接
   mplayer2-------媒体播放机
   magnify--------放大镜实用程序
   mmc------------打开控制台
   mobsync--------同步命令




--------------------------------------------------------------------------------


dxdiag---------检查directx信息
   drwtsn32------ 系统医生
   devmgmt.msc--- 设备管理器
   dfrg.msc-------磁盘碎片整理程序
   diskmgmt.msc---磁盘管理实用程序
   dcomcnfg-------打开系统组件服务
   ddeshare-------打开dde共享设置
   dvdplay--------dvd播放器




--------------------------------------------------------------------------------


net stop messenger-----停止信使服务
   net start messenger----开始信使服务
   notepad--------打开记事本
   nslookup-------网络管理的工具向导
   ntbackup-------系统备份和还原
   narrator-------屏幕“讲述人”
   ntmsmgr.msc----移动存储管理器
   ntmsoprq.msc---移动存储管理员操作请求
   netstat -an----(tc)命令检查接口




--------------------------------------------------------------------------------


syncapp--------创建一个公文包
   sysedit--------系统配置编辑器
   sigverif-------文件签名验证程序
   sndrec32-------录音机
   shrpubw--------创建共享文件夹
   secpol.msc-----本地安全策略
   syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码
   services.msc---本地服务设置
   sndvol32-------音量控制程序
   sfc.exe--------系统文件检查器
   sfc /scannow---windows文件保护




--------------------------------------------------------------------------------


tsshutdn-------60秒倒计时关机命令
   tourstart------xp简介(安装完成后出现的漫游xp程序)
   taskmgr--------任务管理器




--------------------------------------------------------------------------------


eventvwr-------事件查看器
   eudcedit-------造字程序
   explorer-------打开资源管理器




--------------------------------------------------------------------------------


packager-------对象包装程序
   perfmon.msc----计算机性能监测程序
   progman--------程序管理器




--------------------------------------------------------------------------------


regedit.exe----注册表
   rsop.msc-------组策略结果集
   regedt32-------注册表编辑器
   rononce -p ----15秒关机
   regsvr32 /u *.dll----停止dll文件运行
   regsvr32 /u zipfldr.dll------取消zip支持




--------------------------------------------------------------------------------


cmd.exe--------cmd命令提示符
   chkdsk.exe-----chkdsk磁盘检查
   certmgr.msc----证书管理实用程序
   calc-----------启动计算器
   charmap--------启动字符映射表
   cliconfg-------sql server 客户端网络实用程序
   clipbrd--------剪贴板查看器
   conf-----------启动netmeeting
   compmgmt.msc---计算机管理
   cleanmgr-------垃圾整理
   ciadv.msc------索引服务程序




--------------------------------------------------------------------------------


osk------------打开屏幕键盘
   odbcad32-------odbc数据源管理器
   oobe/msoobe /a----检查xp是否激活
   lusrmgr.msc----本机用户和组
   logoff---------注销命令  




--------------------------------------------------------------------------------


iexpress-------木马捆绑工具,系统自带




--------------------------------------------------------------------------------


nslookup-------ip地址侦测器




--------------------------------------------------------------------------------


fsmgmt.msc-----共享文件夹管理器



--------------------------------------------------------------------------------


utilman--------辅助工具管理器



--------------------------------------------------------------------------------


gpedit.msc-----组策略


Windows Media Player文件

多谢来到这个BLOG的每一位朋友。

Ajax的话题最近很火,不过其实从我本身的感受来看,它并不适合构建一个大型的Web应用。只适合去实现应用中的一部分功能。这样不仅能为应用增色不少,也可以沿用原有的Web层框架来减轻开发过程的负担。
因为说到底,Ajax只是一个概念,最核心的东西还是XmlHttpRequest对象,外加CSS和DOM技术。

很多朋友给我们提意见,认为Ajax这一部分的内容写得相对薄弱,而且知识体系不够完整。关于这一点,我们要向读者朋友道个歉,我想如果有机会我们会奉献更好的Ajax技术书籍给读者朋友的。

其实出版社一直希望以Ajax打开这本书的销路,不过从我们作者本身来看,也许Lucene才是真正会吸引读者的内容。很多朋友在MSN上和我们交流Lucene的内容,这另我们也非常受用,很多朋友的技术水平都在我们之上,他们很诚恳的提出他们对于Lucene的一些看法同时讨论一些技术细节,令我们受益匪浅,如果有机会,一定整理一下,出一本Lucene的专门的书籍。(呵呵。。。不知道出版社肯不肯)

希望大家可以在这里和我们一起讨论相关技术
阅读全文
Windows Media Player文件

class dongd{
  int i=3;
  int dong(){
    System.out.print("包的测试");
    return(i);
            }

}
class myloce{
  
void yang()
{  
  
  System.out.print("今天买了衣服!");

}
int xdy(){
  
   return 1;
  
}

}

  class study{
  public static void main(String[] args) {
    int i=0;
    if(i==1)
    {
    dongd xiangdong;
    xiangdong=new dongd();
    xiangdong.dong();
    }  
    else
    {
       myloce dongker;
       dongker=new myloce();
       dongker.yang();
    }
       
    
         
         
         
   
    
    

                                          }
             }


这是在看太平洋网的评论时看到的,太平洋网是用jsp做为后台语言,用来产生xml文件.然后在把数据绑定到html上的.我就用php也做了一个以下是源文件.

-----------------xml.htm------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>xml</title>
</head>

<body>
<xml id="ShopList" src="xml.php"></xml>
<script>
function jump(form)
{
if (form.pageNum.value>parseInt(pageCount.innerHTML)) return false;
if (form.pageSize.value>parseInt(recordCount.innerHTML)) return false;
ShopList.src="xml.php?pageNo="+form.pageNum.value+"&pageSize="+form.pageSize.value+"&time="+(new Date()).getTime();
}
function pageCount_onpropertychange(form)
{
if (form.pageNum.value>parseInt(pageCount.innerHTML)) form.pageNum.value=parseInt(pageCount.innerHTML);
if (form.pageSize.value>parseInt(recordCount.innerHTML)) form.pageSize.value=parseInt(recordCount.innerHTML);
if(form.pageNum.value==1)
{
form.firstPage.disabled=true;
form.previousPage.disabled=true;
}
else
{
form.firstPage.disabled=false;
form.previousPage.disabled=false;
}
if(form.pageNum.value==form.pageCount.value)
{
form.nextPage.disabled=true;
form.lastPage.disabled=true;
}
else
{
form.nextPage.disabled=false;
form.lastPage.disabled=false;
}
}
</script>
<table width="100%" height="25" border="0" cellpadding="2" cellspacing="1" id="shopTbl" datasrc=#ShopList datafld=商铺>
<thead>
<tr>
<td height="25" colspan="4"><span class="shop_3d_text">店铺列表</span></td>
</tr>
<tr>
<td width="30%">商铺名称</td>
<td width="20%">经营者</td>
<td width="20%">店铺级别</td>
<td width="30%">店铺简介</td>
</tr>
</thead>
<tbody>
<tr STYLE="background-color:expression(rowIndex%2==1?'#EFEFEF':'#FFFFFF')">
<td><a datafld="连接地址"><span datafld="名称">名称</span></a></td>
<td><span datafld="经营人">经营人</span></td>
<td><span datafld="级别">级别</span></td>
<td><span datafld="简介">简介</span></td>
</tr>
</tbody>
</table>
<form return onsubmit="jump(this);return false">
<div align="right">
每页显示
<input name=pageSize datasrc=#ShopList datafld=页大小 size=2>条,
<input type=submit value="" style="width:0">
共<span id="pageCount" datasrc=#ShopList datafld=页数量></span>页
<span id="recordCount" datasrc=#ShopList datafld=数量 ></span>条

<input name=firstPage type=submit value=首页 onclick="pageNum.value=1">
<input name=previousPage type=submit value=上页 onclick="pageNum.value=pageNum.value-1">
第<input name=pageNum datasrc=#ShopList datafld=页号码 size=2>页
<input name=nextPage type=submit value=下页 onclick="pageNum.value=(pageNum.value-0)+1">
<input name=lastPage type=submit value=尾页 onclick="pageNum.value=pageCount.value" >
<input name=pageCount type=hidden datasrc=#ShopList datafld=页数量 onpropertychange="pageCount_onpropertychange(form)">
</div> </form>
</body>
</html>


-----------------xml.php------------------
<?php
//require_once "Source/Global.php";
function getVars($get_vars, $post_vars) {

$i = count($get_vars);
$j = count($post_vars);
if ($i > 0 && $j > 0 ) {
while(list($key, $val) = each($get_vars)) {
$Vars[$key] = $val;
}
while(list($key2, $val2) = each($post_vars)) {
$Vars[$key2] = $val2;
}
} elseif ($i > 0) {
while(list($key, $val) = each($get_vars)) {
$Vars[$key] = $val;
}
} elseif ($j > 0) {
while(list($key2, $val2) = each($post_vars)) {
$Vars[$key2] = $val2;
}
} else {
$Vars = array();
}
return $Vars;
}

$vars = getVars($HTTP_GET_VARS, $HTTP_POST_VARS);

//class shoplist_res extends iGlobal{
class shoplist_res{
function shoplist_res($vars,$cookie){
//$this->iGlobal($vars,$cookie);
$this->outPut($vars,$cookie);
}

//function _shoplist_res(){
// $this->db->Close();
//}
function outPut($vars,$cookie){
/*$strQuery = "select count(*) as rc from ".$this->db_c->Db_Pre."pshop order by id desc";
$this->db->Query($strQuery);
$RecordCount = $this->db->Assoc();
$RecordCount = $RecordCount['rc'];
@$this->db->freeResult();*/
$RecordCount = 25;
if (empty($vars['pageNo'])) $vars['pageNo']= 1;
if (empty($vars['pageSize'])) $vars['pageSize']= 10;
$PageCount = ceil($RecordCount/$vars['pageSize']);
if ($vars['pageSize']>$RecordCount) $vars['pageSize']=$RecordCount;
if ($vars['pageNo']>$PageCount) $vars['pageNo']=$PageCount;
$xmlStr.= "<?xml version="1.0" encoding="GBK" ?>"." ";
$xmlStr.= "<商铺列表>"." ";
$xmlStr.= " <翻页工具 pageNo="".$vars['pageNo']."" pageSize="".$vars['pageSize']."" total="".$RecordCount.""></翻页工具>"." ";
$xmlStr.= " <页号码>".$vars['pageNo']."</页号码>"." ";
$xmlStr.= " <页大小>".$vars['pageSize']."</页大小>"." ";
$xmlStr.= " <数量>".$RecordCount."</数量>"." ";
$xmlStr.= " <页数量>".$PageCount."</页数量>"." ";
//$strQuery = "select t1.*,t2.* from ".$this->db_c->Db_Pre."pshop as t1,".$this->db_c->Db_Pre."shoptype as t2 where t1.typenum=t2.typenum order by id desc "
// ."limit ".($vars['pageNo']-1)*$vars['pageSize'].",".$vars['pageSize'];
//die($strQuery);
//$this->db->Query($strQuery);
/*while($result = $this->db->Assoc()){
$xmlStr.= " "." ";
$xmlStr.= " <商铺>"." ";
$xmlStr.= " <名称><![CDATA[".$result['shopname']."]]></名称>"." ";
$xmlStr.= " <经营人><![CDATA[".$result['shopmaster']."]]></经营人>"." ";
$xmlStr.= " <级别><![CDATA[".$result['shoptype']."]]></级别>"." ";
$xmlStr.= " <简介><![CDATA[".$result['shopintro']."]]></简介>"." ";
$xmlStr.= " <连接地址><![CDATA[personal_shop.php?id=".$result['id']."]]></连接地址>"." ";
$xmlStr.= " </商铺>"." ";
}*/
$sc= $vars['pageNo']*$vars['pageSize'];
if ($sc>$RecordCount) $sc = $RecordCount;
for($i=($vars['pageNo']-1)*$vars['pageSize'];$i<$sc;$i++){
$xmlStr.= " "." ";
$xmlStr.= " <商铺>"." ";
$xmlStr.= " <名称><![CDATA[这是名称:".$i."]]></名称>"." ";
$xmlStr.= " <经营人><![CDATA[这是经营人:".$i."]]></经营人>"." ";
$xmlStr.= " <级别><![CDATA[这是级别:".$i."]]></级别>"." ";
$xmlStr.= " <简介><![CDATA[这是简介:".$i."]]></简介>"." ";
$xmlStr.= " <连接地址><![CDATA[personal_shop.php?id=".$i."]]></连接地址>"." ";
$xmlStr.= " </商铺>"." ";
}
$xmlStr.= "</商铺列表>"." ";
header("Content-type: text/xml ");
echo $xmlStr;
}
}

$shoplist = new shoplist_res($vars,$HTTP_COOKIE_VARS);
//$shoplist->_shoplist_res();
unset($sthoplist);
?>


以上的php,注释的是我连接数据库取得的数据,既然放上来测试,也没有数据库连接,所以改了一下.偶也是刚接解xml不久,很多地方还是不很懂.见笑了......
分页: 266/271 第一页 上页 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 下页 最后页 [ 显示模式: 摘要 | 列表 ]