日历
| |||||||||
| 日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
| 1 | 2 | 3 | 4 | ||||||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 | |||
| 12 | 13 | 14 | 15 | 16 | 17 | 18 | |||
| 19 | 20 | 21 | 22 | 23 | 24 | 25 | |||
| 26 | 27 | 28 | 29 | 30 | 31 | ||||
搜索标题
最新来客
统计信息
- 访问量: 1487
- 日志数: 6
- 建立时间: 2008-02-04
- 更新时间: 2008-03-15
我的最新日志
-
SilverLight是什么?(来自Csdn)
2008-3-15
SilverLight是Windows PresentATIon Foundation的一个子产品,其利用了跨浏览器Web技术进行设计,以实现多操作系统,甚至是移动设备上的无缝运行。和Flash一样,WPF/E 是作为一个浏览器的插件,可以显示矢量图形、动画和视频。Silverlight集成了多种现有Web技术和设备,它可以在Windows、Mac平台上运行,支持IE、Firefox,甚至Apple的Safari Web浏览器。而无需对现有的网站设计进行移植,甚至包括利用Adobe Flash设计的内容。
至于SilverLight与Flash的区别,微软的一位高层人士曾这样描述:一个WPF/E程序“并不是传递给Flash播放器的一个编译好的二进制文件。”相反,所有的代码都是基于标准的,且图像都使用了XAML。
同时,与Flash的内容不方便搜索引擎收录不同,SilverLight是以DOM型式公开它的元素树,内容能很好被搜索引擎收录。
附:SilverLight产品介绍
1、Silverlight通过小巧的浏览器插件将视频、交互性内容以及其他应用融合在一起。该解决方案集成了强大的图像及图层技术,支持任何尺寸图像的无缝整合,并提供适合广播的图层技术,可以在图像上添加按钮、标题或是其他交互性内容。
2、 Silverlight允许利用WMV标准从高清设备向移动设备提供高质量视频和音频。此外,该工具通过Expression Media Encoder以及Tarari公司的内建平台,支持15X的快速视频编码及硬件加速。
3、Silverlight支持多种平台,使用户能够方便的进行代码重用,并通过不同平台无缝的连接到Web。
4、Silverlight集成了多种现有Web技术和设备,这意味着它可以在任何服务器和发布平台上使用,而无需对现有的网站设计进行移植,甚至包括利用Adobe Flash设计的内容。
5、Silverlight采用了已在.NET 3.0和Vista中使用的XAML语言,这使得Web内容和桌面内容的开发语言一致,从而降低了开发费用。Silverlight还兼容大量其他标准和 现有技术,包括ASP.NET、AJAX以及.NET 3.0,这使得开发者可以根据现有标准,或是采用微软已成熟技术来开发基于Web的内容。
6、 此外,Silverlight为设计者和开发者提供大量的开发工具和开发环境支持。对设计者来说,Expression Design和Expression Blend软件可以创建可重用界面,Expression Web使得在符合W3C标准的网站开发中可以使用XHTML、XML、XSLT、CSS以及ASP.NET等工具。对开发者来说,基于Visual Studio的Web开发支持包括ASP.NET AJAX在内的技术,并支持Javascrīpt,C#,VB,Ruby以及Python等多种开发语言。
7、 Silverlight浏览器插件的安装程序简单,体积约为2Mb。当用户遇到使用Silverlight开发的网页时,可以迅速的安装这一插件。 Silverlight内建的视频及动画广告解决方案灵活性很高,当传输广播类型的视频或是动画广告时,不会影响视频的质量。而这一问题是现有技术普遍遇 到的问题。
8、通过获艾美奖的Windows Media技术,传输流量可降低46%,并且和现有的Windows Media流量配置方案兼容。如果采用下一代Windows Server系统中的IIS媒体包,流量还将进一步下降。
9、Silverlight支持内容接入保护技术。无论在Windows还是Mac平台上,Silverlight都支持多种商业模型,包括订阅、租用、付费浏览或
-
关于Fatal error: Call to undefined function mysql_connect() 问题的总结
2008-2-06
今天我也碰到了这个问题,网上搜索了一下原来也有很多人曾经碰到过。
大致大家的解决办法是:
1。在Php的目录下 将Php.ini中的 extension=php_mysql.dll前的 “;”号去掉
2.将php5ts.dll,libmysql.dll 拷到 系统目录(System32)里.
3.察看Apache的 httpd.conf 文件中的PhpIniDir的设置 要指向 Php的目录。
不过我尝试了以上很多方法,没有解决。
最后我将 httpd.conf中的 PhpIniDir="C:/Php",改变成 PhpIniDir="C:\Php";就好了。。
又是反斜杠的问题,不过原因我还不清楚。
-
关于Fatal error: Call to undefined function mysql_connect() 问题的总结
2008-2-06
今天我也碰到了这个问题,网上搜索了一下原来也有很多人曾经碰到过。
大致大家的解决办法是:
1。在Php的目录下 将Php.ini中的 extension=php_mysql.dll前的 “;”号去掉
2.将php5ts.dll,libmysql.dll 拷到 系统目录(System32)里.
3.察看Apache的 httpd.conf 文件中的PhpIniDir的设置 要指向 Php的目录。
不过我尝试了以上很多方法,没有解决。
最后我将 httpd.conf中的 PhpIniDir="C:/Php",改变成 PhpIniDir="C:\Php";就好了。。
又是反斜杠的问题,不过原因我还不清楚。
-
在 MySQL中使用外部脚本创建数据库和表
2008-2-05
初学者说不定有帮助,高手就别见笑了!安装好了MySQL数据库,开始尝试建库,建表等。但是如果在没有数据库管理工具的情况下,就要用Dos模式的的命令行模式进行数据库管理。 mySql> 这里输入脚本很麻烦,所以MySQL肯尼也支持直接运行一个已经写好的SQL脚本。好首先建立一个脚本文件 比如 mysql.sql 在此文件中书写脚本,我的大致如下: CREATE DATABASE mydb; USE mydb; CREATE TABLE t1 ( c1 varchar(20), c2 varchar(15) ); CREATE TABLE t2 ( c1 .... c2.... ); ..... 当然要包括很多脚本。脚本准备好后,就可以执行了如下: mySql> source D:/ mysql.sql; 执行即可,,,要注意的是如果写为 D:\mysql.sql可能会抱错,因为反斜杆的问题。。。 -
PHP中 Include ,Include_once 和 require,require_once 的区别
2008-2-05
这几天在“努力”学习PHP,在看到很多代码中都用到 Include ,Include_once 和 require,require_once,感觉比较迷惑。查阅了相关文档。网上搜索了一下,以下转载的解释我绝的还算清楚。
(转的)于PHP具有快速、可靠、跨平台应用、源代码开放等特点,使得PHP成为最受欢迎的服务器端scrīpt语言之一。我根据自己在工作中体会到的,向大家介绍PHP使用的心得,希望对大家有所帮助。
利用PHP的Include files维护你的网站
不管你所开发的网站的规模是大是小,你都应该要认识到重复使用程序代码的重要性,不论你重复使用的是 PHP 程序或者是 HTML 原始码。举个例子来说,网站页尾的版权宣告至少每年都得修改一次,如果你的网站有许多个页面,该怎么办呢?动手一个一个修改这些页面肯定是一件头痛的事情。通过 PHP 我们可以用几个不同的方式来重复使用程序代码。要使用哪些函数端视你要重复使用的是怎样的内容而定。
这些主要的函数包括:
* include() 与 include_once()
* require() 与 require_once()
1.include() 函数会将指定的档案读入并且执行里面的程序。
例如:include('/home/me/myfile');
被导入的档案中的程序代码都会被执行,而且这些程序在执行的时候会拥有和源文件中呼叫到 include() 函数的位置相同的变量范围(variable scope)。你可以导入同一个服务器中的静态档案,甚至可以通过合并使用 include() 与 fopen() 函数来导入其它服务器上面的档案。
2.include_once()函数的作用和 include() 是几乎相同的
唯一的差别在于 include_once() 函数会先检查要导入的档案是不是已经在该程序中的其它地方被导入过了,如果有的话就不会再次重复导入该档案(这项功能有时候是很重要的,比方说要导入的档案里面宣告了一些你自行定义好的函数,那么如果在同一个程序重复导入这个档案,在第二次导入的时候便会发生错误讯息,因为 PHP 不允许相同名称的函数被重复宣告第二次)。
3.require()函数会将目标档案的内容读入,并且把自己本身代换成这些读入的内容。
这个读入并且代换的动作是在 PHP 引擎编译你的程序代码的时候发生的,而不是发生在 PHP 引擎开始执行编译好的程序代码的时候(PHP 3.0 引擎的工作方式是编译一行执行一行,但是到了 PHP 4.0 就有所改变了,PHP 4.0 是先把整个程序代码全部编译完成后,再将这些编译好的程序代码一次执行完毕,在编译的过程中不会执行任何程序代码)。require() 通常来导入静态的内容,而 include() 则适合用来导入动态的程序代码。
4.如同 include_once()函数,require_once() 函数会先检查目标档案的内容是不是在之前就已经导入过了,如果是的话,便不会再次重复导入同样的内容。
我个人习惯使用 require() 函数来导入版权宣告(copyrights),静态文字或其它本身不含有变量,或者本身需要倚赖其它执行过的程序才能正确执行的程序代码。例如:
<HTML>
<HEAD><TITLE>网页标题</TITLE></HEAD>
<BODY>
[一堆内容]
<?
// 导入版权宣告文字
require('/home/me/mycopyright');
?>
</BODY></HTML>
另一方面,我通常在程序的开头使用 include() 函数来导入一些函式库或者类似的程序代码:
<?
// 导入我的函式库
include('/home/me/myfunctions');
// 利用之前导入的函式库里面定义好的 PHP 函数执行一些功能?>
<HTML>
<HEAD><TITLE>网页标题</TITLE></HEAD>
<BODY>
[一堆内容]
</BODY>
</HTML>
接下来你可能会问这第一个挺符合逻辑的问题:「这些被导入的档案要放在哪儿呢?」简短的答案是:「放在服务器档案系统里的任何地方都行。」然而,要留意的是如果被导入的档案除了单纯的程序代码片段以外还包含了一些敏感资料,例如连结数据库系统要用到的帐号和密码,那么建议你不要把这些档案放在 Web 服务器的文件根目录之下,因为那样的话他人便可以很容易地窃取到这些资料了。
你可以将这些被包含的档案放在系统的任何一个目录里面,唯一的条件是 PHP 本身用来执行的身分(www,nobody 或者其它身分)必须要有足够的权限能够读取这些档案就可以了。这些档案的扩展名也可以任意取,甚至没有附档名也无所谓。
善用include()和 require()来将网站里面经常需要变动的共享内容做合理的分割,在更新网站内容的时候将会容易进行得多。
利用PHP来维护档案系统
PHP 提供了很多与档案系统相关的函数,让我们不仅可以开启档案,还能够显示目录的内容,搬移档案的位置以及其它更多功能。有的朋友甚至写了能够通过浏览器来管理档案内容的 PHP 程序。
在开始介绍 PHP 的档案系统相关功能之前,我们要先理清一件事情:在 Windows操作系统里面,档案路径可以使用斜线(/)或者反斜线(\)来表示,但是在其它操作系统里面我们只会使用到斜线。为了保持统一性,下面的例子里面的档案路径都是使用斜线。
下面的例子程序我将教大家基本的目录内容显示功能,每个步骤都有批注,请直接阅读。
<? /* $dir_name 这个变量的值是你想要读取的目录的完整路径 */
$dir_name = "/home/me/";
/* opendir()函数会开启某个目录,并且传回一个参考值(handle)让我们可以用来在程序中参照到该目录 */
$dir = opendir($dir_name);
/* 开始建立一个字符串,这个字符串包含了 HTML 的列表卷标,用来显示目录中的文件名称。 */
$file_list = "<ul>";
/* 使用一个 while 循环叙述将前面开启的目录中的档案全部读取一遍。如果读取到的档名不是「.」或者「..」,就把该档名写入前面提到的字符串里面去。 */
while ($file_name = readdir($dir)) {
if (($file_name != ".") && ($file_name != "..")) {
$file_list .= "<li>$file_name";
}
}
/* 替 HTML 列表卷标加上结尾 */
$file_list .= "</ul>";
/* 关闭之前开启的目录并且结束这段 PHP 程序 */
closedir($dir);
?>
<!-- HTML原始码从这里开始 -->
<HTML>
<HEAD>
</HEAD>
<BODY>
<!-- 使用 PHP 程序来将我们所读取的目录名称显示在页面上 -->
<P>Files in: <? echo "$dir_name"; ?></p>
<!-- 使用 PHP 程序将该目录中读取到的文件名显示在页面上 -->
<? echo "$file_list"; ?>
</BODY>
</HTML>
经过上面几步,你已经成功把某个目录中的文件名称显示在网页上了。但你要记住一点:要读取某个目录或者档案(读取档案内容的做法稍后会介绍),PHP 本身执行所用的身分必须至少拥有该目录或者档案的读取权限才行,否则系统会显示权限不足的错误讯息。
下一个例子我将教大家如何复制一个档案:
<? /* 变量$orginal储存源文件的完整路径,变量$copied储存复制过去的新档案的完整路径 */
$original = "/home/me/mydatabasedump";
$copied = "/archive/mydatabasedumo_1010";
/* 呼叫 copy() 函数把档案从原始位置复制一份到新的位置去。如果无法复制,那么便终止程序的执行并且显示错误讯息。 */
@copy($original, $copied) or die("无法复制档案。");
?>
上面的例子程序可以用来扩充成为一个档案备份系统程序。当这个程序执行的时候,它会将数据库的数据文件复制到其它目录下面做为备份之用。只要修改系统的排程档案内容(crontab),我们便可以让这个程序自动在每天的固定时间执行一次,达到系统自动备份,不需要人工手动执行。
如果你的系统上面有安装 Lynx 软件(Lynx 是一种纯文字的 Web 浏览器)的话,你可以在系统排程档案里面加入下面这笔记录来让系统在固定时间自动激活 Lynx 并且呼叫我们之前写好的 PHP 备份程序。当 Lynx 呼叫(浏览)我们的 PHP 程序的时候,该程序就会被执行,并且产生备份文件。下面这个例子教你如何在每天早晨五点钟执行我们的备份程序,并且在执行完以后自动将 Lynx 程序关闭:
0 5 * * * [username] lynx -dump http://localhost/copyfile.php 1>/dev/null 2>&1
如果你的系统安装的是 CGI 版本的 PHP,那么你可以直接呼叫 PHP 执行档而不需要通过 Lynx 来呼叫我们的 PHP 程序 -
开始学习PHP了
2008-2-04
做了好多年“软件开发”,一直对PHP这个字眼似乎不屑一顾。但是偶然的机会让我对它作了初步的但很可观实际的了解,才发现是相见恨晚!不过我终于决定去使用这一套体系的工具和方法。并开始等待新的项目的开始....

