点击进入在线实时咨询或给我们留言!
limodou   重载(与覆盖不同)在PHP中不支持。在OOP中,你可以重载一个方法来实现两个或重多的方法具有相同 的名字,但是有不同数量或类型的参数(这要看语言)。PHP 是一种松散类型的语言,所以通过类型重载不 起作用,然而通过参数的个数不同来重载也不起作用。   有时在OOP中重载构造函数非常好,这样你可以通过不同的方法创建对象(传递不同数量的参数)。在PHP 中实现它的技巧是: -------------------------------------------------------------------------------- <?php class Myclass { function Mycla
作者:Luis Argerich 译者:limodou   "Another"类的对象现在拥有了父类(Something)的全部的数据成员及方法,而且还加上了自已的数据成 员和方法。   你可以使用   $obj2=new Something;   $obj2->setX(6);   $obj2->setY(7);   PHP现在还不支持多重继承,所以你不能从两个或两个以上类派生出新的类来。   你可以在派生类中重定义一个方法,如果我们在"Another"类中重定义了getX方法,我们就不能使 用"Something"中的getX方法了。如果你在派生类中声明了一个与基派同名的数据成员,那么当你处理它时,
limodou   这篇文章介绍了在PHP中的面向对象编程(OOP,Object Oriented Programming)。我将向你演示如何通 过使用一些OOP的概念和PHP的技巧来减少编码和提高质量。祝你好运!   面向对象编程的概念:   不同的作者之间说法可能不一样,但是一个OOP语言必须有以下几方面: 抽象数据类型和信息封装 继承 多态   在PHP中是通过类来完成封装的: --------------------------------------------------------------------------------<?php class Something { // 在OOP类中,通常第一个字符为大写 var $x; function
2008-3-6phpMyAdmin $
发布日期:2008-03-01 更新日期:2008-03-04 受影响系统: phpMyAdmin phpMyAdmin < 2.11.5 不受影响系统: phpMyAdmin phpMyAdmin 2.11.5 描述: BUGTRAQ ID: 28068 phpMyAdmin是用PHP编写的工具,用于通过WEB管理MySQL。 phpMyAdmin使用$_REQUEST而不是$_GET和$_POST变量作为其参数来源,并且在SQL查询中未经过滤便使用了参数,如果用户受骗访问了恶意网站的话,就可能导致SQL注入攻击。 phpMyAdmin:目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: http://prdownloads.sourceforge.net/phpm
  PHP 4到今年年底PHP Group将不再对其进行支持了,所以为了让大家更有信心的转移到PHP 5平台上,我特别做了这个测试,看看我们PHP 4.x 是否真的性能比我们的PHP 5.x要好捏,测试结果很明显,那就是PHP 5.x 比php 4.x不论是面向对象还是面向过程,都要比PHP 4.x 要快,所以大家完全有必要转移到PHP 5.x 平台上,去体验PHP 5.x 平台的各种功能和性能。   因为PHP 5 包括新的对象模型,更多新特点,更快的处理速度,特别是处理面向对象代码的速度,虽然在php 4中面向对象代码的速度比较一般,但是在PHP5.x中面向对象
发布日期:2007-11-08 更新日期:2007-11-13 受影响系统: PHP PHP < 5.2.5 不受影响系统: PHP PHP 5.2.5 描述: BUGTRAQ ID: 26403 ----CVE(CAN) ID: CVE-2007-4887 PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。 PHP的5.2.5之前版本中存在多个安全漏洞,具体包括: 1) htmlentities和htmlspecialchars函数中不会接受部分多字节序列; 2) fnmatch()、setlocale()和glob()函数中存在多个缓冲器溢出; 3) 处理.htaccess文件中的错误可能导致通过.htaccess文件修改mail.force_extra_paramete
  下面是我写的压缩和结压缩swf文件的例子:  //没有加入判断swf文件是否已经压缩,入需要可以根据文件的第一个字节是'F'或者'C'来判断  压缩swf文件:      //文件名   $filename = "test.swf";   //打开文件   $rs = fopen($filename,"r");   //读取文件的数据   $str = fread($rs,filesize($filename));   //设置swf头文件   $head = substr($str,1,8);   $head = "C".$head;   //获取swf文件内容   $body = substr($str,8);   //压缩文件内容,使用最高压缩级别9   $body = gzcomp
