未来往事
在你力所能及的条件下,努力去多承担、不逃避。 [2018年 第39周/共52周]
当前分类:PHP 第5页,本分类下收藏如下文章:PHP相关技术文章

页面包含php文件时页头多一空行原因

如果页面内容中没有空行存在,请检查页面格式编码,建议以无BOM格式编码

Dreamweaver可以通过“修改->页面属性->标题/编码->包括Unicode签名(bom)”方式调整页面编码格式
Notepad++:“格式->无BOM格式编码”......
+阅读全文

Warning: Cannot modify header information - headers already sent by

今天在测试以下代码时遇到该错误:
  1. session_start();  
  2. $_SESSION['username']=$username;  
  3. echo "<script language='javascript'>location.href='../admin.php';</script>";  
......
+阅读全文

Base64在线编解码

Base64在线编码解码 For UTF-8 版
Base64在线编码解码 For GB2312/GBK......
+阅读全文

PHP has encountered an Access Violation at 02B7ADD9 错误解决

收到部分站点故障反馈错误信息:PHP has encountered an Access Violation at 02B7ADD9/7C959E6A/02D3DB76 或 直接呈现空白页面,系统为开源程序“禅道管理系统”,此问题为网站运行产生缓存服务器内存负荷过大导致,这里记录下本次故障解决的方法。

在php.ini配置文件中将 session.save_path和session.cookie_path 前面的注释符;去除并设置置为:
session_save_path = D:\temp        //路径根据自己的实际情况定义
session.cookie_path = D:\te
......
+阅读全文

PHP编译常用参数说明 参考指南

编译PHP常用的参数的解释
--prefix=/usr/local/php #指定 php 安装目录
--with-apxs2=/usr/local/apache/bin/apxs #整合apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到 apache,要求 apache 要打开SO模块
--with-config-file-path=/usr/local/php/etc #用来指定 php3.ini 或 php4.ini 的路径
--with-MySQL=/usr/local/mysql #mysql安装目录,对mysql的支持
--with-mysqli=/usr/local/mysql/bin/mysql_config #mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定。
--with-mysql-sock=/tmp/mysql.sock #指定mysql套接字文件位置
--enable-safe-mode #打开安全模式,默认值是打开的
--disable-short-tags  #配置本选项后,PHP 的程序就不能使用短的标记,一定要用的长标记
--with-exec-dir=DIR  #PHP 执行路径(有时为了系统的安全性考虑,会指定 PHP 程序一定要在哪个目录执行)
--enable-ftp #打开ftp的支持
--enable-zip #打开对zip的支持
--with-bz2 #打开对bz2文件的支持
--with-jpeg-dir #打开对jpeg图片的支持
--with-png-dir #打开对png图片的支持
--with-freetype-dir #打开对freetype字体库的支持
--without-iconv #关闭iconv函数,各种字符集间的转换
--with-libXML-dir #打开libxml2库的支持
--with-XMLrpc #打开xml-rpc的c语言
--with-zlib-dir #打开zlib库的支持
--with-gd #打开gd库的支持
--enable-gd-native-ttf #支持TrueType字符串函数库
--with-curl #打开curl浏览工具的支持
--with-curlwrappers #运用curl工具打开url流
--with-ttf #打开freetype1.*的支持,可以不加了
--with-xsl #打开XSLT 文件支持,扩展了libXML2库 ,需要libxslt软件
--with-gettext #打开gnu 的gettext 支持,编码库用到
--with-pear #打开pear命令的支持,PHP扩展用的
--enable-calendar #打开日历扩展功能
--enable-mbstring #多字节,字符串的支持
--enable-sqlite-utf8  #使sqllite支持utf-8
--enable-bcmath #打开图片大小调整,用到zabbix监控的时候用到了这个模块
--enable-sockets #打开 sockets 支持
--enable-exif #图片的元数据支持
--enable-magic-quotes #魔术引用的支持
--disable-rpath #关闭额外的运行库文件
--disable-debug #关闭调试模式
--enable-debug  #本选项一般不会使用,除非在开发 PHP 程序时比较有用。它可以显示额外的错误信息
--with-ldap=DIR  #若要使用目录协议 (Lightweight Directory Access Protocol, LDAP) 则必须要打开本选项。有关 LDAP 的细节,可以参考 RFC 文件的 RFC1777 及 RFC1778
--with-mime-magic=/usr/share/file/magic.mime #魔术头文件位置
--with-apache=DIR   #用本选项可以让 PHP 以apache的模块方式使用,DIR 的字符串可以是 /usr/local/apache 或其它安装apache的目录
--with-custom-odbc=DIR   #使用自订的 ODBC 函数库。当然,在使用本方式时要指定 CUSTOM_ODBC_LIBS 及 CFLAGS 变量。例如在 QNX 机器上使用 Sybase SQL Anywhere 时可能要配置系统环境变量 CFLAGS=-DODBC_QNX、LDFLAGS=-lunix 及 CUSTOM_ODBC_LIBS="-ldblib -lodbc",并要在 PHP 配置加入 --with-custom-odbc=/usr/lib/sqlany50
--with-oracle=DIR    #使用 Oracle 数据库。Oracle 的版本要在 7.3 版以上。您也可以在 PHP 程序中使用环境变量 ORACLE_HOME 来指定 Oracle 的路径。更多有关 Oracle 的信息请参考 Oracle 的网站 http://www.oracle.com
--with-sybase=DIR   #使用 Sybase 数据库。更多有关 Sybase 的信息请参考 Sybase 的网站 http://www.sybase.com
--with-sybase-ct=DIR  #使用 Sybase-CT 数据库


