PHP获得中文汉字拼音首字母例子

 更新时间:2016年11月25日 17:22  点击:1882
获取给出汉字中拼音的第一个汉字字母我们可以利用汉字的一个编码来进行判断,下面我们来给大家介绍一个例子,非常的简单好用。

先来看看怎样取得单个汉字的拼音首字母,请看下面这个函数,它支持GBK和UTF8编码:

 代码如下 复制代码

function getfirstchar($s0){  
 $fchar = ord($s0{0});
 if($fchar >= ord("A") and $fchar <= ord("z") )return strtoupper($s0{0});
 $s1 = iconv("UTF-8","gb2312", $s0);
 $s2 = iconv("gb2312","UTF-8", $s1);
 if($s2 == $s0){$s = $s1;}else{$s = $s0;}
 $asc = ord($s{0}) * 256 + ord($s{1}) - 65536;
 if($asc >= -20319 and $asc <= -20284) return "A";
 if($asc >= -20283 and $asc <= -19776) return "B";
 if($asc >= -19775 and $asc <= -19219) return "C";
 if($asc >= -19218 and $asc <= -18711) return "D";
 if($asc >= -18710 and $asc <= -18527) return "E";
 if($asc >= -18526 and $asc <= -18240) return "F";
 if($asc >= -18239 and $asc <= -17923) return "G";
 if($asc >= -17922 and $asc <= -17418) return "H";
 if($asc >= -17417 and $asc <= -16475) return "J";
 if($asc >= -16474 and $asc <= -16213) return "K";
 if($asc >= -16212 and $asc <= -15641) return "L";
 if($asc >= -15640 and $asc <= -15166) return "M";
 if($asc >= -15165 and $asc <= -14923) return "N";
 if($asc >= -14922 and $asc <= -14915) return "O";
 if($asc >= -14914 and $asc <= -14631) return "P";
 if($asc >= -14630 and $asc <= -14150) return "Q";
 if($asc >= -14149 and $asc <= -14091) return "R";
 if($asc >= -14090 and $asc <= -13319) return "S";
 if($asc >= -13318 and $asc <= -12839) return "T";
 if($asc >= -12838 and $asc <= -12557) return "W";
 if($asc >= -12556 and $asc <= -11848) return "X";
 if($asc >= -11847 and $asc <= -11056) return "Y";
 if($asc >= -11055 and $asc <= -10247) return "Z";
 return null;
}

 以上函数返回单个汉字的拼音首字母。

当需要处理中文字符串时,只需要重新写一个函数,用来取得一串汉字的拼音首字母。

 代码如下 复制代码

function pinyin1($zh){
 $ret = "";
    $s1 = iconv("UTF-8","gb2312", $zh);
    $s2 = iconv("gb2312","UTF-8", $s1);
    if($s2 == $zh){$zh = $s1;}
 for($i = 0; $i < strlen($zh); $i++){
  $s1 = substr($zh,$i,1);
  $p = ord($s1);
  if($p > 160){
   $s2 = substr($zh,$i++,2);
   $ret .= getfirstchar($s2);
  }else{
   $ret .= $s1;
  }
 }
 return $ret;
}

上面这个函数就是获取汉字拼音首字母的函数,使用示例:

echo pinyin1('这是中文字符串');

结果输出:ZSZWZFC

补充在 getfirstchar函数中我们有两种写法

第一种是我们上面用到的例子

 代码如下 复制代码

