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的原理差不多,這里