ホームページ >バックエンド開発 >PHPチュートリアル >PHPのASCⅡコード
はじめに: これは、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