function getfirstchar($s0){  
 $fchar = ord($s0{0});
 if($fchar >= ord("A") and $fchar <= ord("z") )return strtoupper($s0{0});

而另一种是我们使用的数字方法了,也比较简单了。

 代码如下 复制代码

function getFirstChar($string) {
$firstCharOrd = ord(strtoupper($string{0}));
if (($firstCharOrd >= 65 && $firstCharOrd <= 91) || ($firstCharOrd >= 48 && $firstCharOrd <= 57))
return strtoupper($string{0});

我们会看到有少的网站在用户登录一次之后下一次会显示你上次登录的时间了,实现这种php登录显示用户上次登录的时间的方法有很多实现技巧,如直接使用数据库记录或直接使用php cookie记录,下面我们来介绍利用cookie记录用户上次登录了。

创建脚本文件 form_login.php

 

 代码如下 复制代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
    <title>用户登录</title>
 <link rel='stylesheet' type='text/css' href='style.css'>
 <style>
  #showTime{
   width:291px;
   border:1px solid #ccc;
   line-height:23px;
   position:absolute;
   left:500px;
   top:48px;
   text-align:center;
  }
 </style>
</head>
<body>
 
 <?php
 if(isset($_COOKIE['login_now'])){
  echo "<div id='showTime'>";
  echo '您上次登录的时间为:'.$_COOKIE['login_now'];
  echo "</div>";
 }
 ?>
</div> 
<div id="login">
<h2>
 <input id="fnquit" type="button" title="退出登录" />
 <a href="#" class="cur" name="Email">Email登录</a>
 </h2>
 <ul>
  <form id="myForm" name="myForm"  method="post" action='login_time.php'>
   <li>
    <input id="login_type" name="login_type" type="hidden"/>
    <tt>
     <label id="log_type" for="email">Email:</label>
    </tt>
    <div>
     <input id="username" name="username" type="text" class="cell" />
    </div>
   </li>
   <li>
    <tt>
     <label for="password">密 码:</label>
    </tt>
    <div>
     <input id="password" name="password" type="password" class="cell" />
    </div>
   </li>
   <li>
    <div>
     <input id="auto_login" name="auto_loginmberme" type="checkbox"/>
     <label for="auto_login">下次自动登录</label>
    </div>
   </li>
   <li>
    <div>
     <input id="sub" type="submit" value=''/><a href="#" target="_blank" >忘记密码?</a>
    </div>
   </li>
</form>
</ul>
</div>
 
</body>
</html>


创建脚本文件 login_time.php

 代码如下 复制代码

<?php
date_default_timezone_set('Asia/Shanghai');//设置时区为东八区
if(!empty($_POST['username'])){
    $name = $_POST['username'];
    $pwd = $_POST['password'];
    if($name = 'admin' && $pwd = 'admin'){
        setCookie('login_now',date('Y-m-d H:i:s'),time()+3600*24);
        echo "<script>alert('登录成功!');location='login_in.php'</script>";
    }else{
        echo "<script>alert('登录失败!');location='login.php'</script>";
    }
}
?>


创建脚本文件 login_in.php

 

 代码如下 复制代码
<?php
    echo "用户登录时间:".$_COOKIE['login_now']."<br>";
    echo "<a href='form_login.php'>注销返回</a>";
?>

补充:如果是数据库会更好一些因为cookie如果用户把它清除cookie了就没有下载一次了哦。

输出json格式的数据是非常的简单,如果我们希望输入的json数据非常的整洁漂亮有格式我们要怎么来处理呢?下面一聚教程小编就为各位介绍一下吧,希望例子能帮助到各位同学哦。

php直接输出json格式

php直接输出json格式,很多新手有一个误区,以为用echo json_encode($data);这样就是输出json数据了,没错这样输出文本是json格式文本而不是json数据,正确的写法是应该加一句:

 代码如下 复制代码
<?php
 
header('Content-type:text/json');     //这句是重点,它告诉接收数据的对象此页面输出的是json数据;
$json={"name":"yovae","password":"12345"};    //虽然这行数据形式上是json格式,如果没有上面那句的话,它是不会被当做json格式的数据被处理的;
echo $json;
?>



例子

JSON 数据格式化函数

将字符串形式的 JSON 数据格式化为缩进形式。通常使用 json_encode 转换出来的 JSON 串没有缩进,有这个方法就爽多了。
这里我默认使用了 tab 缩进,如果要改成空格,替换变量 $indentStr 即可。

 代码如下 复制代码
/**
 * Indents a flat JSON string to make it more human-readable.
 * @param string $json The original JSON string to process.
 * @return string Indented version of the original JSON string.
 */
function indent ($json) {

$result = '';
$pos = 0;
$strLen = strlen($json);
$indentStr = '';
$newLine = "\n";
$prevChar = '';
$outOfQuotes = true;

for ($i=0; $i<=$strLen; $i++) {

// Grab the next character in the string.
$char = substr($json, $i, 1);
// Are we inside a quoted string?
if ($char == '"' && $prevChar != '\\') {
$outOfQuotes = !$outOfQuotes;
// If this character is the end of an element,
// output a new line and indent the next line.
} else if(($char == '}' || $char == ']') && $outOfQuotes) {
$result .= $newLine;
$pos --;
for ($j=0; $j<$pos; $j++) {
$result .= $indentStr;
}
}
// Add the character to the result string.
$result .= $char;
// If the last character was the beginning of an element,
// output a new line and indent the next line.
if (($char == ',' || $char == '{' || $char == '[') && $outOfQuotes) {
$result .= $newLine;
if ($char == '{' || $char == '[') {
$pos ++;
}
for ($j = 0; $j < $pos; $j++) {
$result .= $indentStr;
}
}
$prevChar = $char;
}

return $result;

}



好了这样输出的的json数据库非常漂亮格式化的形式了哦,在这里我就不给例子了哦,大家不防进入参考一下吧。

判断用户浏览器类型我们只要使用php中的 $_SERVER["HTTP_USER_AGENT"]就可以获取到了,但这样获取到的是非常原始的数据,我们要判断类型需要加上一段strpos($_SERVER['HTTP_USER_AGENT'],"MicroMessenger "就可以了,具体步骤如下图所示。

PHP方法:利用PHP的“_SERVER ”数组“HTTP_USER_AGENT”项,获取该页面的用户代理的信息,来完成这个工作。

 代码如下 复制代码

<?php
echo $_SERVER["HTTP_USER_AGENT"];

?>

【winows/chrome】 输出结果:

Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36
而【ios7/weixin】

下输出结果:

Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/11B554a MicroMessenger/5.0.3

在字符串中可以看出“MicroMessenger ”为微信浏览器版本,所以可以使用“MicroMessenger”参数,来判断访问来源是否为“微信浏览器”。

 代码如下 复制代码

if(strpos($_SERVER['HTTP_USER_AGENT'],"MicroMessenger "))

{

    echo "Hello Weixin";

}

Javascript方法:

function isweixin(){

    var ua = navigator.userAgent.toLowerCase();

    if(ua.match(/MicroMessenger/i)=="micromessenger") {

        return true;

    } else {

        return false;
    }

}

PHP生成二维码例子我们使用到了PHP QR Code类库来生成了,有了它我们生成二维码就像echo a这么简单听,下面来给各位介绍一下吧,希望对各位会带来帮助哦。

以前使用Google提供了较为完善的二维码生成接口,调用API接口很简单,但是现在由于访问google出现问题,需要使用其他的方法生成二维码。

PHP QR Code是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo,

官网地址:http://phpqrcode.sourceforge.net

下载官网提供的类库后,只需要使用phpqrcode.php就可以生成二维码了,当然您的PHP环境必须开启支持GD2。 ‘’

qrlib.php 是完整版,官方的调用实例:

 代码如下 复制代码

QRcode::png('code data text', 'filename.png'); // creates file

QRcode::png('some othertext 1234'); // creates code image and outputs it directly into browser

phpqrcode.php 是合并版,只有一个文件,但生成速度较慢且不太准确。使用方法:

phpqrcode.php提供了一个关键的png()方法。

 代码如下 复制代码

public static function png($text, $outfile=false, $level=QR_ECLEVEL_L, $size=3, $margin=4, 
$saveandprint=false) 
{
    $enc = QRencode::factory($level, $size, $margin);
    return $enc->encodePNG($text, $outfile, $saveandprint=false);
} 参数$text表示生成二位的的信息文本;参数$outfile表示是否输出二维码图片文件,默认否;参数$level表示容错率,也就是有被覆盖的区域还能识别,分别是 L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%); 参数$size表示生成图片大小,默认是3;参数$margin表示二维码周围边框空白区域间距值,默认是4;参数$saveandprint表示是否保存二维码并显示,默认是不保存显示。

include 'phpqrcode.php';
QRcode::png('http://mingzi.111cn.net'); 上面这段代码就输出了这张二维图

 那么实际应用中,我们会在二维码的中间加上自己的LOGO,已增强宣传效果。先使用PHP QR Code生成一张二维码图片,然后再利用php的image相关函数,将事先准备好的logo图片加入到刚生成的原始二维码图片中间,然后重新生成一张新的二维码图片。当然这个时候选择容错率H比较好。

 代码如下 复制代码
<?php
include 'phpqrcode.php'; 
$value = 'http://www.111cn.net'; //二维码内容
$qr_eclevel = 'H';//容错级别
$picsize = 6;//生成图片大小
QRcode::png($value, 'qrcode.png', $qr_eclevel, $picsize);//生成二维码图片
$logo = 'logo.png';//准备好的logo图片
$QR = 'qrcode.png';//已经生成的原始二维码图
 
if ($logo !== FALSE) {
    $QR = imagecreatefromstring(file_get_contents($QR));
    $logo = imagecreatefromstring(file_get_contents($logo));
    $QR_width = imagesx($QR);//二维码图片宽度
    $QR_height = imagesy($QR);//二维码图片高度
    $logo_width = imagesx($logo);//logo图片宽度
    $logo_height = imagesy($logo);//logo图片高度
    $logo_qr_width = $QR_width / 5;
    $scale = $logo_width/$logo_qr_width;
    $logo_qr_height = $logo_height/$scale;
    $from_width = ($QR_width - $logo_qr_width) / 2;
    //重新组合图片并调整大小
    imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, 
    $logo_qr_height, $logo_width, $logo_height);
}
//输出图片
imagepng($QR, 'myxzy.png');
echo '<img src="myxzy.png">';
?>

