让Discuz论坛支持Gmail发信

Discuz!论坛其实是可以通过Gmail发送邮件的,而且Gmail的稳定性和易用性是有口皆碑的,比起国内的其他免费STMP服务商更加可靠。下面一步一步告诉你如何实现用Discuz!论坛支持Gmail发信。

第一步,检查OpenSSL
首先查看phpinfo,查看看PHP是否支持OpenSSL,看到下面的字样,或者图片就标示支持OpenSSL。一般现在的PHP都会默认支持的。
OpenSSL support enabled
OpenSSL Version OpenSSL 0.9.8b 04 May 2006

第二步,修改Discuz!代码
在include/sendmail.inc.php文件中查找
fsockopen($mail['server'], $mail['port'], $errno, $errstr, 30)
替换为
fsockopen(’ssl://’ .$mail['server'], $mail['port'], $errno, $errstr, 30)

继续阅读…

php中实现数字转换为中文的类

<?php
class ChineseNumber
{
var $basical=array(0=>”零”,”一”,”二”,”三”,”四”,”五”,”六”,”七”,”八”,”九”);
//var $basical=array(0=>”零”,”壹”,”贰”,”叁”,”肆”,”伍”,”陆”,”柒”,”捌”,”玖”);
var $advanced=array(1=>”十”,”百”,”千”);
//var $advanced=array(1=>”拾”,”佰”,”仟”);
var $top=array(1=>”万”,”亿”);

var $level; // 以4位为一级

继续阅读…

php中rename()函数的妙用

大家都知道,rename()函数可以对文件或目录进行重命名的操作。其实它还可以做很多事情。
熟悉unix的朋友应该知道shell命令mv,它相当与win32的移动,而且移动的同时可进行重命名。发现php的rename()函数就相当于mv,它不仅仅只有简单的重命名的功能,同样可以改变文件甚至整个目录的路径。
例如:
$oldpath —-文件或目录原来路径
$newpath —-新定义路径
那么 rename($oldpath,$newpath)就可以完成文件/目录移动的操作
经过测试,win32和unix的php4版本都支持这个功能.

继续阅读…

php中GB2312转换unicode的函数

<?php
function gb2unicode($gb)
{
  if(!trim($gb))
   return $gb;
  $filename=”gb2312.txt”;
  $tmp=file($filename);
  $codetable=array();
  while(list($key,$value)=each($tmp))
   $codetable[hexdec(substr($value,0,6))]=substr($value,9,4);
  $utf=”";
  while($gb)
  {
   if (ord(substr($gb,0,1))>127)
    {
    $this=substr($gb,0,2);
    $gb=substr($gb,2,strlen($gb));
    $utf.=”&#x”.$codetable[hexdec(bin2hex($this))-0x8080].”;”;
    }
   else
    {
    $gb=substr($gb,1,strlen($gb));
    $utf.=substr($gb,0,1);
    }
   }
  return $utf;
}
?>

用于检查用户浏览器类型的php类

<?php
class BrowserDetector {
var $UA = “”; //$HTTP_USER_AGENT的内容
var $BROWSER= “Unknown”; //浏览器类型
var $PLATFORM = “Unknown”; //操作系统
var $VERSION= “”; //浏览器版本号
var $MAJORVER = “”; //浏览器主版本号
var $MINORVER = “”; //浏览器副版本号
/* 构造函数开始 */
function BrowserDetector(){
$this->UA = getenv(HTTP_USER_AGENT);
$preparens = “”;
$parens = “”;
$i = strpos($this->UA,”(“);

继续阅读…

你需要了解的10个关于php.ini的安全配置选项

1,allow_url_fopen:选项允许你如同本地文件一样引用远程资源.推荐关闭allow_url_fopen选项.
2,disable_functions:选项是非常有用的,它可以确保一些有潜在威胁的函数不能被使用。尽管可以建
立规范去禁止使用这些函数,但在PHP配置中进行限制要比依赖于开发时限制要可靠得多。
3,display_errors:PHP的错误报告可以帮助你发现你所写代码中的错误,把错误提示显示出来是取得即时
反馈的有效方法,同时也可以加快开发速度,开发测试完后建议你关闭display_errors选项。
4,enable_dl:选项用于控制dl()函数是否生效,该函数允许在运行时加载PHP扩展.用dl()函数可能导致
攻击者绕过open_basedir限制,因此除非有必要,建议禁用.
5,error_reporting:很多安全漏洞是由于使用了未初始化的变量或其它随意的编程方法引起的.
通过把PHP的error_reporting选项置为E_ALL 或 E_ALL | E_STRICT,PHP就会对上述行为进行提示。这
些设置都为报告Notice级别的错误。建议把error_reporting至少设定为E_ALL.
继续阅读…

php常用Program Execution和类/对象函数集

Program Execution函数
escapeshellarg函数:过滤用作命令参数的字符串
escapeshellcmd函数:过滤用作命令的字符串中的特殊字符
exec函数:执行命令
passthru函数:执行程序但不输出数据
proc_close函数:关闭一个由函数proc_open()打开的进程,并返回进程的退出代码
proc_get_status函数:获取进程的状态信息
继续阅读…

php常用Output和ptions/Info函数集

flush函数:刷新输出缓冲
ob_clean函数:清空输出缓冲
ob_end_clean函数:清空缓冲区并且关闭正在进行的输出缓冲
ob_end_flush函数:发送缓冲区数据并且关闭缓冲区
ob_flush函数:发送缓冲区数据
ob_get_clean函数:获取缓冲区内容并且结束缓冲区
ob_get_contents函数:获取缓冲区数据
继续阅读…

php常用Win32和错误函数集

Win32API函数
w32api_deftype函数:为w32api_functions函数定义一个类型
w32api_init_dtype函数:创建了一个数据类型的实例,并且将函数返回值填入实例中
w32api_invoke_function函数:带一个传递参数的执行函数,传递参数在函数名的后面
w32api_register_function函数:从指定函数库中使用PHP注册一个函数
w32api_set_call_method函数:设置调用的方法

继续阅读…

PHP常用信息获取类函数集

assert函数:检查assertion声明是否错误
extension_loaded函数:检查PHP扩展是否加载
get_cfg_var函数:获取PHP配置选项的值
get_current_user函数:获取当前PHP脚本的所有者的名称
get_defined_constants函数:返回一个包含PHP预定义常量信息的数组
get_extension_funcs函数:返回一个包含指定模块中的所有函数名称的数组
get_include_path函数:返回当前配置的文件包含路径的信息
get_included_files函数:返回一个关于文件包含信息的数组
get_loaded_extensions函数:返回一个包含所有装载模块信息的数组
get_magic_quotes_gpc函数:获取magic_quotes_gpc的状态信息
get_magic_quotes_runtime函数:获取magic_quotes_ runtime的状态信息
get_required_files函数:返回一个关于文件包含信息的数组
getenv函数:获取PHP环境变量的值

继续阅读…

php常用COM和其它一些函数集

COM与.NET函数
COM函数:COM类构造函数,提供了将(D)COM组件整合到PHP脚本中的框架
DOTNET函数:从.NET集合创建类并调用类的方法,使用类的属性
VARIANT函数:将变量封装进VARIANT结构中的简单容器
com_create_guid函数:产生一个全局唯一标识符(GUID)
com_event_sink函数:在COM对象与PHP对象之间建立连接
com_get_active_object函数:返回已经运行的一个COM类的实例的句柄
com_invoke函数:调用COM组件的方法
com_isenum函数:获取一个IenumVariant
com_load_typelib函数:装载一个Typelib
com_load函数:创建新的COM组件的引用
com_message_pump函数:停止运行指定的时间,等待有信息到来
com_print_typeinfo函数:输出一个定义为进程接口的PHP类
connection_aborted函数:判断客户端的连接状态
connection_status函数:返回客户端的连接状态
connection_timeout函数:判断脚本的运行状态
constant函数:返回常量的值define函数:定义一个常量的值
继续阅读…

php常用正则表达式和Network函数集

Perl兼容的正则表达式函数
preg_grep函数:返回与模式匹配的数组单元
preg_match_all函数:进行全局正则表达式匹配
preg_match函数:进行正则表达式匹配
preg_quote函数:转义正则表达式字符
preg_replace_callback函数:用回调函数执行正则表达式的查找和替换
preg_replace函数:执行正则表达式的查找和替换
preg_split函数:用正则表达式分割字符串
Network函数
主机操作类Network函数
checkdnsrr函数:查找主机的域名记录
dns_check_record函数:查找主机的DNS记录
dns_get_mx函数:获取主机的MX记录
dns_get_record函数:获取主机的DNS记录
gethostbyaddr函数:返回主机名称
gethostbyname函数:返回IP地址
gethostbynamel函数:返回IP地址列表
getmxrr函数:根据给出的域名返回MX记录
getprotobyname函数:返回协议名对应的协议号
getprotobynumber函数:返回协议号对应的协议名称
getservbyname函数:获取协议名称对应的端口号
getservbyport函数:获取端口对应的协议名称

继续阅读…