phpconvert
㈠ php convert_cyr_string()函数讲解
PHP
convert_cyr_string()
函数
实例
把字符串由一种字符集转换成另一种:
<?php
$str
=
"Hello
world!
æøå";
echo
$str
.
"<br>";
echo
convert_cyr_string($str,'w','a');
?>
定义和用法
convert_cyr_string()函数把字符串由一种
Cyrillic
字符集转换成另一种。
被支持的
Cyrillic
字符集是:
k
-
koi8-r
w
-
windows-1251
i
-
iso8859-5
a
-
x-cp866
d
-
x-cp866
m
-
x-mac-cyrillic
注释:
该函数是二进制安全的。
语法
convert_cyr_string(
_string,from,to_
)
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接
您可能感兴趣的文章:PHP
crypt()函数的用法讲解phpinfo无法显示的原因及解决办法PHP
echo()函数讲解PHP
crc32()函数讲解PHP
count_chars()函数讲解PHP安装memcache扩展的步骤讲解PHP配置ZendOpcache插件加速PHP
convert_uudecode()函数讲解PHP安装BCMath扩展的方法php
curl简单采集图片生成base64编码(并附curl函数参数说明)
㈡ PHP问题,file/iconv/mb_convert_encoding等函数
如果服务器是WINDOWS修改PHP.INI可以解决问题,如果服务器是LINUX、UNIX那就需要重新编译PHP。
你购买的空间,可能不让你修改PHP.INI的。
补充:
你究竟是什么环境呀?
file不需要扩展支持的,这样的函数应该可以直接使用,你看看错误信息,确定问题所在。
iconv需要扩展,如果是UNIX需要编译时增加--with-iconv[=DIR]选项,如果是WINDOWS需要iconv.dll。
补充:
非常佩服楼主的理解能力,难道美国的都是LINUX或者WINDOWS吗,难道这个函数能否执行还与国家有关吗。
另外,你说file函数不支持,真没想到你说的不支持其实是不支持url_poen,url_open是PHP.INI的设置,UNIX和WINDOWS设置相同,祝你好运。
㈢ PHP mb_convert_encoding 获取字符串编码类型实现代码
后来又在手册上找到了is_utf8函数,这样,再结合iconv函数,我的问题就解决了。下面帖出这个函数:
复制代码
代码如下:
function
is_utf8($string)
{
return
preg_match('%^(?:
[\x09\x0A\x0D\x20-\x7E]
#
ASCII
|
[\xC2-\xDF][\x80-\xBF]
#
non-overlong
2-byte
|
\xE0[\xA0-\xBF][\x80-\xBF]
#
excluding
overlongs
|
[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}
#
straight
3-byte
|
\xED[\x80-\x9F][\x80-\xBF]
#
excluding
surrogates
|
\xF0[\x90-\xBF][\x80-\xBF]{2}
#
planes
1-3
|
[\xF1-\xF3][\x80-\xBF]{3}
#
planes
4-15
|
\xF4[\x80-\x8F][\x80-\xBF]{2}
#
plane
16
)*$%xs',
$string);
}
//
function
is_utf8
如果想深入研究,建议看下PHP手册上的“Multibyte
String
Functions”这一部分的内容。
㈣ php 里 mb_convert_encoding()函数,
不过英文一般不会存在编码问题,只有中文数据才会有这个问题。比如你用Zend Studio或Editplus写程序时,用的是gbk编码,如果数据需要入数据库,而数据库的编码为utf8时,这时就要把数据进行编码转换,不然进到数据库就会变成乱码。
mb_convert_encoding的用法见官方:
http://cn.php.net/manual/zh/function.mb-convert-encoding.php
做一个GBK To UTF-8
复制代码代码如下:
<?php
header("content-Type: text/html; charset=Utf-8");
echo mb_convert_encoding("你系我的友仔", "UTF-8", "GBK");
?>
再来个GB2312 To Big5
复制代码代码如下:
<?php
header("content-Type: text/html; charset=big5");
echo mb_convert_encoding("你是我的朋友", "big5", "GB2312");
?>
不过要使用上面的函数需要安装但是需要先enable mbstring 扩展库。
PHP中的另外一个函数iconv也是用来转换字符串编码的,与上函数功能相似。
下面还有一些详细的例子:
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)
用法:
string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )
需要先enable mbstring 扩展库,在 php.ini里将; extension=php_mbstring.dll 前面的 ; 去掉
mb_convert_encoding 可以指定多种输入编码,它会根据内容自动识别,但是执行效率比iconv差太多;
string iconv ( string in_charset, string out_charset, string str )
注意:第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT 和 //IGNORE,其中 //TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符,//IGNORE 会忽略掉不能转化的字符,而默认效果是从第一个非法字符截断。
Returns the converted string or FALSE on failure.
使用:
发现iconv在转换字符”—”到gb2312时会出错,如果没有ignore参数,所有该字符后面的字符串都无法被保存。不管怎么样,这个”—”都无法转换成功,无法输出。 另外mb_convert_encoding没有这个bug.
一般情况下用 iconv,只有当遇到无法确定原编码是何种编码,或者iconv转化后无法正常显示时才用mb_convert_encoding 函数.
from_encoding is specified by character code name before conversion. it can be array or string - comma separated enumerated list. If it is not specified, the internal encoding will be used.
/* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str to UCS-2LE */
$str = mb_convert_encoding($str, “UCS-2LE”, “JIS, eucjp-win, sjis-win”);
/* “auto” is expanded to “ASCII,JIS,UTF-8,EUC-JP,SJIS” */
$str = mb_convert_encoding($str, “EUC-JP”, “auto”);
例子:
复制代码代码如下:
$content = iconv("GBK", "UTF-8", $content);
$content = mb_convert_encoding($content, "UTF-8","GBK");
PHP中使用mb_convert_encoding转码的小陷阱
在php程序中使用mb_convert_encoding()方法进行字符编码转换大家都很熟悉了,平时也在大量的使用。而且在一般情况下该方法也表现的足够好,值得表扬。但在一个项目中我们需要使用它进行UTF8到GBK的转换,在转换一些特殊字符时发现了一个不大不小的问题。具体表现为mb把在utf8可编码的字符而在gbk中不可编码的字符都转成了\0x00\0x80,这样就导致转换后的gbk字符是有问题的。
在我们的意识中,在进行字符编码转换的过程中,如果遇到目标编码不可表现的字符,转码程序应该做的是舍弃这种字符,这样虽然丢失了部分数据,但不会导致转码的字符序列不可用。不清楚mb为什么要使用上述方式而不是舍弃方式。
临时的解决方式是对转码后的字符串序列进行过滤,过滤掉所有\x00\80的字符;又或者在转义之前对utf8的字符串进行过滤,过滤掉ut8可表示而gbk不可表示的所有字符,从实现难度上来讲,第一种过滤方式比较容易做到。
㈤ PHP编写一个函数,convert()。
1、php自带函数strrev();可以反转字符串
2、这是一个自定义函数
<?php
functionconvert($str){
$ret='';
$len=strlen($str);
for($i=0;$i<$len;$i++){
$ret=$str{$i}.$ret;
}
return$ret;
}
$str="abcedfsasfasf";
echo$str;
echo'<br/>';
echoconvert($str);
?>
㈥ 求将十进制数转为十六进制数的JS或PHP代码
JS十进制转其他进制代码如下var m = 10;document.write(m.toString(2) + "<br>"); // 显示为 1010 二进制document.write(m.toString(8) + "<br>"); // 显示为 12 8进制document.write(m.toString(10) + "<br>"); // 显示为 10 十进制document.write(m.toString(16) + "<br>"); // 显示为 a, 十六进制 php转换函数如下:bindec() — 二进制转换为十进制
decbin() — 十进制转换为二进制
dechex() — 十进制转换为十六进制
decoct() — 十进制转换为八进制
hexdec() — 十六进制转换为十进制
octdec() — 八进制转换为十进制
base_convert()– 在任意进制之间转换数字使用说明如下: 一,十进制(decimal system)转换函数说明
1,十进制转二进制 decbin() 函数,如下实例echo decbin(12); //输出 1100
echo decbin(26); //输出 11010
decbin
(PHP 3, PHP 4, PHP 5)
decbin -- 十进制转换为二进制
说明
string decbin ( int number )
返回一字符串,包含有给定 number 参数的二进制表示。所能转换的最大数值为十进制的 4294967295,其结果为 32 个 1 的字符串。2,十进制转八进制 decoct() 函数echo decoct(15); //输出 17
echo decoct(264); //输出 410
decoct
(PHP 3, PHP 4, PHP 5)
decoct -- 十进制转换为八进制
说明
string decoct ( int number )
返回一字符串,包含有给定 number 参数的八进制表示。所能转换的最大数值为十进制的 4294967295,其结果为 "37777777777"。3,十进制转十六进制 dechex() 函数echo dechex(10); //输出 a
echo dechex(47); //输出 2f
dechex
(PHP 3, PHP 4, PHP 5)
dechex -- 十进制转换为十六进制
说明
string dechex ( int number )
返回一字符串,包含有给定 number 参数的十六进制表示。所能转换的最大数值为十进制的 4294967295,其结果为 "ffffffff"。二,二进制(binary system)转换函数说明
1,二进制转十六制进 bin2hex() 函数$binary = "11111001";
$hex = dechex(bindec($binary));
echo $hex;//输出f9
bin2hex
(PHP 3 >= 3.0.9, PHP 4, PHP 5)
bin2hex -- 将二进制数据转换成十六进制表示
说明
string bin2hex ( string str )
返回 ASCII 字符串,为参数 str 的十六进制表示。转换使用字节方式,高四位字节优先。2,二进制转十制进 bindec() 函数echo bindec(\\\'110011\\\'); //输出 51
echo bindec(\\\'000110011\\\'); //输出 51
echo bindec(\\\'111\\\'); //输出 7
bindec
(PHP 3, PHP 4, PHP 5)
bindec -- 二进制转换为十进制
说明
number bindec ( string binary_string )
返回 binary_string 参数所表示的二进制数的十进制等价值。
bindec() 将一个二进制数转换成 integer。可转换的最大的数为 31 位 1 或者说十进制的 2147483647。PHP 4.1.0 开始,该函数可以处理大数值,这种情况下,它会返回 float 类型。三,八进制(octal system)转换函数说明
八进制转十进制 octdec() 函数echo octdec(\\\'77\\\'); //输出 63
echo octdec(decoct(45)); //输出 45
octdec
(PHP 3, PHP 4, PHP 5)
octdec -- 八进制转换为十进制
说明
number octdec ( string octal_string )
返回 octal_string 参数所表示的八进制数的十进制等值。可转换的最大的数值为 17777777777 或十进制的 2147483647。PHP 4.1.0 开始,该函数可以处理大数字,这种情况下,它会返回 float 类型。四,十六进制(hexadecimal)转换函数说明
十六进制转十进制 hexdec()函数var_mp(hexdec("See"));
var_mp(hexdec("ee"));
// both print "int(238)"
var_mp(hexdec("that")); // print "int(10)"
var_mp(hexdec("a0")); // print "int(160)"
hexdec
(PHP 3, PHP 4, PHP 5)
hexdec -- 十六进制转换为十进制
说明
number hexdec ( string hex_string )
返回与 hex_string 参数所表示的十六进制数等值的的十进制数。hexdec() 将一个十六进制字符串转换为十进制数。所能转换的最大数值为 7fffffff,即十进制的 2147483647。PHP 4.1.0 开始,该函数可以处理大数字,这种情况下,它会返回 float 类型。
hexdec() 将遇到的所有非十六进制字符替换成 0。这样,所有左边的零都被忽略,但右边的零会计入值中。五,任意进制转换 base_convert() 函数$hexadecimal = \\\'A37334\\\';
echo base_convert($hexadecimal, 16, 2);//输出 101000110111001100110100
base_convert
(PHP 3 >= 3.0.6, PHP 4, PHP 5)base_convert -- 在任意进制之间转换数字
说明
string base_convert ( string number, int frombase, int tobase )
返回一字符串,包含 number 以 tobase 进制的表示。number 本身的进制由 frombase 指定。frombase 和 tobase 都只能在 2 和 36 之间(包括 2 和 36)。高于十进制的数字用字母 a-z 表示,例如 a 表示 10,b 表示 11 以及 z 表示 35。
㈦ 浅析PHP中的字符串编码转换(自动识别原编码)
本篇文章是对PHP中字符串编码转换的实现代码进行了详细的分析介绍,需要的朋友参考下
复制代码
代码如下:
/**
*
对数据进行编码转换
*
@param
array/string
$data
数组
*
@param
string
$output
转换后的编码
*/
function
array_iconv($data,$output
=
'utf-8')
{
$encode_arr
=
array('UTF-8','ASCII','GBK','GB2312','BIG5','JIS','eucjp-win','sjis-win','EUC-JP');
$encoded
=
mb_detect_encoding($data,
$encode_arr);//自动判断编码
if
(!is_array($data))
{
return
mb_convert_encoding($data,
$output,
$encoded);
}
else
{
foreach
($data
as
$key=>$val)
{
if(is_array($val))
{
$data[$key]
=
array_iconv($val,
$input,
$output);
}
else
{
$data[$key]
=
mb_convert_encoding($data,
$output,
$encoded);
}
}
return
$data;
}
}
㈧ php convert 合成gif图片
都可以的。用PS动画就行了。
㈨ PHP代码优化的问题
其实你这个是执行速度最快的,只是些的时候看起来麻烦而已,一般人可能这样写:
<?php
$sqlzd='id,xxxingming,xxdi,xxlianxifangshi,xxzhanghao,xxjiuzhanghao,xxsulv,xxshigongbiaoshi,xxchanpinmingchen,xxyewushuxing,xxdianshizhanghao,xxpaidanriqi,xxbeizhu,xxcaozuoleixing,xxgongdanhao,xxjierufangshi,xxziyuanleixing,xxzwzu,xxzwrenyuan';
$sql="INSERTINTOzaitugongdan(".$sqlzd.")VALUES(";
for($i=o;$i<=17;$i++)
$sql.="'".addslashes(mb_convert_encoding($row[i],'UTF-8','GBK'))."',";
//删除最后一个多余的逗号,再添加反括号
$sql=substr($sql,0,length($sql)-1).")";
$link->query($sql);
?>
㈩ php自定义函数参数function _get($var, $default = null, $convert_fun='')的 $convert_fun='' 看不懂
函数_get的功能是:用来设置、验证外部变量的;
从字面上理解,$convert_fun传递的是一个函数名,$default的变量得默认值;
1.但变量在GET中被传递时:如果它有值,并且需要函数$convert_fun验证的话,则返回验证后的结果,如果不需要验证则直接返回变量get 的值;
2.如果get变量无值,则返回$default默认值;
这个函数写得还是非常实用的;
函数_get 原型 function _get($var, $default = null, $convert_fun='')
第一个参数$var 必须要带实参;
第二个、第三个可以省略,因为他们有默认值;$convert_fun='' 表示;默认没有转移或者验证函数;
_get('id'); //这样可以直接返回id;
_get('id',10); //当id为没有在通过_GET方式传递时候,函数返回10;
_get('id',1,'checking'); //当有_GET['id']时,执行函数checking();
function checking($val) {
$sql ="";
//数据库等等 ,之类的验证都可以
}
函数_cookie的原理差不多,这里