最简的就是利用
例子 1
代码如下 | 复制代码 |
<?php world! 例子 2 |
英文的话没有问题,但是中文就出问题了,下面我们使用mb_substr函数处理。
/**
*—————————————————————————————————————–
*PHP有一个mbstring扩展库可以用(有朋友面试PHP的时候还被问到过这个问题哦),但是 *
一般的服务器都没打开php_mbstring.dll,需要在
*php.ini里把php_mbstring.dll打开,如果没有权限的话就只有联系你的ISP了。
*因为mb_string的效率高一些,所以我们先检查一下mb_string是否可以用:
*—————————————————————————————————————–
*/
代码如下 | 复制代码 |
if(function_exists(‘mb_string’)) |
首先定义自己的函数
代码如下 | 复制代码 |
<?php
|
还有一个问题要注意,使用这种方法的时候,你的<head>标签对里的charset只有设成中文的编码才可以,如GBK,GB2312。
下面自己常用的一个中英文字符截取函数
自定义截取中文字符串函数,基本上就是仿照mb_substr写个函数,直接调用罢了,以下为我找到的代码,其实很简单
代码如下 | 复制代码 |
<?php |
代码如下 | 复制代码 |
<?php if(is_uploaded_file($_FILES['file']['tmp_name'])){ //iconv函数解决上传文件中文名乱码的问题,但是不提倡文件名是中文的,特别是unix/linux环境下 ,当你要输出的时候,又要给变回来,iconv('gb2312',UTF-8',$upload) if(!move_uploaded_file($_FILES['file']['tmp_name'],iconv('UTF-8','gb2312',$upload))){ echo 'failed'; }else{ } } } /******关于iconv函数的应用:string iconv ( string in_charset, string out_charset, string str ) * out_charset:输出的文件的格式 * str:文件路径 *****/ |
例
preg_match_all正则匹配字符串所有连接地址
代码如下 | 复制代码 |
$str ='<a href="http://www.a.com/2010/11-15/5.html">4</a> $ymd=date("y")."/".date("m-d"); |
但是用preg_match正则提取目标内容,死活有问题,
代码测得死去活来。
后来发现“pcre.backtrack_limit ”的值默认只设了100000。
解决办法:
代码如下 | 复制代码 |
|
注:这个参数在php 5.2.0版本之后可用。
另外说说关于:pcre.recursion_limit
pcre.recursion_limit是PCRE的递归限制,这个项如果设很大的值,会消耗所有进程的可用堆栈,最后导致PHP崩溃。
也可以通过修改配置来限制
代码如下 | 复制代码 |
ini_set(‘pcre.recursion_limit’, 99999); |
实际项目应用中,最好也对内存进行限定设置:
代码如下 | 复制代码 |
ini_set(‘memory_limit’, ’64M’); |
有数据库服务器管理权限
找到php.ini 配置文件中的以下三个地方,upload_max_filesize, memory_limit 和post_max_size 修改大小即可。
利用命令来解决步骤如下:
第一,打开 CMD。开始 -> 运行 -> CMD。
第二,进入 mysql 目录。
代码如下 | 复制代码 |
d: |
第三,启动 mysql,输入用户名及密码。
代码如下 | 复制代码 |
mysql -u wper -p |
第四,选择对应的数据库名。
mysql> use wp
第五,设置 utf8 编码。
代码如下 | 复制代码 |
mysql> set names utf8; |
第六,选择 sql 数据库文件路径并导入。
代码如下 | 复制代码 |
mysql>source d:wangeim.sql |
方法三,利用一些专用的数据备份软件,这样他们可以设置导出数据的大小这样就可以解决这个问题了。
如果使用的是独立的服务器,有权限修改配置文件,设置时区就可以通过修改php.ini中的date.timezone属性完成。我们可以将这个属性的值设置为\"Asia/Shang\"、\"Asia/Chongqing\"、\"Etc/GMT-8\"或PRC等中的一个,再在PHP脚本中获取的当前时间就是北京时间。修改PHP的配置文件如下所示:
1.date.timezone = Etc/GMT-8
//在配置文件中设置默认时区为东8区(北京时间)
在需要的php程序里边加多一句:
代码如下 | 复制代码 |
date_default_timezone_set(‘PRC’); |
测试的话可以这样写写:
代码如下 | 复制代码 |
<?php |
php无论是在windows下还是linux下安装,其默认安装配置的时区都是与中国相差8小时
也可以在服务器中打开php.ini文件,找到;date.timezone,去掉前面的分号,改成date.timezone=PRC(如果在php.ini里面找不到date.timezone,可以直接加一行date.timezone=PRC 亦可)。
在代码中设置时区
代码如下 | 复制代码 |
date_default_timezone_set('Asia/Shanghai');//'Asia/Shanghai' 亚洲/上海 date_default_timezone_set('Asia/Chongqing');//其中Asia/Chongqing'为“亚洲/重庆” date_default_timezone_set('PRC');//其中PRC为“中华人民共和国” |