CGI方式安装常用的参数:
+阅读全文

Drupal6.28 框架简体中文包安装教程

下载地址:http://localize.drupal.org/translate/downloads,下载最新的Drupal6中文汉化包文件

到 admin->site building->modules [admin/build/modules] 启用 Locale 模块。

到 admin->site configuration->language [admin/settings/language]
点击页面介绍内的“import page”,进入语言包导入页面[admin/build/translate/import]

在“Import translation”一栏中的“Language file: ”下方,点击“浏览”按钮,选择已下载的po文件,接着在“Import into: ”的下拉选框中选择“Chines......
+阅读全文

PHP列表页面数据分页详解附源码

完全php面向过程 数据分页 无JS
<?php           
                //登陆页面设置的session,当session中存在name时
                //session_start();
    //$name = $_SESSION['name'];
    //if (empty($name)){
    //  header("Location: error.php");
    //
......
+阅读全文

PHP判断变量为空值的几种常用方法

判断变量为空,在许多场合都会用到,同时自己和许多新手一样也经常会犯一些错误,所以自己整理了一下PHP中一些常用的、判断变量为空的方法。
1. isset功能:判断变量是否被初始化
说明:它并不会判断变量是否为空,并且可以用来判断数组中元素是否被定义过
注意:当使用isset来判断数组元素是否被初始化过时,它的效率比array_key_exists高4倍左右

点击(此处)折叠或打开
$a = '';
$a['c'] = '';
if (!isset($a)) echo '$a 未被初始化'
......
+阅读全文

PHP多字节字符串处理函数:strlen mb_strlen mb_substr mb_strcut

本文主要介绍:
strlen() mb_strlen() mb_substr() mb_strcut()的使用和区别以及在不使用mb_strlen函数的情况下,如何自定义函数替换mb_strlen函数,实现中英文混合组成的字符串的长度?如何编译安装php程序时支持mbstring函数库?

以上函数默认需要PHP函数库支持:mbstring

1、使用及区别:
PHP内置的字符串长度函数strlen无法正确处理中文字符串,它得到的只是字符串所占的字节数。对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是1~3倍的差异了。

采用mb_strlen函数可以较好地解决这个问题。mb_strlen的用法和strlen类似,只不过它有第二个可选参数用于指定字符编码。例如得到UTF-8的字符串$str长度,可以用mb_strlen($str,’UTF-8′)。如果省略第二个参数,则会使用PHP的内部编码。内部编码可以通过mb_internal_encoding()函数得到,设置有两种方式:
1. 在php.ini中设置mbstring.internal_encoding = UTF-8
2. 调用mb_internal_encoding(“GBK”)

除了mb_strlen,还有很多切割函数,其中mb_substr是按字来切分字符,而mb_strcut是按字节来切分字符,但是都不会产生半个字符的现象。而且从函数切割对长度的作用也不同,mb_strcut的切割条件是小于strlen, mb_substr是等于strlen,看下面的例子
  1. $str = '这是一个中文字符串-http://fity.cn';  
  2.   
  3. echo "mb_substr:" . mb_substr($str, 0, 6, 'utf-8');  
  4.   
  5. echo " 
  6.  
  7. ";  
  8.   
  9. echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8');  
  10.   
  11.   
  12.   
  13. //output  
  14.   
  15. //mb_substr:这是一个中文 (6个字符)  
  16.   
  17. //mb_strcut:这是 (6个字符串)  

因为在utf8中一个中文字符是三个字节,所以“这是”这个字符串的长度是6,而mb_substr或mb_strlen处理是六个字符。
strlen或mb_strcut是按英文来的,英文字母在任何编码中都是一个字节。所以strlen在含有其他语言文字的时候,计算的其实可以理解为字节数目。而mb_strlen或mb_substr计算的是字符数目。

2、如何使用其他自定义函数取缔或替换mb_strlen..
今天在测试修正程序博客文章页面描述信息截取字符时遇到下图所示问题:
点击在新窗口中浏览此图片