好了这样就生成了我们要的二维码图片了,今天由于时间有限就不介绍了,下次介绍一个利用它生成网址 wap版的地址哦。

[!--infotagslink--]

相关文章

  • js URLdecode()与urlencode方法支持中文解码

    下面来介绍在js中来利用urlencode对中文编码与接受到数据后利用URLdecode()对编码进行解码,有需要学习的机友可参考参考。 代码如下 复制代码 ...2016-09-20
  • Linux下PHP安装curl扩展支持https例子

    安装curl扩展支持https是非常的重要现在许多的网站都使用了https了,下面我们来看一篇关于PHP安装curl扩展支持https例子吧。 问题: 线上运行的lamp服务器,默认yu...2016-11-25
  • php实现字符串首字母大写和单词首字母大写的方法

    本文实例讲述了php实现字符串首字母大写和单词首字母大写的方法。分享给大家供大家参考。...2015-03-15
  • 关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)

    最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅。首先:用show variables like “%colla%”;show varables like “%char%”;这两条...2015-11-24
  • C#读取中文文件出现乱码的解决方法

    这篇文章主要介绍了C#读取中文文件出现乱码的解决方法,涉及C#中文编码的操作技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • Windows服务器MySQL中文乱码的解决方法

    我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B。...2015-03-15
  • Mysql在debian系统中不能插入中文的终极解决方案

    在debian环境下,彻底解决mysql无法插入和显示中文的问题Linux下Mysql插入中文显示乱码解决方案mysql -uroot -p 回车输入密码进入mysql查看状态如下:默认的是客户端和服务器都用了latin1,所以会乱码。解决方案:mysql>use...2013-10-04
  • linux mint 下mysql中文支持问题

    一.mysql默认不支持中文,它的server和db默认是latin1编码.所以我们要将其改变为utf-8编码,因为utf-8包含了地球上大部分语言的二进制编码 1.关闭mysql服务 sudo /etc/init.d/mysql stop 2.修改mysql配置文件 mysql配...2015-10-21
  • php怎么用拼音 简单的php中文转拼音的实现代码

    小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
  • C# 获取汉字的拼音首字母

    一种是把所有中文字符集合起来组成一个对照表;另一种是依照汉字在Unicode编码表中的排序来确定拼音的首字母。碰到多音字时就以常用的为准(第一种方法中可以自行更改,方法为手动把该汉字移动到对应的拼音首字母队列,我们这里介绍第二种...2020-06-25
  • php获取汉字拼音首字母的方法

    现实中我们经常看到这样的说明,排名不分先后,按姓名首字母进行排序。这是中国人大多数使用的排序方法。那么在php程序中该如何操作呢?下面就分享一下在php程序中获取汉字拼音的首字母的方法,在网上搜到的大多数是有问题的...2015-10-23
  • Java连接数据库oracle中文乱码解决方案

    这篇文章主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-16
  • php使用floor去掉小数点的例子

    floor会产生小数了如果我们不希望有小数我们是可以去除小数点的了,下面一聚教程小编来为各位介绍php使用floor去掉小数点的例子,希望对各位有帮助。 float floor (...2016-11-25
  • Python就将所有的英文单词首字母变成大写

    这篇文章主要给大家介绍了关于Python就将所有的英文单词首字母变成大写的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-12
  • FlashFXP连接站点中文显示乱码解决办法

    FlashFXP是一款常用的服务器客户连接软件了,我们可以通过FlashFXP来上传或下载文件,但有一些朋友使用FlashFXP时碰到中文目录或文件名乱码问题,那么要如何来解决呢?具体就...2016-10-10
  • php中把unicode编码转化为中文

    小编在网上看到最多的就是汉字转换unicode编码了,今天我们看到一个反过来的操作就是把unicode转换成中文了,下面一起来看看 这两天帮别人开发微信平台好友板块,存...2016-11-25
  • php 判断是否是中文/英文/数字示例代码

    复制代码 代码如下: $str='asb天水市12'; if (preg_match("/^[/x7f-/xff]+$/", $str)){ echo '全部是汉字'; }else { echo '不全是汉字'; } /** PHP自带的判断是否是中文, eregi('[^/x00-/x7F]', $str ) //中文 ereg...2013-10-04
  • JavaScript过滤字符串中的中文与空格方法汇总

    这篇文章主要介绍了JavaScript过滤字符串中的中文与空格方法汇总 的相关资料,需要的朋友可以参考下...2016-03-09
  • php中文转换成拼音代码

    <?php教程 function cn2pinyin($_string, $_code='gb2312') { $_datakey = "a|ai|an|ang|ao|ba|bai|ban|bang|bao|bei|ben|beng|bi|bian|biao|bie|bin|bing|b...2016-11-25
  • three.js显示中文字体与tween应用详析

    这篇文章主要给大家介绍了关于three.js显示中文字体与tween应用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-04