浏览模式: 普通 | 列表
PHP判断字符串编码函数mb_detect_encoding总结


iconv — Convert string to requested character encoding(PHP 4 >= 4.0.5, PHP 5)
mb_convert_encoding — Convert character encoding(PHP 4 >= 4.0.6, PHP 5)

iconv — 字符串按要求的字符编码来转换
mb_convert_encoding — 转换字符的编码

这两个函数功能类似都是用来转换字符串编码的;
用法:

string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )

注:需要先启用 mbstring 扩展库,在 php.ini里将; extension=php_mbstring.dll 前面的 ; 去掉
...

阅读全文…
ps. iconv 和 mb_convert_encoding 这2函数的编码顺序相反,mb_convert_encoding是从后转前,极容易失误

iconv(“UTF-8″,”GB2312//IGNORE”,$data); //意思是把$data字符串由utf-8编码转成gb2312编码,刚开始就被这个误导了
mb_convert_encoding($data, “UTF-8″, “GBK”); //这个意思是把$data字符串,由gbk转成utf-8编码,注意顺序与iconv相反


近期在做一个小应用,就是填上信息,然后输出wordpress模板标准的style.css文件,当然,这个文件包含了CSSreset 和本人常用的原子类,这样可以大大缩小制作的难度和时间。
于是就遇到了一个编码问题,因为wordpress的编码是UTF...

阅读全文…

PHP代码优化24条真经

[ 2015-01-13 19:22:15 | 作者: admin ]
echo比print快。

使用echo的多重参数代替字符串连接。

在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替。

对global变量,应该用完就unset()掉。

用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会。

函数代替正则表达式完成相同功能。

当执行变量$i的递增或递减时,$i++会比++$i慢一些。这种差异是PHP特有的,并不适用于其他语言,++$i更快是因为它只需要3条指令(opcodes),$i++则需要4条指令。后置递增实际上会产生一个临时变量,这个临时变量随后被递增。而前置递增直接在原值上递增。

使用选择分支语句(switch case)好于使用多个if,else if语句。

利用var_dump进行PHP代码调试。如果你在寻找php调试技术,我必须说va...

阅读全文…

使用CURL函数发送数据时的注意事项

[ 2014-12-20 16:19:55 | 作者: admin ]
PHP函数库里面,提到CURL,恐怕很多人都会翘起大拇指吧,确实,这个函数库太牛叉了

CURL其实是调用的CURL的lib,随着PHP版本的升高,curl所需的lib版本也随之提高。

关于CURL所必须的类库和安装说明,手册上有详细介绍:

然后在使用的时候也很方便,只需要初始化一下,设置一下postfields或者GET啥啥的,最后exec一下就行了。关键是别忘了close.

例子代码如下:

         $ch = curl_init("http://www.example.com/");
         $fp = fopen("example_homepage.txt", "w");
            
         curl_setopt($ch, CURLOPT_FILE, $fp);
         curl_setopt($ch, CURLOPT_HEADER, 0);
...

阅读全文…
从PHP5.2.10版本开始(现在有PHP5.2.10和5.3两个版本),有None-Thread Safe与Thread Safe两种版本的可供选择,这两种版本有何不同,作为使用者来说又应该如何选择呢?下面聚友将为您讲述。

先从字面意思上理解,None-Thread Safe就是非线程安全,在执行时不进行线程(thread)安全检查;Thread Safe就是线程安全,执行时会进行线程(thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式耗尽系统资源。

再来看PHP的两种执行方式:ISAPI和FastCGI。FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以 FastCGI(无论搭配 IIS 6 或 IIS 7)执行 PHP ,都建议下载、执行 non-thread ...

阅读全文…

php下面Soap出现问题的调试技巧

[ 2014-12-06 15:30:07 | 作者: admin ]


try {

           $arrOptions = array(
           'uri'=>'CheckAPItest',
           'location'=>'http://localhost/ManageWebService/Login.php',
                     'trace'=>true);
           $objSoapClient = new SoapClient(null,$arrOptions);
           echo $objSoapClient->actionLogin("yoekey","1234567","mnxf","adfas","dasfas","chinese-utf8");
}
catch (Exception $e)
{

             echo "<pre>";
             var_dump($objSoapClient->__getLastResponseHeaders());
...

阅读全文…

PHP Xcache 使用笔记

[ 2014-10-21 09:52:44 | 作者: admin ]
  XCache 是一个又快又稳定的 PHP opcode 缓存器. 经过良好的测试并在大流量/高负载的生产机器上稳定运行. 经过(在 Linux 上)测试并支持所有现行 PHP 分支的最新发布版本, 如 PHP_4_3 PHP_4_4 PHP_5_0 PHP_5_1 PHP_5_2 HEAD(6.x), 并支持线程安全/Windows. 与同类 opcode 缓存器相比更胜一筹, 比如能够快速跟进 PHP 版本.下面达内php培训老师为大家分享具体内容。

  直接一点形容Xcahce的2个特点:

  将PHP代码进行编译(表现类似于.NET和Java的编译,内部机制不同),这样可以不用重复读取PHP文件,加速整个程序的运行效率;

  可以缓存数据到内存中,直接可以方便调用(我一直很诟病PHP为什么连Application也没有),例如你的一些不会经常改动的数据,只用一次从数据库读取...

阅读全文…

php文本文件缓存2种方式的效率

[ 2014-09-22 15:06:33 | 作者: admin ]
p.s. 文本文件的效率,终归不如memcache,对于修改较多的数据,还是要用memcache

前言:
在开发MooPHP的过程中,为了寻找更为高效的缓存方式,对两种最常用的缓存方式进行了测试。

PHP常用缓存方式:
第一种,把需要缓存的数据进行处理,形成PHP可以直接执行的文件。在需要缓存数据的时候,通过include方式引入,并使用。
第二种,把需要的数据通过serialize函数序列化后直接保存到文件。在需要使用缓存数据的时候,通过反序列化读入文件内容并复制给需要的变量,然后使用。

测试结果:
通过测试我们发现,第二种也就是serialize缓存数据的方式更加高效。(数据略去,最后提供了文章地址下载,大家可以自行测试)
点击查看 http://www.ccvita.com/311.html

接受别人的建议对该class进行改进 memcache的操作方式
支持 serialize存储
支持 可执行文件两种存储方式