- 浏览: 426894 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
lanlansnss:
说真的。 木有看懂哇。
【辞职】你谂清楚未? -
fei441544558:
isset($_SESSION['submit_tim ...
PHP防止用户刷新页面,重复提交表单内容 -
ngn9999:
天下文章一大抄
flash遮盖div层在IE和FF下解决办法 -
阳光空气水:
嗯,原来是道友。
FireBug - Javascript 的調試工具 [轉載] -
osacar:
楼主的头像里人物是不是史艳文里的?
PHP程序如何防止站外提交数据
作者:HonestQiao
如果在你实际的应用之中,你确实需要高速数据更新的操作,那么我们认为你已经具备以下先决条件:
能够按照实际应用的需要而调整服务器
关于这句话,大家自己可以明白意思的,不明白的自己想一想,如果没有达到这个要求,你是否有必要高速数据更新的操作, 或者先看看最后的附加说明.
先见的参考文档:
1. http://w.yi.org/ftp/FAPM/PHP/php_manual_zh/ref.shmop.html
说明: PHP功能, 共享内存功能函数, 此处用于PHP直接操作内存, 提供高速数据操作
开启: 编译PHP的时候,加上参数: -enable-shmop
附注: 这个准备工作, 非常简单
2. http://w.yi.org/ftp/FAPM/PHP/php_manual_zh/ref.sem.html
说明: PHP功能, IPC通信相关功能函数, 此处用于使用信号量实现互斥
开启: 编译PHP的时候,加上参数: --enable-sysvsem
附注: 这个准备工作, 同样非常简单
3. http://www.huihoo.com/os/process/main.htm
说明: 学习资料, 进程的同步与互斥, 通俗的讲解了进程互斥的概念
附注: 学习资料,看看即可
4. http://www.huihoo.com/os/process/monitor.htm
说明: 学习资料, 信号量, 讲解了信号量在进程互斥之中的使用
附注: 学习资料,看看即可
5. http://www.ccw.com.cn/htm/app/aprog/01_4_25_3.asp
说明: 学习资料, 在PHP中实现进程间通讯, 讲解了如何在PHP之中利用共享内存和IPC视线进程间通讯
附注: 学习资料,看看即可
6. http://pear.php.net/package/System_SharedMemory/
说明: PEAR库, System_SharedMemory, 一个共享内存的PEAR库
支持: 使用pear管理程序, pear install System_SharedMemory-0.1.0
附注: 这个才正是我们所需要的.
System_SharedMemory在PEAR的说明为"common OO-style shared memory API",
也就是"使用通常面向对象的模式操作共享内存的应用程序接口", 后面我们可以看到, 使用它来操作共享内存, 确实很简单, 要操做一个变量,
就和普通的对象的属性操作(使用set和get)类似了.
首先, System_SharedMemory可以使用如下的多种途径来进行共享内存操作:
PHP加速模块: 'mmcache' => 'Mmcache', // Turck MMCache
PHP加速模块: 'Memcache' => 'Memcached', // Memched
共享内存模块: 'shmop_open' => 'Shmop', // Shmop
PHP加速模块: 'apc_fetch' => 'Apc', // APC
Apache功能: 'apache_note' => 'Apachenote', // Apache note
Systemv模块: 'shm_get_var' => 'Systemv', // System V
sqlite数据库模块: 'sqlite_open' => 'Sqlite', // SQLite
使用文件模拟: 'file' => 'File', // Plain text
PHP加速模块: 'fsockopen' => 'Sharedance', // Sharedance
以上所说的PHP加速模块是认为他在某一层面对PHP进行了加速.
我们可以根据实际的情况,选用一种途径. 如果没有指定途径, 那么System_SharedMemory会自动从上直下检测是否存在类似途径的操作函数, 而自动选择途径.
因为我的实验环境是*nix系统, 所以我选择了其中之一 Shmop 模式, 当然其他模式也完全是可以的, 只要你加了对应的编译参数或者扩展模块.
以下为计数的演示代码:
/// 引用System_SharedMemory库
include_once 'System/SharedMemory.php';
$intUpdateValue = 255;
/// 数据库数据更新操作阀值, 255以内刚好一个字符
/// 实例化System_SharedMemory对象
$Shared =& System_SharedMemory::factory();
/// 获取Count的值, 并+1, 如果没有初始化过, 值为0+1
$intCount = intval($Shared->get('Count')) + 1;
if($intCount >= 255){
/// 计数器自增, 每255次
$Shared->set('Count', '0');
/// 计数器清零, 开始下一计数循环
/// 数据库操作
/// 数据库更新数据操作, 计数字段+=$intCount
} else {
$Shared->set('Count', strval($intCount));
/// 使用共享内存保存计数器值
}
echo("$intCount");
/// 显示本次循环计数器值
?>
现在把上面的这段代码演示一下子,你会看到一个高速数据更新计数器就这么简单了.
附加说明: 一个小的站点也可以使用这个模块, 因为它可以自动的那个选择共享内存的操作途径, 如果没有对内存操作的函数, 他自动选择使用文件模拟.
from: http://bbs.chinaunix.net/viewthread.php?tid=669627
发表评论
-
高级PHP应用程序漏洞审核技术
2014-07-16 23:14 1330高级PHP应用程序漏洞审核技术 高级PHP应用程序 ... -
Apache服务器使用.htaccess实现图片防盗链教程
2011-10-24 16:45 1248所谓盗链,是指其他网 ... -
使用PHP 開源類來分析HTML
2011-07-20 17:43 1132Sourceforge上有一个PHP的分析类,可以从这里下载 ... -
启用Xdebug 和使用WinCacheGrind分析PHP腳本执行情況
2011-03-02 11:51 1461一、安装xdebug模块 1、去www.xdebug.org ... -
使用 mb_detect_encoding() 函数来判断字符串是什么编码的。
2011-02-19 21:06 1669原理: 使用 mb_detect_encoding() 函数 ... -
Cache_Lite 使用说明
2011-01-12 11:48 1484Cache_Lite (作者FabienMARTY . 译 ... -
PHP 函数和过滤器(Filter)[转]
2010-12-28 15:55 1093http://www.w3school.com.cn/ph ... -
PHP大型Web应用入门(一) [转]
2010-12-26 23:42 1002这里所说的“大型”应 ... -
高级PHP应用程序漏洞审核技术 [转]
2010-12-26 23:22 1472[目录] 1. 前言 2. 传 ... -
10位顶级PHP大师的开发原则 【轉】
2010-12-22 14:47 8961. 在合适的时候使用PHP – Rasmus Lerdo ... -
windows下php curl 的支持
2010-08-24 09:23 1874上次帮一个朋友安装Zen Cart, 发现需要curl的支持, ... -
PHP自动检测客戶端是否Mobile [轉載]
2010-04-21 11:56 1252<?php $mobile_browser ... -
pear安装及除错 [转]
2010-03-30 22:35 1711安装过程: 方法一: windows xp下安装pear ... -
支持中文的截取字符函数,不同编码下中文字符的范围一目了然
2009-08-18 09:19 1092这是一个简单的函数,或许对你我都有用吧。 以前也有类似的文章, ... -
APC(Alternative PHP Cache)學習文章收集
2009-04-16 11:24 1661I. 概述: Alternative Php Cache(AP ... -
php字符串处理函数讲解
2009-03-16 16:55 1447addcslashes —— 为字符串 ... -
php函数call_user_func和call_user_func_array函數使用
2009-03-10 17:35 3282call_user_func函数类似于一种特别的调用函数的 ... -
在PHP中處理xml文件
2009-03-09 15:40 1361<?php $xml = simplexml_lo ... -
PHP中的ob_start()_输出缓冲函數
2009-02-02 10:39 1541在PHP编程中, 我们经常会遇到一些直接产生输出的函数, 如p ... -
一些在php中使用header函数设置http头的示例方法
2009-01-14 10:30 5254// ok header('HTTP/1.1 200 O ...
相关推荐
Session是Web应用程序中用于跟踪用户状态的一种机制,它存储在服务器端,与传统的基于cookie的客户端存储方式相比,更安全且能存储大量数据。然而,当一个网站部署在多台服务器上时,单个服务器上的session无法在...
共享网盘系统是一种基于互联网技术,提供文件存储、分享及管理服务的应用程序。在本案例中,我们讨论的是一个使用PHP编程语言实现的共享网盘系统源码——"小白共享网盘系统源码V5.0"。PHP是一种广泛使用的开源脚本...
在IT行业中,PHPWeb是一种基于PHP语言的开源网站框架,专为快速开发Web应用程序而设计。PHPWeb资源共享是其核心特性之一,它极大地提升了网站开发的效率和用户体验。本文将深入探讨PHPWeb如何实现资源共享,以及这一...
PHP是一种广泛使用的服务器端脚本语言,它默认的session存储机制并不适用于多服务器环境。为了解决这个问题,开发者通常会利用外部存储服务,如memcached,来实现session共享。本文将深入探讨如何使用PHP和memcached...
共享内存是另一种进程间通信方式,它允许不同进程直接读写同一块内存区域,速度较快。在PHP中,可以使用`shm_attach()`函数创建或连接到一个共享内存区域,`shm_put_var()`和`shm_get_var()`用于在共享内存中设置和...
Session是Web应用程序中用于跟踪用户状态的一种机制。在HTTP协议无状态的特性下,Session提供了在多个请求之间保持用户状态的方法。通常,服务器会为每个用户生成一个唯一的Session ID,并将其存储在客户端(如...
首先,XML(可扩展的标记语言)是一种W3C标准,它主要用于Web应用程序和服务器之间轻松的交互、数据的存储与使用。它允许开发者创建描述性标记,用以定义数据的含义和结构,这些标记对人和计算机都是易读的。XML数据...
缓存是一种临时存储数据的技术,目的是减少数据访问的时间和资源消耗。在PHP中,可以通过使用memcached或Redis等缓存系统来实现这一目标。缓存可以显著提高应用程序的性能,特别是在处理大量数据或高并发请求的情况...
AES是一种广泛使用的对称加密算法,可以快速高效地对大量数据进行加密和解密,而HKDF则是一个强大的密钥派生函数,可以从主密钥安全地衍生出不同用途的子密钥。 库中的主要功能包括: 1. **密钥管理**:...
1. **PHP基础**:PHP是一种广泛使用的服务器端脚本语言,特别适合于Web开发。在这个项目中,PHP被用来处理用户请求,执行数据库操作,以及动态生成网页内容。理解PHP的基础语法、函数库和面向对象编程的概念是完成...
网站负载均衡技术是一种重要的解决方案,用于应对高流量网站或服务的访问压力,通过将工作负载分散到多个服务器,以防止单一服务器过载。本专项方案主要关注如何利用反向代理负载均衡策略,以及如何处理与之相关的...
Memcached是一种高性能的分布式内存对象缓存系统,常用于加速动态Web应用程序,通过在内存中存储数据来减少数据库的负载。 **描述解读:** 描述中提到,这个扩展是PHP 5.3.8版本中的memcached插件,目的是提升PHP...
开源版本的优势在于,用户可以查看和修改源代码,根据自己的业务需求进行定制化开发,或者参与到社区中,与其他开发者共享解决方案和经验。 悟空CRM的功能模块通常包括但不限于以下几部分: 1. **客户管理**:记录...
在IT领域,PHP(Hypertext Preprocessor)是一种广泛使用的开源服务器端脚本语言,特别适合Web开发。PHP的设计目标是提高可嵌入性,使得开发者可以将PHP代码嵌入HTML源码中,实现动态网页生成。"基于PHP的然之协同...
**缓存**是一种用于暂时存储数据的技术,目的是为了加快数据访问的速度。在现代软件开发中,缓存扮演着极其重要的角色,尤其对于提高Web应用的性能至关重要。通过缓存,我们可以避免重复计算或频繁访问较慢的数据源...
在IT行业中,PHP是一种广泛使用的开源脚本语言,尤其在Web开发领域占据着重要的地位。本文将深入探讨PHP以及与之相关的XML技术,基于提供的标题“学习PHP的东西”和描述,我们将围绕PHP语言基础、PHP与ASP的对比、...
标题中的“基于PHP实现的WEB图片共享系统”指的是一个使用PHP编程语言开发的网络应用程序,其主要功能是提供一个平台让用户能够上传、分享和浏览图片。这个系统可能包含用户注册登录、图片上传、图片预览、图片搜索...
1. **PHP**:PHP(Hypertext Preprocessor)是一种广泛使用的开源通用脚本语言,特别适用于Web开发并可嵌入HTML中。PHP风格灵活,语法简单,无论是简单的脚本还是复杂的Web应用程序均可胜任。 2. **MySQL**:MySQL是...
在IT领域,尤其是数据库管理和开发中,数据字典生成器是一种实用工具,能够自动生成这些元数据,帮助开发者和DBA更有效地理解和管理数据库结构。 "数据字典生成器【MYSQL】" 是一款专门针对MySQL数据库设计的数据...