六 06
简介
C APIs包含在mysqlclient库文件当中与MySQL的源代码一块发行,用于连接到数据库和执行数据库查询。有一些例子在MySQL原代码的clients目录里。
MySQL C 变量类型
以下变量类型在MySQL的库当中定义。我们需要这些变量是为了使用MySQL的函数。这些变量有详细的解释,但是这些解释对于写代码来说并不重要。
MYSQL
要连接MYSQL,必须建立MYSQL实例,通过mysql_init初始化方能开始进行连接。
[code=c]typedef struct st_mysql {
NET net; /* Communication parameters */
gptr connector_fd; /* ConnectorFd for SSL */ ... (全文...)
三 14
注:项目上线成功,以后可能更多的关注服务器端技术,包括 apache 模块,php 模块,memcache,mysql 等。正好今天有一个活,需要将一个用C语言写好的加密算法程序打包成 php 模块,一边参考手册一边编码测试,到下午快下班的时候便大功告成。将编码过程中参考的 Zend API 手册的翻译版本转载备忘。
来自抚琴居:http://www.yAnbiN.org/
摘要
概述
可扩展性
源码布局
(全文...)
一 09
如何改进以下的这行php代码?这段代码可以被用来测试php工程师应聘者。
< ?
echo("Search results for query: " .$_GET['query'] . ".");
? >
这段代码非常适合用来测试一个php开发人员是否合格。因为这段代码并没有要求太多记忆上的东西(例如函数的记忆),但是对安全,性能,兼容性上都做了考察。
Continue reading »
十二 24
PECL :: Package :: memcache 2.1.1 版本的 Changelog 中有一条:
- Added experimental session storage support. You can use memcached as session storage.
也就是可以直接用 memcache 来作 PHP 的 session.save_handler。
1. 安装 memcached:
标准的
./configure; make; make install
注意 memcached 用 libevent 来作事件驱动,所以要先安装有 libevent。
2. 安装 pecl::memcache,用 pecl 命令行工具安装:
pecl install memcache
或直接从源码安装:
phpize
./configure
make
make install
将 ... (全文...)
十一 20
MySQL 从 4.1 开始对多语言的支持有了很大变化 ,这导致了问题的出现。
许多 PHP 程序以 MySQL 作为默认的数据库管理软件,但它们一般不区分 MySQL 4.1 与 4.1 以下版本的区别,笼统地称“MySQL 3.xx.xx 以上版本”就满足安装需求了。因为 latin1 在许多地方 (下边会详细描述具体是哪些地方) 作为默认的字符集,成功的蒙蔽了许多 PHP 程序的开发者和用户,掩盖了在中文等语言环境下会出现的问题。
简单的说,MySQL 自身的变化和使用 MySQL 的 PHP 程序对此忽略,导致了问题的出现和复杂化,而由于大部分用户使用的是英文,使这种问题不被重视。这里提到的 PHP 程序,以 WordPress 为例。
MySQL 4.1 ... (全文...)
十一 15
- 盛大灵游记:http://shop.ourgame.com/GLGGBilling/Service4Partner.asmx
- 新浪机战:http://222.77.177.169/sinapay/ChargeMoneyInterface1.asmx
- 腾龙功夫世界:http://secure.tengwu.com.cn/MainService.asmx
- 星级家园:(非webservice提供接口)
PHP5 Soap 接口代码框架:
try {
$response = $soap_client->__soapCall("m_GetRolesList",$params);
if ($response['m_GetRolesListResult'] != 1) {
$err = m_GFSJ_GetErrText($response['m_GetRolesListResult']);
$loge->uniLog("$err");
return false ... (全文...)
十一 13
做 Web 开发的人都知道,浏览器和服务器之间是通过 HTTP 协议进行连接通讯的。这是一种基于请求和响应模型的协议。浏览器通过 URL 向某台服务器发起请求(Request),Web 服务器接收到请求,执行一段程序,然后做出响应(Response),也就是一段字符串,这个字符串符合 HTTP 协议的格式,有 HEAD 和 BODY 两部分。
这其中有一个问题,Web 服务器执行一段程序,可能几毫秒就完成,也可能几分钟都完不成。如果程序执行缓慢,用户可能没有耐心等下去,就关闭浏览器了。这个时候,服务器会接收到连 接状态改变的通知,因为 HTTP 是最上层的协议,下面还有一层 TCP 协议,TCP 会知 ... (全文...)
十 10
“Fatal error:Maximum execution time of 0 seconds exceeded”
php.ini 设置:
max_execution_time = 0 ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
memory_limit = 128M ; Maximum amount of memory a script may consume (128MB)
这里报错并不是因为脚本执行时间超时,而是输入时间超时,属于错误定位不准确,导致出错信息无效甚至误导编程者。
我的 minicraw 脚本在某些服务器上总是死掉,找了半天,才在 googl ... (全文...)
五 31
系统带的函数:
strip_tags($str); // Strip HTML and PHP tags from a string
自己写的函数:
/**
* 清除指定内容中的HTML 标记
*
* @param string $content
* @return string $text
*/
function clear_tag($content)
{
$search = array ("''si", // 去掉 javascript
"'
'si", // 去掉 javascript
"'<[\/\!]*?[^<>]*?>'si", // 去掉 HTML 标记
"'([\r\n])[\s]+'", // 去掉空白字符
"'&(quot|#34);'i", // 替换 HTML 实体
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt ... (全文...)
五 29
一、编码范围1. GBK (GB2312/GB18030)
\x00-\xff GBK双字节编码范围
\x20-\x7f ASCII
\xa1-\xff 中文
\x80-\xff 中文
2. UTF-8 (Unicode)
\u4e00-\u9fa5 (中文)
\x3130-\x318F (韩文
\xAC00-\xD7A3 (韩文)
\u0800-\u4e00 (日文)
ps: 韩文是大于[\u9fa5]的字符
正则例子:
preg_replace("/([\x80-\xff])/","",$str);
preg_replace("/([u4e00-u9fa5])/","",$str);
二、代码例子
//判断内容里有没有中文-GBK (PHP)
function check_is_chinese($s){
return preg_match('/[\x80-\xff]./', $s);
}
//获取字符串长度-GBK (PHP)
function gb_strlen($str){
$count = 0;
fo ... (全文...)