/^[\x{4e00}-\x{9fa5}]+$/u
注意:后面使用u模式修正符(此修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式字符串被当成 UTF-8)
$pattern='/^[\x{4e00}-\x{9fa5}]+$/u';
$string='中文';
if(preg_match($pattern,$string)) {echo'匹配';}
/^[\x{4e00}-\x{9fa5}]+$/u
注意:后面使用u模式修正符(此修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式字符串被当成 UTF-8)
$pattern='/^[\x{4e00}-\x{9fa5}]+$/u';
$string='中文';
if(preg_match($pattern,$string)) {echo'匹配';}
约定路径为:
下载源文件:
http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
http://www.nginx.org/download/nginx-0.8.34.tar.gz
http://launchpad.net/php-fpm/master/0.6/+download/php-fpm-0.6~5.2.11.tar.gz
http://www.php.net/get/php-5.2.11.tar.gz/from/a/mirror
http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
http://downloads.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz?use_mirror=nchc
http://downloads.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz?use_mirror=nchc
http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz?modtime=1175740843&big_mirror=0
安装步骤
yum -y install gcc gcc-c++ autoconf patch libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlibzlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel pcre-devel libidn libidn-devel
tar zxvf libiconv-1.13.tar.gz cd libiconv-1.13/ ./configure --prefix=/usr make make install cd ../ tar zxvf libmcrypt-2.5.8.tar.gz cd libmcrypt-2.5.8/ ./configure --prefix=/usr make && make install /sbin/ldconfig cd libltdl/ ./configure --prefix=/usr --enable-ltdl-install make && make install cd ../../ tar zxvf mhash-0.9.9.9.tar.gz cd mhash-0.9.9.9/ ./configure --prefix=/usr make && make install cd ../ echo "/usr/lib" >> /etc/ld.so.conf ldconfig
安装mcrypt
tar zxvf mcrypt-2.6.8.tar.gz cd mcrypt-2.6.8/ ./configure --prefix=/usr make && make install cd ../
groupadd www useradd -g www www
产生要求填写ftp的原因很多是因为php脚本文件和执行php脚本者是不同用户ID造成。
看wordpress里wp-admin/includes/file.php决定使用文件系统方法的函数:
if( ! $method && function_exists('getmyuid') && function_exists('fileowner') ){
if ( !$context )
$context = WP_CONTENT_DIR;
$context = trailingslashit($context);
$temp_file_name = $context . 'temp-write-test-' . time();
$temp_handle = @fopen($temp_file_name, 'w');
if ( $temp_handle ) {
if ( getmyuid() == @fileowner($temp_file_name) )
$method = 'direct';
@fclose($temp_handle);
@unlink($temp_file_name);
}
}
但我们可以直接自定义决定使用的方法:
//wp-config.php底部追加下面代码
//其定义值可以为: 'direct', 'ssh', 'ftpext' (ftp方式)or 'ftpsockets'(Socket extension)
define('FS_METHOD', 'direct');
//修改目录权限默认是0755
define('FS_CHMOD_DIR',0751);
因此出现ftp时候,而且使用是虚拟主机大多可以通过上面设置解决特别是ftp也不能用时候。
相关(适合自己主机):WordPress 安装插件或升级要FTP信息的解决
今天用到basename 函数获取文件名称时,发现如果是中文的文件名返回只有后缀的空文件名(如:.pdf)
string basename ( string path [, string suffix] )
说明
给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以 suffix 结束的,那这一部分也会被去掉。
按照网站上找到说法是此函数依赖于区域设置,如果是多字节名称返回为空可以通过setlocale函数如下设置
<?php setlocale(LC_ALL, 'zh_CN.UTF8'); // or any other locale that can handle multibyte characters. ?>
最好是修改服务器的区域设置来整体解决
最近在PHP官网上看到又有新版的PHP下载了,于是上去找找For Windows的版本,可是一看确傻眼了,一共给了四个版本,VC9 x86 Non Thread Safe、VC9 x86 Thread Safe、VC6 x86 Non Thread Safe、VC6 x86 Thread Safe,这让我这个菜鸟头疼啊,还好 PHP 官网提供下载的地方左边有个英文 choose 我看懂了,我估摸着就是如何来选择版本的意思吧,于是开始查字典及上网查找,终于看明白了具体意思,拿来做个备忘先。
VC6 版本是使用 Visual Studio 6 编译器编译的,如果你的 PHP 是用 Apache 来架设的,那你就选择 VC6 版本。
VC9 版本是使用 Visual Studio 2008 编译器编译的,如果你的 PHP 是用 IIS 来架设的,那你就选择 VC9 版本。
先从字面意思上理解,Thread Safe 是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式而耗尽系统资源。Non Thread Safe 是非线程安全,在执行时不进行线程(Thread)安全检查。
再来看 PHP 的两种执行方式:ISAPI 和 FastCGI。
ISAPI 执行方式是以 DLL 动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以 ISAPI 来执行 PHP,建议选择 Thread Safe 版本;
而 FastCGI 执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以 FastCGI 来执行 PHP,建议选择 Non Thread Safe 版本。
官方并不建议你将Non Thread Safe 应用于生产环境,所以我们选择Thread Safe 版本的PHP来使用。