firstheader.php文件中line 21 codes:
if(mb_strlen($newDescription,'UTF-8')>=mb_strlen($config['blogdesc'],'UTF-8')){

错误已经提示的很清楚是缺少函数库对函数mb_strlen的支持(未定义),但是由于所在的服务器虚拟主机空间PHP不支持mbstring函数库,所以只能靠自己想办法解决啦,这里莪是通过自定义了一个函数然后替换了之前的mb_strlen函数,如果你有更好的解决方法可以评论哈,code如下:
  1. /*---自定义函数mb_cutStr开始,用于取缔line21原mb_strlen字符截取函数---*/  
  2.   
  3. function   mb_cutStr($str,   $len)   
  4.   
  5. {   
  6.   
  7. $new_str   =   ' ';   
  8.   
  9. $wordLen   =   0;   
  10.   
  11. while   ($wordLen   <   $len)   {   
  12.   
  13. $temp_str   =   substr($str,   0,   1);   
  14.   
  15. if   (ord($temp_str)   >   127)   {   //   中文  
  16.   
  17. $new_str   .=   substr($str,   0,   3);   
  18.   
  19. $str   =   substr($str,   3);   
  20.   
  21. $wordLen++;   
  22.   
  23. }   else   {   //   E文  
  24.    
  25. $new_str   .=   substr($str,   0,   1);   
  26.   
  27. $str   =   substr($str,   1);   
  28.   
  29. $wordLen++;   
  30.   
  31. }   
  32.   
  33. }   
  34.   
  35. return   $new_str;   
  36.   
  37. }   
  38.   
  39. /*---自定义函数mb_cutStr结束 Modify by:未来往事 http://fity.cn 2012/07/07---*/  

3、独立主机php如何支持mbstring函数库
需要注意的是,mb_strlen并不是PHP核心函数,使用前需要确保在php编译模块时加入mbstring的支持:
Windows或Linux系统环境下配置php支持mbstring函数库你可以参考这篇文章:http://fity.cn/post/179/
+阅读全文

Linux环境下php不能生成临时session文件

今天安装xweibo时遇到xweibo无法生活xwb_test session缓存文件,原因分析如下

session.cookie_path =  // 定义允许使用session的区域,是表示session生效的网站域,和服务器的文件权限无关

session.save_path =  // 设置session临时文件存储的位置,要求目录具有读写权限



......
+阅读全文

PHP添加动态扩展库php_mbstring.dll

PHP无法加载支持动态库:Unable to load dynamic library php_mbstring.dll
错误信息:Fatal error: Call to undefined function mb_strlen() in xxxxxx.php on line n或Unable to load dynamic library
引起这个错误的大概原因是php没有正确支持mbstring扩展函数库。可以用phpinfo测试页面看一下有没有装载mbstring,如果没有,请参考本文进行配置:


windows环境
将php_mbstring.dll复制到%windows%目录下,然后打开PHP INI配置文件目录找到php.ini配置文件,一般在c:/windows/php.ini(当然如果你修改过位置
......
+阅读全文

php中sql语句使用调用变量常用方法

php中sql语句使用 调用 引用变量常用的方法:
1、 {变量}

2、 ".变量."  //这种方法是把整个SQL字符串分割,然后在用.连接起来

3、 '变量'

例如:
$sql = "update {$sqltable} set password='".md5($conform_pwd)."' where id='$id'";
......
+阅读全文

CentOS 系统环境下 PHP 性能优化基础篇

PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。那么,我们就来看看如何在CentOS系统 进行PHP优化。

CentOS系统 PHP优化

对于PHP的优化主要是对php.ini中的相关主要参数进行合理调整和设置,以下我们就来看看php.ini中的一些对性能影响较大的参数应该如何设置。# vi /etc/php.ini

(1) PHP函数禁用找到:

disable_functions =
......
+阅读全文

PHP数据类型概述与数据类型转换

一、PHP数据类型
PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有:
integer(整数):用来表示整数(或为“int”,从 PHP 4.2.0 起)
float(浮点型,双精度值):用来表示所有实数(只在PHP4.2.0之后可以使用,对于旧版本中使用的“double”现已停用)
string(字符串):用来表示字符串
boolean(布尔值):用来表示布尔类型true或false(或为“bool”,从 PHP 4.2.0 起)
array(数组):用来保存具有相同数据类型的多个数据项
object(对象):用来保......
+阅读全文

PHP远程连接MYSQL数据库非常慢的解决方法

  如果一个问题出现两次,那么这个问题就值得去研究下了,这两天发现新应用服务器连远程MYSQL数据库很慢,我还在想,不会是PHP的问题吧? 不知道如何解决,所以把应用服务器上也装了个MYSQL,才解决问题,今天又有个新的应用要上,不能也在这台新服务器上也装一个MYSQL吧,Analysis:

PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的MYSQL开启了DN......
+阅读全文