PHPのASCⅡコード

WBOY
WBOYオリジナル
2016-06-23 14:34:581194ブラウズ

はじめに: これは、php の ASCⅡ コードの詳細ページです。php に関連する知識、スキル、経験、およびいくつかの php ソース コードを紹介します。

class='pingjiaF' Frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=336623'scroll='no'>

私は探すのに多くの時間を費やしました以前は中国語を ASCII コードに変換できる PHP コードでしたが、UTF-8 は単なる ASCII の一種です。その後、マニュアルで見つけて一括変換に変更し、よく使われるASCIIコード復元文字も追加しました。このコードは少し前から書かれていますが、投稿する時間がありませんので、ご覧ください。このクラスは単なる中国語変換ではありません

class ascii
{

functionデコード ( $str )
{
preg_match_all ( " /(d{2,5})/ " , $str , $a ) ;
$a = $a [ 0 ] ;
foreach ( $a as $dec )
{
if ( $dec < 128 )
{
$utf .= chr ( $dec ) ;
}
else if ( $dec < 2048 )
{
$utf .= chr ( 192 + (( $dec - ( $dec % 64 )) / 64 )) ;
$utf .= chr ( 128 + ( $dec % 64 )) ;
}
else
{
$utf .= chr ( 224 + (( $dec - ( $dec % 4096 )) / 4096 )) ;
$utf .= chr ( 128 + (( $dec % 4096 ) - ( $dec % 64 )) / 64 )) ;
$utf .= chr ( 128 + ( $dec % 64 )) ;
}
}
return $utf ;

関数 encode ( $c )
$a = 0 ; a < $ len )
{
$ud = 0 ;
if ( ord ( $c { $a }) >= 0 && ord ( $c { $a }) <= 127 )
{
$ud = ord ( $c { $a }) ;
$a += 1 ;
else if ( ord ( $c { $a }) >= 192 && ord ( $c { $a }) <= 223 )
{
$ud = ( ord ( $c { $a }) - 192 ) * 64 + ( ord ( $c { $a + 1 }) - 128 ) ; else if ( ord ( $c { $a }) >= 224 && ord ( $c { $a }) <= 239 )
{
$ud = ( ord ( $c { $a }) - 224 ) * 4096 + ( ord ( $c { $a + 1 }) - 128 ) * 64 + ( ord ( $c { $a + 2 }) - 128 ) ;
$a += 3 ; ord ( $c { $a }) >= 240 && ord ( $c { $a }) <= 247 )
{
$ud = ( ord ( $c { $a }) - 240 ) * 262144 + ( ord ( $c { $a + 1 }) - 128 ) * 4096 + ( ord ( $c { $a + 2 }) - 128 ) * 64 + ( ord ( $c { $a + 3 }) - 128 ) ;
$ a += 4 ;
}
else if ( ord ( $c { $a }) >= 248 && ord ( $c { $a }) {
$ud = ( ord ( $c { $a }) - 248 ) * 16777216 + ( ord ( $c { $a + 1 }) - 128 ) * 262144 + ( ord ( $c { $a + 2 }) - 128 ) * 4096 + ( ord ( $c { $a + 3 }) - 128 ) * 64 + ( ord ( $c { $a + 4 }) - 128 ) ;
$a += 5 ; $c { $a }) >= 252 && ord ( $c { $a }) {
$ud = ( ord ( $c { $a }) - 252 ) * 1073741824 + ( ord ( $c { $a + 1 }) - 128 ) * 16777216 + ( ord ( $c { $a + 2 }) - 128 ) * 262144 + ( ord ( $c { $a + 3 }) - 128 ) * 4096 + ( ord ( $c { $a + 4 }) - 128 ) * 64 + ( ord ( $c { $a + 5 }) - 128 ) ;
$a += 6 ; ( $c { $a }) >= 254 && ord ( $c { $a }) <= 255 )
{ //エラー
$ud = false ;
}
$scill .= " $ud ; " ;
}
return $scill ;
}



最近、ある兄弟が技術グループで次のような質問をしました:

自己増加 ID を

A001――A999

B001―― B999

...

Z001--Z999,

私の当初のアイデアは、ループ内の A--Z 文字を判断するために if 条件を使用することでした

しかし、これには大きな欠点があり、コードは非常に厳格に見えます。冗長ですが、26 個の英語文字は 26 個の判決に相当します。

その後、誰かが文字を ASCII コードに変更することを提案しました。たまたま A-Z が ASCII コードの 65--91 に等しいためです。

この方法では、ID をフォーマットするのに必要な関数は 1 つだけです。

function format_string( $ num ) {

$tag = Floor (( $num - 1 ) / 999 );

// パート 1 は asc コードを計算します

$part1 = 65 + $tag

// パート 2 は数値部分を計算します ;

$part2 = $num - 999 * $tag ;

$a = strlen ( $part2 );

for ( $i = 0 ; $i {

$b .= 0 ;

$str = chr ( $part1 ) . $b . $str ;

for ( $i = 1 ; $i + + )

{

echo $ str = format_string( $i ) . '





「PHP の ASCⅡ コード」に関するその他の記事

J2EE が大好きで、Java Michael Jackson Video Station JSON オンライン ツールをフォローしています

http://biancheng.dnbcw.info/php/336623.html pageNo:10
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:php fckeditor設定次の記事:php fckeditor設定