Category Archives: PHP

Netbeans 7.0加入CodeIgniter 2.0的代码自动提示

1. 创建一个新文件,命名为CI_Autocomplete_2.0.php。内容如下:
<?php
/**
* @property CI_DB_active_record $db
* @property CI_DB_forge $dbforge
* @property CI_Benchmark $benchmark
* @property CI_Calendar $calendar
* @property CI_Cart $cart
* @property CI_Config $config
* @property CI_Controller $controller
* @property CI_Email $email
* @property CI_Encrypt $encrypt
* @property CI_Exceptions $exceptions
* @property CI_Form_validation $form_validation
* @property CI_Ftp $ftp
* @property CI_Hooks $hooks
* @property CI_Image_lib $image_lib
* @property CI_Input $input
* @property CI_Language $language
* @property CI_Loader $load
* @property CI_Log [...]

PHP代码片段记录: 多线程抓取网页等

1.Discuz的PHP可逆加密解密函数

<?php
/**
*
* @param string $string 原文或者密文
* @param string $operation 操作(ENCODE | DECODE), 默认为 DECODE
* @param string $key 密钥
* @param int $expiry 密文有效期, 加密时候有效, 单位 秒,0 为永久有效
* @return string 处理后的 原文或者 经过 base64_encode 处理后的密文
* @example
*   $a = authcode(‘abc’, ‘ENCODE’, ‘key’);
*   $b = authcode($a, ‘DECODE’, ‘key’);  // $b(abc)
*
*   $a = authcode(‘abc’, ‘ENCODE’, ‘key’, 3600);
*   [...]

用php gettext库来开发多语言系统

通常人们写程序时都是将文字写死在程序里的,比如:echo “Hello World!”; ,假如要改成它国语言,写国际化程序,就要逐个打开进行修改,程序较短时还行,若程序有上万甚至更多,改起来就不是那么容易了。近来随着i18n的逐渐标 准化,我也来讲一讲在PHP中如何实现国际化支持。跟其他程序语言一样,在 PHP 也可以利用 gettext 套件写作 i18n 程序,实现 NLS(Native Language Support) 国际化支持。
实现流程:程序设计者在程序码中写入所要显示的信息,在运行程序时并不会直接显示程序设计师所写的信息,而会先去找一个所设置语系的信息档。如果未找到,才会去显示程式码中的信息。
一、安装设置gettext套件:
windows系统:
1、打开php.ini档,查找extension=php_gettext.dll,去掉前面的“;”
2、保存,然后restart server。
若一切顺利,就可以在 phpinfo() 中看到 gettext 字样,至此已设置完毕。
二、php_gettext.dll套件里有好几个函式,具体请看相关的manual。在这里我们只用记住3个函式就行了,如下:
string bindtextdomain ( string domain, string directory)
string textdomain ( string text_domain)
string gettext ( string message)
三、写作i18n程序:
<?php
// 常规的程序
echo “Hello World!”);
?>
下面是 i18n 程序:hello.php
<?php
// I18N 程序范例开始
define(‘PACKAGE’, ‘hello’); // 定义要用的mo文件名称,常规来说,我们都把PACKAGE的名称定义和程序名称相同。
putenv(‘LANG=zh_CN’);
setlocale(LC_ALL, ‘zh_CN’); // 指定要用的语系,如:en_US、zh_CN、zh_TW
bindtextdomain(PACKAGE, ‘e:/phpbulo.com/language’);
textdomain(PACKAGE);
// The .mo file searched is:
// [...]

PHP Json编解码方式

1. PHP5 中已经有json_encode 和json_decode 函数,但是使用的时候老是莫名其妙的问题,于是上网去找其他的JSON解析方式。

2. 先是找到一个国人写的版本,http://blog.joy999.com/show-174-1.html
使用起来还算比较方便,解析出来保存为数组。
$array_utf8 = jsonDecode( $jsonString , ’utf-8′ );
但是,还是有副作用,出现一个莫名其妙的错误,一直找不到解决方案。错误如下:
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 35 bytes) in /home/ways34/public_html/t/include/json_decode.php on line 196

3. 无奈之下只好另辟蹊径,再找找其他的方式。于是找到了migurski
写的一个兼容PHP4的JSON编解码的类。
http://mike.teczno.com/json.html
使用方式也比较简单,解析出来是对象数组的形式。
// create a new instance of Services_JSON
$json = new Services_JSON();
$value = $json->decode($jsonData);
取得其中的数据则是 $value[0]->site->url 这种形式.