正则表达式用于字符串处理、表单验证等场合,实用高效。本文收集了一些常用的表达式: 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\n\s*\r 评注:可以用来删除空白行 匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? /> 评注:网上流传的版本太糟糕,上
  用PHP过滤html里可能被利用来引入外部危险内容的代码。有些时候,需要让用户提交html内容,以便丰富用户发布的信息,当然,有些可能造成显示页面布局混乱的代码也在过滤范围内。以下是引用片段:#用户发布的html,过滤危险代码 function uh($str) { $farr = array( "/\s+/", //过滤多余的空白 "/<(\/?)(script|i?frame|style|html|body|title|link|meta|\?|\%)([^>]*?)>/isU", //过滤 <script
  PHP 5.1.1 起定义有以下常量来提供标准日期表达方法,可以用于日期格式函数(例如 date())。  DATE_ATOM(string)  原子钟格式(如:2005-08-15T15:52:01+00:00)  DATE_COOKIE(string)  HTTP Cookies 格式(如:Mon, 15 Aug 2005 15:52:01 UTC)  DATE_ISO8601(string)  ISO-8601(如:2005-08-15T15:52:01+0000)  DATE_RFC822(string)  RFC 822(如:Mon, 15 Aug 2005 15:52:01 UTC)  DATE_RFC850(string)  RFC 850(如:Monday, 15-Aug-05 15:52:01 UTC)  DATE_RFC1036(string)  RFC 1036(如:
本文总结了PHP日常开发中常用的8个小技巧。 PHP批最取得checkbox的值1、命名<input type='checkbox' name='checkbox[]' value=$dwmyrow[banzhu] />2、使用当计划当作sql指令的一部分时:如果参与控制的字段是数值型的,则if(! empty($_POST['checkbox'])) {$expr = join(",", $_POST['checkbox']);$sql = "select * from tbl_name where field in ($expr)";}如果参与控制的字段是数值型的,则if(! empty($_POST['checkbox'])) {$expr = "'".join("','", $_POST['checkbox']).".";$sql = "select * from tbl_name wher
  PHP程序设计中中文编码问题曾经困扰很多人,导致这个问题的原因其实很简单,每个国家(或区域)都规定了计算机信息交换用的字符编码集,如美国的扩展 ASCII 码, 中国的 GB2312-80,日本的 JIS 等。作为该国家/区域内信息处理的基础,字符编码集起着统一编码的重要作用。字符编码集按长度分为 SBCS(单字节字符集),DBCS(双字节字符集)两大类。早期的软件(尤其是操作系统),为了解决本地字符信息的计算机处理,出现了各种本地化版本(L10N),为了区分,引进了 LANG, Codepage 等概念。但是由于各个本地字符集代码范围重
  许多 PHP 开发人员认为,由于标准的 PHP 缺少线程功能,因此实际 PHP 应用程序不可能执行多任务处理。例如,如果应用程序需要其他 Web 站点的信息,那么在远程检索完成之前它都必须停止。这是错误的!通过本文了解如何使用 stream_select 和 stream_socket_client 实现进程内 PHP 多任务处理。  PHP 不支持线程。尽管如此,与前述大多数 PHP 开发人员所相信的想法形成对比的是,PHP 应用程序可以 执行多任务处理。让我们开始尽可能清晰地描述一下 "多任务" 和 "线程" 对于 PHP 编程的意义。   并发的种类
  如何用php直接调用文本文件内容:首先通过file函数打开服务器上的一个文本文件,返回的$myFile 就将成为这个文件操作的句柄,然后再通过循环指令,取出文件中每一行的内容并打印出来。  编程思路  首先要使用的函数为fi1e,本函数与 readfile() 类似,不同的地方为 file 函数将文件中的内容全部读出,并输出到数组的变量中、每行都是单独的数组元素。使用 file 函数打开一个 data.txt 的文件,data.txt 文件的内容为:  第一行1  第二行2  第三行3  打开文件的语句为:$myFile=file("data.txt");这时$my
为了找到一个好的模板引擎,我在互联网上进行搜索,目前已经整理出了以下名单:SmartySmarty的特点是将模板编译成PHP脚本,然后执行这些脚本。很快,非常灵活。Heyes Template Class一个非常容易使用,但功能强大并且快速的模板引擎,它帮助你把页面布局和设计从代码中分离。FastTemplate一个简单的变量插值模板类,它分析你的模板,把变量的值从HTML代码中分离处理。ShellPage一个简单易用的类,可以让你的整个网站布局基于模板文件,修改模板就能改变整个站点。STP Simple Template Parser一个简单、轻量级并且易于
现在非常时期,相信很多主机商开启了拦截系统,对于使用GZIP技术的程序来说,只要开启拦截,就会出现乱码。现在总结这段时间开启拦截系统以后,出现问题的常见程序解决方法。1、Discuz! 论坛:登录论坛后台,找到基本设置--服务器优化,禁止GZIP功能。后台登录地址:http://您的域名/logging.php?action=login 2、PHPWind 论坛:登录论坛后台,找到论坛核心设置--核心功能设置,禁止GZIP功能。后台登录地址为:http://您的域名/admincp.php3、ShopEx 商城:4.7.1版本解决办法:由于ShopEX设计上的缺陷,无法单独修改设
规则 1:绝不要信任外部数据或输入关于 Web 应用程序安全性,必须认识到的第一件事是不应该信任外部数据。外部数据(outside data) 包括不是由程序员在 PHP 代码中直接输入的任何数据。在采取措施确保安全之前,来自任何其他来源(比如 GET 变量、表单 POST、数据库、配置文件、会话变量或 cookie)的任何数据都是不可信任的。例如,下面的数据元素可以被认为是安全的,因为它们是在 PHP 中设置的。清单 1. 安全无暇的代码<?php$myUsername = 'tmyer';$arrayUsers = array('tmyer', 'tom', 'tommy');define("GREETIN
今天装一个系统,debian的etch版本,mysql都配置好了,但是用phpmyadmin 2.11.0 连接mysql总提示#1045 - Access denied for user 'root'@'localhost' (using password: YES) 错误,但是密码明明是正确的,在命令行下也没问题。象这个情况,phpmyadmin采用['auth_type'] = 'http';倒也可以,不过为什么cookie就不成呢?后来猜测,是不是php的Session处理有问题呢?从/var/lib/php5的session文件中,发现该root密码,其中有"&"字符,php给编码成了"&amp;",难道真的是这儿不成?反正删除了php的session文件
从MySQL 4.1开始引入的多语言支持确实很棒,而且一些特性已经超过了其他的数据库系统。不过我在测试过程中发现使用适用于MySQL 4.1之前的PHP语句操作MySQL数据库会造成乱码,即使是设置过了表字符集也是如此。  MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。  查看系统的字符集和排序方式的设定可以通过下面的两条命令:mysql> SHOW VARIABLES L
PHPMyAdmin的中文乱码问题很常见,而且也很烦人。以前用PHPMyAdmin比较少,最近装上以后感觉非常的方便,但是同样也遇到了中文乱码的问题,主要是UTF-8和GB2312编码不能同时正确显示。从网上找到了一些资料,但是都不是很直接,现在结合自己的操作重新整理一下。1. 因为MySQL的默认编码是latin1,所以首先我们需要修改一下PHPMyAdmin的编码转换。修改libraries目录下面的select_lang.lib.php文件,将[indent]'utf-8' => 'utf8',修改成'utf-8' => 'latin1',[/indent]2. 接下来还要修改一下页面的编码显示,将[indent]'
  SSH可以通过将联机的封包加密的技术进行资料的传递;使用SSH可以把传输的所有数据进行加密,即使有人截获到数据也无法得到有用的信息。同时数据经过压缩,大大地加快了传输的速度。总之,通过SSH的使用,可以确保资料传输比较安全并且传输效率较高。  不过,并非所有人知道PHP可以与SSH连接的特性以及与执行远程命令的能力,不过这方面却非常有用。由于我们可以在很多不同的方面利用PHP,因此它有很多设置选项来控制其行为。一组庞大的可选参数能够保证您可以将 PHP 用于许多不同的目的,但这同时也意味着这些参
续:如果点击删除一个条目则会跳转到del.php//del.php<html><head><title>Deleting an entry from the database</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /></head><body bgcolor=#ffffff><h2>Delete an entry</h2><?$database = "sunsite";$tablename = $_REQUEST['tablename'];echo "<h2>Data from $tablename</h2>";mysql_connect("localhost","root","") or die ("Problem connecting to DataBase");$query = "show columns from $tablename";$result = mysql_db_query($dat
续:点击编辑一个条目会跳转至edit.php//edit.php<html><head><title>Editing an entry from the database</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /></head><body bgcolor=#ffffff><h2>Edit an entry</h2><?$database = "sunsite";$tablename = $_REQUEST['tablename'];echo "<h2>Data from $tablename</h2>";mysql_connect("localhost","root","") or die ("Problem connecting to DataBase");$query = "show columns from $tablename";$result = mysql_db_query($database,$
续:点击添加一个条目就会跳转到add.php //add.php <html><head><title>Add an entry to the database</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /></head><body bgcolor=#ffffff><h2>Add an entry</h2><?php$database = "sunsite";$tablename = $_GET['tablename'];mysql_connect("localhost","root","") or die ("Problem connecting to DataBase");$query = "show columns from $tablename";$result = mysql_db_query($database,$query);$column = 0;if ($result){while
PHP5+Mysql5+Apache2已经是目前最流行的建站模式了。在对Mysql的表操作的时候如果仅仅使用sql语言对Mysql去操作未免太繁琐了一点。于是笔者参考互联网上的代码通过修改写了一套对各种表进行添加、删除、修改记录的php代码。仅供大家参考娱乐。以下贴出的代码在PHP5+Mysql5+Apache2 for WinXp上调试通过。首先说明一下代码适用范围,按照大多数表的特点,每个表都有id,所以这些代码适用于第一列为id的表。至于名称起什么无关紧要,重要的是代码都是默认按照第一列为primary key来进行操作。其他并无任何限制,本代码可
phpMyAdmin安装注意事项(phpMyAdmin-2.6.1-pl3 php-4.3.10 apache-2.0.53)首先,PHP必须安装正确如果phpMyAdmin要使用http方式验证,PHP必须以apache模块形式安装此外,还要添加mbstring支持具体安装过程./configure --with-apxs2=/usr/local/apache/bin/apxs --enable-mbstring(一般:./configure --prefix=/usr/local/php4 --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --enable-mbstring)makemake install(FreeBSD)在/usr/local/apache/etc/conf/httpd.conf中,添加AddType applica
  用Php分析并绘制音频文件的波形图,网上还是很少见到。其实只要根据wav文件的规范,用Php的fseek,fopen,fopen,pack/unpack等函数,以及强大的gd图形库,这些都是很容易的。很多人可能对pack/unpack函数不熟悉;这其实是Php借用perl的,他们提供了使用脚本语言访问复杂二进制数据结构的方法。我的这段简化的程序只能处理PCM格式的RIFF音频文件(这也是最常见的wav格式) ,不限声道,但是比特率(BitsPerSample)最好是16。  这里有wave file format 和 MicroSoft wave soundfile format可以参考。这里是一个实际的
  PHP是一种非常流行的网站脚本语言,但是它本身所固有的安全性是非常薄弱。本文讲述了PHP增强计划(Hardened-PHP project)和新的Suhosi计划,Suhosin提供了增强的PHP的安全配置。  PHP是带有争论地但又是最流行的一种网站脚本语言。它之所以流行,是因为它低廉的价格,然而,这低廉的价格导致用PHP写的网站应用程序越来越多的同时也越来越多的展现出PHP本身在安全上的脆弱,这种安全特性显示出PHP是极不可靠,不过同时对这个脚本语言本身而言它又是非常灵活的,使用它就能很容易的实现代码,不过这些代码都是臃肿
因为工作的原因.要用到这个,所以研究了一下.主要思路是模拟COOKIES ..先往Cookies里面插入用户ID和一个SessionID,然后再往数据库中的sessions表里面插入SessionID,和用户ID,如果打开论坛,系统会验证COOKIES的信息跟数据库中的信息是否一样,如果一样的话就可以实现自动登入..登入部份主要代码如下:<?php//获取32位随机的SESSIONID//初始化各值$Session_testId=create_sess_id(32);$SessionIp='192.168.0.100';$cookie_path='/';$cookieName='phpbb3_1w36a';$userBrowserInfo= $_SERVER["HTTP_USER_AGENT"];$userIpAdd=
首先我得承认我喜欢计算机标准。如果每个人都遵从这个行业的标准,互联网将会是一个更好的媒体。使用标准化的数据交换格式才能使开放的和独立于平台的计算模式切实可行。这就是我作为XML爱好者的原因。 幸运的是,我最喜爱的脚本语言不但支持XML而且对其支持正不断加强。PHP可以让我迅速将XML文档发布到互联网上,收集XML文档的统计信息,将XML文档转换成其它格式。例如,我时常用PHP的XML处理能力来管理我用XML所写的文章和书。 本文中,我将讨论任何用PHP内建的Expat解析器来处理XML文档。通过范例,我将演示Expat的

©2004-2010 版权所有 · 广州子言网络 [ 英文网店系统建设专家 ]

联系电话:020-3600  粤ICP备05066100号