首页 技术教程 实用代码 注册破解 正则表达式 网址导航 电子书籍

PHP 5.0对象模型深度探索之访问方式

  PHP5的访问方式允许限制对类成员的访问。这是在PHP5中新增的功能,但在许多面向对象语言中都早已存在。有了访问方式,才能开发一个可靠的面向对象应用程序,并且构建可重用的面向对象类库。   像C++和Java一样,PHP有三种访问方式:public,private和protected. 对于一个类成员的访问方式,可以是其中之一. 如果你没有指明访问方式,默认地访问方式为public. 你也可以为静态成员指明一种访问方式,将访问方式放在static关键字之前(如public static).   Public成员可以被毫无限制地访问.类外部的任何代码都可以读写public属性. 你可以从脚本的任何地方调用一个public方法。在PHP的前几个版本中,所有方法和属性都是pu...
类别:网页编程 - PHP技术    查看:126    更新:2014-05-19

用PHP模拟登陆

  经常会有人问模拟登陆的问题,其实原理很简单,只要把SessionID保存下来就可以了,今天花了一个小时的时间写了一个函数,供大家参考,网站返回的头信息,具体网站具体分析。   源代码: <?php /* * 得到网页内容 * 参数:$host [in] string * 主机名称(例如: www.imsorry.com.cn) * 参数:$method [in] string * 提交方法:POST, GET, HEAD ... 并加上相应的参数( 具体语法参见 RFC1945,RFC2068 ) * 参数:$str [in] string * 提交的内容 * 参数:$sessid [in] string * PHP的SESSIONID * * @返回 网页内容 string */ function GetWebContent($host, $method, $str, $sess...
类别:网页编程 - PHP技术    查看:89    更新:2014-05-19

PHP 5.0对象模型深度探索之定义一个类

  当你声明一个类,你需要列出对象应有的所有变量和所有函数―被称为属性和方法。列表1中显示了一个类的构成. 注意在大括号({})内你只能声明变量或者函数。列表2中显示了如何在一个类中定义三个属性和两个方法。   列表1 class Name extends Another Class {  Access Variable Declaration  Access Function Declaration }   列表2 //定义一个跟踪用户的类 class User {  //属性  public $name;  private $password, $lastLogin;  //方法  public function __construct($name, $password)  {   $this->name = $name;   $this->password = $password;   $this->lastLogin =...
类别:网页编程 - PHP技术    查看:108    更新:2014-05-19

PHP 5.0对象模型深度探索之构造和析构

  如果你在一个类中声明一个函数,命名为__construct,这个函数将被当成是一个构造函数并在建立一个对象实例时被执行。清楚地说,__是两个下划线。就像其它任何函数一样,构造函数可能有参数或者默认值. 你可以定义一个类来建立一个对象并将其属性全放在一个语句(statement)中。   你也可以定义一个名为__destruct的函数,PHP将在对象被销毁前调用这个函数. 它称为析构函数.   继承是类的一个强大功能。一个类(子类/派生类)可以继承另一类(父类/基类)的功能. 派生类将包含有基类的所有属性和方法,并可以在派生类中加上其他属性和方法。你也可以覆写基类的方法和属性。就像前文中显示的,你可以用extends关键字来继承一个类。 ...
类别:网页编程 - PHP技术    查看:100    更新:2014-05-19

PHP 5.0对象模型深度探索之对象复制

  PHP5中的对象模型通过引用来调用对象, 但有时你可能想建立一个对象的副本,并希望原来的对象的改变不影响到副本 . 为了这样的目的,PHP定义了一个特殊的方法,称为__clone. 像__construct和__destruct一样,前面有两个下划线。   默认地,用__clone方法将建立一个与原对象拥有相同属性和方法的对象. 如果你想在克隆时改变默认的内容,你要在__clone中覆写(属性或方法)。   克隆的方法可以没有参数,但它同时包含this和that指针(that指向被复制的对象)。如果你选择克隆自己,你要小心复制任何你要你的对象包含的信息,从that到this,如果你用__clone来复制,PHP不会执行任何隐性的复制,下面显示了一个用系列序数来自动化...
类别:网页编程 - PHP技术    查看:120    更新:2014-05-19

PHP 5.0对象模型深度探索之类的静态成员

  类的静态成员与一般的类成员不同: 静态成员与对象的实例无关,只与类本身有关。他们用来实现类要封装的功能和数据,但不包括特定对象的功能和数据,静态成员包括静态方法和静态属性。   静态属性包含在类中要封装的数据,可以由所有类的实例共享。实际上,除了属于一个固定的类并限制访问方式外,类的静态属性非常类似于函数的全局变量。   我们在下例中使用了一个静态属性Counter::$count。它属于Counter类,而不属于任何Counter的实例。你不能用this来引用它,但可以用self或其它有效的命名表达。在例子中,getCount方法返回self::$count,而不是Counter::$count。   静态方法则实现类需要封装的功能,与特定的对象无关...
类别:网页编程 - PHP技术    查看:116    更新:2014-05-19

PHP 5.0对象模型深度探索之属性和方法

  一个对象实例的属性是变量,就像PHP的其他变量一样。但是你必须使用->运算符来引用它们。不需要在属性前使用美元符$。   可以联用->,如果一个对象的属性包含了一个对象,你可以使用两个->运算符来得到内部对象的属性. 你甚至可以用双重引用的字符串来放置这些表达式. 下面的例子中,对象House中的属性room包含了一组Room对象。   访问方法和访问属性类似。->运算符用来指向实例的方法. 在下面的中调用getLastLogin就是。方法执行起来和类外的函数几乎相同.   如果一个类从另一类中继承而来,父类中的属性和方法将在子类中都有效,即使在子类中没有声明. 像以前提到过的,继承是非常强大的. 如果你想访问一个继承的...
类别:网页编程 - PHP技术    查看:121    更新:2014-05-19

PHP程序百行代码快速构建简易聊天室方法

基本功能:能登陆,聊天,记录在线人数IP事件,能控制聊天的字体颜色,自动把转化聊天中网址为链接地址,能定制聊天室标题、广告信息等等。使用文本作为存储媒体,又兴趣可以参考代码,并且进行扩展。 以下是PHP代码:【复制代码】 <?PHP error_reporting(7); session_start(); header("ContentType:text/HTML;charset=gb2312"); define("SCRIPT", $_SERVER['SCRIPT_NAME']); define("CHAT_NOTE", "./chat.txt"); define("ONLINE_LIST", "./online.txt"); define("REF_TIME", 5); define(&...
类别:网页编程 - PHP技术    查看:87    更新:2014-05-19

PHP5中的访问控制(public ,private,protected)

PHP5 oop中类的变量定义遵循一种访问控制,就是: public 表示全局,类内部外部子类都可以访问; private表示私有的,只有本类内部可以使用; protected表示受保护的,只有本类或子类或父类中可以访问; <?PHP class BaseClass { public $public = 'public'; private $private = 'private'; protected $protected = 'protected'; function __construct(){ } function print_var(){ print $this->public;echo '<br />'; print $this->private; echo '<br />'; print $this->protected; echo '<br />'; } } class Subclass extends BaseClass { // public $public...
类别:网页编程 - PHP技术    查看:105    更新:2014-05-19

PHP中的常用的25个MYSQL函数

1、mysql_connect()-建立数据库连接 格式: resource mysql_connect([string hostname [:port] [:/path/to/socket] [, string username] [, string password]]) 例: $conn = @mysql_connect(”localhost”, “username”, “password”) or dir(”不能连接到Mysql Server”); 说明:使用该连接必须显示的关闭连接 2、mysql_pconnect()-建立数据库连接 格式: resource mysql_pconnect([string hostname [:port] [:/path/to/socket] [, string username] [, string password]]) 例: $conn = @mysql_pconnect(”localhost”, “username”, “password”) ...
类别:网页编程 - PHP技术    查看:126    更新:2014-05-19

PHP如何判断ajax请求

如何在php中判断一个网页请求是ajax请求还是普通请求?你可以通过传递参数的方法来实现,例如使用如下网址请求: http://www.goalercn.com/path/to/script.php?ajax 在php脚本中使用如下方法判断: 以下为引用的内容: if(isset($_GET['ajax'])) { ...这是一个ajax请求,然后... } else { ...这不是一个ajax请求,然后... } 通过传递_GET参数的方法简单实现了网页请求的判断。但是如果需要这样的功能,这个方法可能就有弊端,功能需求如下: 1.通过ajax请求的网页与普通请求的网页内容是不相同的 2.通过ajax请求的网页是为了方便用户操作,两种方法请求打开的网页必须的内容是相同的,只是ajax请求到的网页内容比较简化和使用...
类别:网页编程 - PHP技术    查看:101    更新:2014-05-19

PHP文本数据库的操作方法

我用一个留言本程序作为例子,阐述php实现对文本数据库的数据显示、加入、修改、删除、查询五大基本操作的方法。 此文本数据库共有字段10个:客户IP、发言时间、客户名、客户EMAIL、客户主页地址、留言表情图片名、客户QQ、客户形象图片、留言内容、管理员回复内容。 1、加入数据程序段。 $date=date("Y-m-d H:i:s");//取得系统时间 $ip = $HTTP_SERVER_VARS[REMOTE_ADDR]; //取得发言的IP地址 $text=encode($gb_text);//去掉留言内容后面的空格. $fp=fopen("gb.dat","a");//以只写模式打开gb.dat文本文件,文件指针指向文件尾部. $str=$ip."|".$da...
类别:网页编程 - PHP技术    查看:99    更新:2014-05-19

PHP实现文件安全下载

你一定会笑我"下载文件"如此简单都值得说?当然并不是想象那么简单。例如你希望客户要填完一份表格,才可以下载某一文件,你第一个想法一定是用 "Redirect"的方法,先检查表格是否已经填写完毕和完整,然后就将网址指到该文件,这样客户才能下载,但如果你想做一个关于"网上购物"的电子商务网站,考虑安全问题,你不想用户直接复制网址下载该文件,笔者建议你使用PHP直接读取该实际文件然后下载的方法去做。程序如下: $file_name = "info_check.exe"; $file_dir = "/public/www/download/"; if (!file_exists($file_dir . $file_name)) { //检查文件是否存在 echo "文件找不到...
类别:网页编程 - PHP技术    查看:131    更新:2014-05-19

PHP和MySQL操作应该注意的一些细节

对于 MySQL ,第一件你必须牢记的是它的每一行命令都是用分号 (;) 作为结束的,但……没有完全绝对的事,在这儿也是一样。 当一行 MySQL 被插入在 PHP 代码中时,最好把后面的分号省略掉,例如: mysql_query ("INSERT INTO tablename (first_name, last_name) VALUES ('$first_name', '$last_name') "); 这是因为 PHP 也是以分号作为一行的结束的,额外的分号有时会让 PHP 的语法分析器搞不明白,所以还是省略掉的好。在这种情况下,虽然省略了分号,但是 PHP 在执行 MySQL 命令时会自动的帮你加上的。 另外还有一个不要加分号的情况。当你想把要字段的竖者...
类别:网页编程 - PHP技术    查看:123    更新:2014-05-19

了解PHP处理复杂数学问题的10个PEAR类

如果你具有数学知识背景,你可能已经意识到PHP中并不具备处理高等数学概念——复杂数字、分数、多项式、统计数据和矩阵——的特殊函数。 但是,这种缺陷可以由PEAR,PHP扩展和应用库来填补,它提供大量处理复杂数学单位的现成数据包。这些数据包为应用程序开发者提供一个稳健、经过良好测试的代码库,同时帮助你节省构造出你自己的数学算法所需的时间和精力。 本文列出开发者在其项目中处理复杂数学问题时特别感兴趣的10个PEAR数据包(表A)。查看并尝试一下——你可能不会知道,你也许会为你当前面对的问题找到解决办法。不过有一个警告:如果你上学时不喜欢数学课,下面的内容可能会让你恢...
类别:网页编程 - PHP技术    查看:102    更新:2014-05-19

PHP也可以当成Shell Script进行使用

PHP 执行档的安装   一般 PHP 作为网页处理语言都是要编译成 Apache 的模块﹐这里当然不么做﹐也因此编译起来很简单﹐只要以 root 的身分进行如下动作 :   解开 php-3.0.xx.tar.gz   cd php   configure   make   编译完之后﹐在 php 目录下有一个可执行档﹐档名为 php﹐将它 copy 到 /usr/local/bin 下即可。注意﹐如果档案太大﹐可以使用 strip 指令将 php 的方式将不必要的信息去除﹐这样档案就会小得多了。   第一个程序   开始撰写我们的第一个 PHP Shell Script 程序﹐这个例子印出 "Hello world !" :   #!/usr/local/bin/php -q   echo "Hello, world !&...
类别:网页编程 - PHP技术    查看:94    更新:2014-05-19