当前位置: 编程技术>php
本页文章导读:
▪PHP 函数 isset、array_key_exists 的差异 PHP判断某数组的索引值是否存在,一般会使用 isset 和 array_key_exists 两种方法。
例如:
<?php
isset($a['key'])
array_key_exists('key', $a)
array_key_exists函数会确切地告知:数组是否存在某个键,而 iss.........
▪ 学习php字符串编码的转换与判断 在php中经常需要实现GBK 和 UTF-8 编码转换,比如像 PHP 中的 json_encode 本身根本不支持 GBK 形式的编码。
有两个库函数能够支持编码的转换,通常能够想到的就是 iconv 函数,你如:
<?php
iconv.........
▪ PHP 双引号和单引号的用法分析 通过 PHP 过滤字符串中的换行符,通常会这样操作:
<?php
$out = str_replace(array('\r\n', '\r', '\n'), '', $out);
PHP 提供三种定义字符串的方法:单引号、双引号、本地文档(英文叫做 here document 或.........
[1]PHP 函数 isset、array_key_exists 的差异
来源: 互联网 发布时间: 2013-12-24
PHP判断某数组的索引值是否存在,一般会使用 isset 和 array_key_exists 两种方法。
例如:
<?php isset($a['key']) array_key_exists('key', $a)
array_key_exists函数会确切地告知:数组是否存在某个键,而 isset 则只是返回键值是否为 null 的状态。
假设给定下面的数组:
$a = array('key1' => '123', 'key2' => null);
使用这两个方法判断键值存在情况,结果如下:
<?php isset($a['key1']); // true array_key_exists('key1', $a); // true isset($a['key2']); // false array_key_exists('key2', $a); // true
有关这二个函数的执行效率:
从 PHP 引擎本身来说,底层都是 C 语言的实现,array_key_exists 和 isset 应该都是很快的。
如果运算次数上千次上万次,这种情况下 isset 的性能应该更为显著。
[2] 学习php字符串编码的转换与判断
来源: 互联网 发布时间: 2013-12-24
在php中经常需要实现GBK 和 UTF-8 编码转换,比如像 PHP 中的 json_encode 本身根本不支持 GBK 形式的编码。
有两个库函数能够支持编码的转换,通常能够想到的就是 iconv 函数,你如:
<?php iconv('GBK', 'UTF-8//IGNORE', '芒果小站'); // 将字符串由 GBK 编码转换为 UTF-8 编码
但 iconv 只能解决编码预先知道的情况,如果字符串编码未知,则需要先探测其编码,这时可能会用到 mb_string 扩展库:
<?php mb_detect_encoding('');
可是 mb_detect_encoding 存在一个硬伤,经常出现判断不准确的情况。
可以参考如下的解决方法:
<?php // 使用 iconv 转换并判断是否等值,效率不高 function is_utf8 ($str) { if ($str === iconv('UTF-8', 'UTF-8//IGNORE', $str)) { return 'UTF-8'; } } // 多种编码的情况 function detect_encoding ($str) { foreach (array('GBK', 'UTF-8') as $v) { if ($str === iconv($v, $v . '//IGNORE', $str)) { return $v; } } }
通过以上方式得到字符串编码信息后,即可使用 iconv 或 mb_convert_encoding 进行编码转换了。
您可能感兴趣的文章:
php判断字符串编码是否为utf8的函数举例
php获取字符串的编码格式的函数
php判断字符编码的二个方法
php 自动检测内容编码并转换的代码
自动检测内容中的编码并进行转换的函数
php编码转换函数(自动转换字符集支持数组转换)
php改变编码的函数iconv
[3] PHP 双引号和单引号的用法分析
来源: 互联网 发布时间: 2013-12-24
通过 PHP 过滤字符串中的换行符,通常会这样操作:
<?php $out = str_replace(array('\r\n', '\r', '\n'), '', $out);
PHP 提供三种定义字符串的方法:单引号、双引号、本地文档(英文叫做 here document 或者 heredoc)。
单引号:
使用单引号是最高效的方法,因为 PHP 不会检查单引号字符串中的内置变量和转义序列,需要转义的字符只有反斜杠和单引号本身。
双引号:
会检查内置变量和转义序列,但不能识别转义的单引号。
这也正说明了开始那段代码的错误之处,正确的做法是使用双引号来定义换行的转义序列:
<?php $out = str_replace(array("\r\n", "\r", "\n"), '', $out); heredoc:
检查所有的内置变量和转义序列,双引号无需转义。
例如:
<?php echo <<<EOT this is a "here document" example. just for test. EOT;
最新技术文章: