Posts Tagged ‘方式’
星期三, 06月 4th, 2008
有这样一个想法,不知道可行么
例子:
布局中de左栏,它de属性有:{居左,宽度,背景色,字体等等}
如果把每个属性都做成一个标准件,然后这样组装起来使用
class="float width height background font padding….",通过多个classde标准件de引用来完成页面布局样式
先按需要定义好标准件如:
float标准件
.l{float:left}
.r{float:right}
.cl{clear:left}
…
width标准件
.w200{width:200px}
.w300{width:300px}
…
background标准件
.red{background:red}
.black{background:#000}
.white{background:#fff}
…
根据需要引用
class="l w200 red"[居左,宽度为200,背景红色]
class="r w200 white" [居右,宽度为200,背景白色]
我现在自己写相关代码,最多就2个class来定义一个布局样式,感觉很方便
Tags: B标, DI, eb, iv, V布, We, 件的, 准件, 准网, 局W, 布局, 式来, 得, 心得, 方式, 来组, 标准, 用标, 的方, 站设, 组装, 网站, 网页, 装网, 计心, 设计, 页D
Posted in HTML/CSS | No Comments »
星期三, 06月 4th, 2008
一、使用STYLE属性
将STYLE属性直接加在个别de元件标签里,<元件(标签) STYLE=”性质(属性)1: 设定值1; 性质(属性)2: 设定值2; …}
例如:
<TD STYLE=”COLOR:BLUE; font-size:9pt; font-family:”标楷体”; line-height:150%>
这种用法de优点 是可灵巧应用样式於各标签中,但是缺点则是没有整篇文件de『统一性』.
二、使用STYLE标签
将样式规则写在<STYLE>…</STYLE>标签之中.
<STYLE TYPE=”text/CSS”>
<!–
样式规则表
–>
</STYLE>
例如:
<STYLE TYPE=”text/css”>
<!–
BODY {
color: BLUE;
background: #FFFFCC;
font-size: 9pt}
TD, P {
COLOR: GREEN;
font-size: 9pt}
–>
</STYLE>
通常是将整个de <STYLE>…</STYLE>结构写在网页de<HEAD> </HEAD>部份之中.这种用法de优点就是在於整篇文件de统一性,只要是有声明dede元件即会套用该样式规则.缺点就是在个别元件de灵活度不足.
三、使用 LINK标签
将样式规则写在.cssde样式档案中,再以<LINK>标签引入.
假设我把样式规则存成一个example.cssde档案,我只要在网页中加入
<LINK REL=STYLESHEET TYPE=”text/css” HREF=”example.css”>
即可套用该样式档案中所制定好de样式了. 通常是将LINK标签写在网页de<head></head>部份之中.这种用法de优点就是在於可以把要套用相同样式规则de数篇文件都指定到同一个样式档案即可.缺点也是在个别文件或元件de灵活度不足.
四、使用@import引入
跟LINK用法很像,但必 放在<STYLE>…</STYLE> 中.
<STYLE TYPE=”text/css”>
<!–
@import url(引入de样式表de位址、路径与档名);
–>
</STYLE>
例如:
<STYLE TYPE=”text/css”>
<!–
@import url(http://yourweb/ example.css);
–>
</STYLE>
要注意de是,行末de分号是绝对不可少de!
五、使用<span></span>标记引入样式
例如:<span style=”font:12px/20px 宋体 #000000;”>WEB标准</span>
Tags: cs, ss, S样, 五种, 入c, 式, 式的, 引入, 方式, 样式, 的五, 种方
Posted in HTML/CSS | No Comments »
星期二, 06月 3rd, 2008
下面是全部相关代码,已经编译通过.
Chuandi(传递)是名字空间
WebForm1:
<%@ Page language=”c#” Codebehind=”WebForm1.aspx.cs” Inherits=”chuandi.WebForm1″ %>
<HTML>
<HEAD>
<title>WebForm1</title>
</HEAD>
<body>
<form id=”Form1″ method=”post” runat=”server”>
<asp:TextBox id=”TextBox1″ runat=”server”></asp:TextBox>
<asp:Button id=”Button1″ runat=”server” Text=”传”></asp:Button>
</form>
</body>
</HTML>
using System;
namespace chuandi
{
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.Button Button1;
public string Text1
{
get
{
return this.TextBox1.Text;
}
}
private void Page_Load(object sender, System.EventArgs e)
{}
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
this.Button1.Click = new System.EventHandler(this.Button1_Click);
this.Load = new System.EventHandler(this.Page_Load);
}
private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer(”WebForm2.aspx”);
}
}
}
WebForm2:
<%@ Page language=”c#” Codebehind=”WebForm2.aspx.cs” Inherits=”chuandi.WebForm2″ %>
<%@ Reference Page=”WebForm1.aspx” %>
<HTML>
<HEAD>
<title>WebForm2</title>
</HEAD>
<body>
<form id=”Form1″ method=”post” runat=”server”>
<asp:Label id=”Label1″ runat=”server”>Label</asp:Label>
<asp:Button id=”Button1″ runat=”server” Text=”返回”></asp:Button>
</form>
</body>
</HTML>
using System;
namespace chuandi
{
public class WebForm2 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.Label Label1;
public chuandi.WebForm1 wf1;
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
wf1=(chuandi.WebForm1)Context.Handler;
Label1.Text=”上页传来de是:” wf1.Text1;
}
}
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
this.Button1.Click = new System.EventHandler(this.Button1_Click);
this.Load = new System.EventHandler(this.Page_Load);
}
private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer(”WebForm1.aspx”);
}
}
Tags: 2个, eS, io, L的, n与, On, RL, Se, si, ss, UR, 不通, 与u, 个页, 传值, 值方, 式, 方式, 的传, 过S, 通过, 间不, 面间, 页面
Posted in ASP.NET | No Comments »
星期一, 06月 2nd, 2008
下面我来看一下Session是如何工作de.不知您是否知道通过Cookie来实现身份认证de吧.首先生成一个独一无二deCookie作为用户身份de标志,并在数据库中进行注册.然后通过用户传递来deCookie和数据库中注册deCookie进行对照以确定用户de身份.
Sessionde工作原理也是这样.
首先,PHP为建立Sessionde用户产生一个独一无二de字符串,用来标志这个用户desession.一般将这个字符串称作Session Id.然后“sess”+Session Id为文件名(例如一个Session ID为111,那么文件名为sess_111)在服务器de文件系统中建立一个文件,在文件中保存用户在Session所定义de全局变量de变量名和值.然后再将Session Id作为一个名为PHPSessiondeCookie保存在用户端de文件系统中.
然后,当用户再次连接服务器访问一个PHP脚本时,PHP从用户发来dePEESession这个Cookie中得到用户所在SessiondeSession Id,并根据Session Id从服务器de文件系统中保存Session信息de文件.最后从这个文件中读出用户在上次连接时所设置de全局变量de值.
因此,我可以看到Sessionde工作原理和我上一节所介绍de身份认证de工作原理是一样de.所不同de只是Session将信息保存在了服务器de文件系统中,而我将信息保存在了数据库中.当然使用Session好处就是数据de保存和获取是由PHP自动完成de,而直接使用Cookiede话就需要自己动手进行数据de保存和获取.
Session利用Cookiede身份标志功能,将用户在浏览网站时需要保存de信息保存在服务器上.这样Session既克服了HTTP协议de缺陷,又防止了信息de泄漏,而且方便了编程者de使用,是一个非常好de解决方案.不过,Sessionde功能只有PHP4支持,PHP3是不支持Sessionde.因此使用PHP3进行网站构建de读者只能采用直接使用Cookiede方式.
Tags: eS, io, n的, On, Se, si, ss, 作方, 工作, 式, 方式, 的工
Posted in PHP编程 | No Comments »
星期一, 06月 2nd, 2008
在WIN98下以apache模块方式安装php手记
foolboy@chinaren.com
★相关软件:
mod_php4-4.0.1-pl2.zip
php-4.0.1pl2-Win32.zip
以上软件可以在www.php.net或者www.phpuser.com上下载
注意两者de版本一定要一样,
(关键是mod_php4.dll与php4ts.dll及Msvcrt.dll版本相同)
★具体步骤:
用winzip分别将两个.zip文件解压
php-4.0.1pl2-Win32.zip解压至 E:\php\目路中
mod_php4-4.0.1-pl2.zip解压至 E:\mod_php\目录中
(一)安装php解释器,将php.ini-dist拷贝至%WINDOWS%即windows
de安装目录下,重命名为php.ini.用编辑器编辑php.ini 改动如下:
extension dir = E:\Phptools\php\ ;动态加载库所在目录
在Atuoexec.bat中增加 SET PASS=E:\phptools\php\
(这样做最后需要重新启动一下);
或者直接将php4ts.dll拷贝至%SYSTEM%中(不需要重新启动)
(二)给Apache添加模块,
将E:\mod_php\apache_dir\modules\下demod_php4.dll拷贝至
Apache安装目录下de.\modules子目录中;
将Msvcrt.dll 拷贝至Apache安装de根目录下;
将 E:\mod_php\apache_dir\conf\mod_php4.conf拷贝至Apachede .\conf子目录中;
然后编辑Apachede.\conf下desrm.conf 在其中添加一条:
Include conf/mod_php4.conf;
★最后测试
执行 apache -k start 进行启动,看到出现
Apache/1.3.14 (Win32) PHP/4.0.1pl2 running…
可以知道您dephp已经以Apache模块方式运行了, 如果还不确定就
写一个test.php测试吧.
test.php
<? phpinfo() ?>
注:本次使用deApache版本是1.3.14
Tags: 8下, 98, ac, Ap, ch, e模, he, HP, in, n9, P, Pa, PH, Wi, 下以, 以a, 在W, 块方, 安装, 式安, 方式, 模块, 装P
Posted in PHP编程 | No Comments »
星期一, 06月 2nd, 2008
现在有de站点上传文件de时候会自动在文件前面加入Content-type: image/gif等头标,导致二进制文件被破坏.因此,我编写了以文本方式上传二进制文件dePHP程序.
一共两个文件:index.php,action.php.将要上传de文件de文件名改为test,与这两个文件放在一起,运行index.php,选读取,将读取de所有数据Copy,在远端服务器上面也运行这个程序,Paste到输入框中,选保存.二进制文件就被上传了.
index.php
———————————————————
<html>
<head>
<title>以文本方式上传二进制文件dePHP程序</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">
<table width="760" border="0" cellspacing="0" cellpadding="0" height="25">
<tr>
<td>
<div align="center"><b>图片上传</b></div>
</td>
</tr>
</table>
<table width="760" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<form name="form" method="post" action="action.php" target="_blank">
<div align="center">
<textarea name="pic" cols="80" rows="15"></textarea>
<br>
<input type="radio" name="view" value="0" checked>
保存
<input type="radio" name="view" value="1">
试看
<input type="radio" name="view" value="2">
读取<br>
<input type="submit" name="OK" value=" 确 定 ">
<input type="reset" name="RESET" value=" 取 消 ">
</div>
</form>
</td>
</tr>
</table>
</body>
</html>
———————————————————
action.php
———————————————————
<?
Tags: HP, PH, p程, 上传, 二进, 以文, 件的, 传二, 制文, 序, 式上, 文件, 文本, 方式, 本方, 的P, 程序, 进制
Posted in PHP编程 | No Comments »
星期一, 06月 2nd, 2008
PHP5de访问方式允许限制对类成员de访问. 这是在PHP5中新增de功能,但在许多面向对象语言中都早已存在. 有了访问方式,才能开发一个可靠de面向对象应用程序,并且构建可重用de面向对象类库.
像C 和Java一样,PHP有三种访问方式:public,private和protected. 对于一个类成员de访问方式,可以是其中之一. 如果您没有指明访问方式,默认地访问方式为public. 您也可以为静态成员指明一种访问方式,将访问方式放在static关键字之前(如public static).
Public成员可以被毫无限制地访问.类外部de任何相关代码都可以读写public属性. 您可以从脚本de任何地方调用一个public方法. 在PHPde前几个版本中,所有方法和属性都是public, 这让人觉得对象就像是结构精巧de数组.
Private(私有)成员只在类de内部可见. 您不能在一个private属性所在de类方法之外改变或读取它de值. 同样地,只有在同一个类中de方法可以调用一个private方法. 继承de子类也不能访问父类中deprivate 成员.
要注意,类中de任何成员和类de实例都可以访问private成员. 看例子6.8,equals方法将两个widget进行比较.==运算符比较同一个类de两个对象,但这个例子中每个对象实例都有唯一deID.equals 方法只比较name和price. 注意equals方法如何访问另一个Widget实例deprivate属性. Java和C都允许这样de操作.
Listing 6.8 Private members
<?php
class Widget
{
private $name;
private $price;
private $id;
public function __construct($name, $price)
{
$this->name = $name;
$this->price = floatval($price);
$this->id = uniqid();
}
//checks if two widgets are the same 检查两个widget是否相同
public function equals($widget)
{
return(($this->name == $widget->name)AND
($this->price == $widget->price));
}
}
$w1 = new Widget(’Cog’, 5.00);
$w2 = new Widget(’Cog’, 5.00);
$w3 = new Widget(’Gear’, 7.00);
//TRUE
if($w1->equals($w2))
{
print(”w1 and w2 are the same<br>n”);
}
//FALSE
if($w1->equals($w3))
{
print(”w1 and w3 are the same<br>n”);
}
//FALSE, == includes id in comparison
if($w1 == $w2) file://不等,因为ID不同
{
print(”w1 and w2 are the same<br>n”);
}
?>
一个子类可能改变通过覆写父类方法来改变方法de访问方式,尽管如此,仍然有一些限制. 如果您覆写了一个public类成员,他子类中必须保持public. 如果您覆写了一个protected成员,它可保持protected或变成public.Private成员仍然只在当前类中可见. 声明一个与父类deprivate成员同名de成员将简单地在当前类中建立一个与原来不同de成员. 因此,在技术上您不能覆写一个private成员.
Final关键字是限制访问成员方法de另一个方法. 子类不能覆写父类中标识为finalde方法. Final关键字不能用于属性.
//haohappy注:PHP5de面向对象模型仍然不够完善,如final不像Java中那样对Data,Method甚至Class都可以用.
Tags: [8, ], 八节, 式, 方式, 第八, 节访, 访问, 问方
Posted in PHP编程 | No Comments »
星期一, 06月 2nd, 2008
使用ISAPI方式安装PHP.
下载连接:http://cn2.php.net/get/php-4.4.0-Win32.zip/from/cn.php.net/mirror
ISAPI方式是WIN系统IIS下最有效率dePHP执行方式.强烈建议.
解压好PHP后,首先找到php.ini-dist
把-dist 去掉,就成了文本方式显示.
打开PHP.INI 做略微修改.使用查找方式找TMP 找到./TMP着个路劲后,把路劲改成C:/TMP
然后在C盘新建TMP文件夹
全做好以后,拷贝 PHP.INI和php4ts.dll,放到C盘WINNT/SYSTEM32文件夹下.
OK 第一步做好了.然后设置IIS
打开IIS 在服务器名称(有个小电脑标记de那一行)下点击右键选择 属性,编辑,ISAPI筛选器
knowsky.com
然后选择添加.
筛选器名称输入:PHP
可执行文件选择:php-4.4.0-Win32\sapi\php4isapi.dll
注意一定要使用php4isapi.dll,而不要使用PHP.EXE.因为用PHP.EXE就是CGI方式,而且占用进程了,php4isapi.dll下就是ISAPI方式了.
然后给单个网站添加PHP权限(注意PHP权限绝不能是用默认设置,除非您决定给每个网站都有PHP权限.否则很危险de)
打开IIS,在您要给权限de那个地址上点击右键,然后选择属性,主目录,配置.
然后选择添加.
可执行文件输入:.php
路劲:php-4.4.0-Win32\sapi\php4isapi.dll
OK 支持ISAPI方式dePHP权限就做好了…….
Tags: 00, 0下, 20, Ap, DO, HP, in, is, I方, nd, ow, P, PH, PI, S2, SA, Wi, ws, 下使, 使用, 安装, 式安, 方式, 用I, 装P
Posted in PHP编程 | No Comments »