php函数中文
❶ php的GD库imagettftext函数解决中文乱码问题
本文实例讲述了php的GD库imagettftext函数解决中文乱码问题的方法。分享给大家供大家参考。具体如下:
使用imagettftext写中文时,常出现乱码问题。解决方法是将中文字符串转为utf-8格式即可。具体代码如下(文件格式为gb2312):
复制代码
代码如下:<?php
$im
=
imagecreatefromjpeg('./1.jpg');
$w
=
imagesx($im);
$h
=
imagesy($im);
$green
=
imagecolorallocate($im,50,100,200);
$str
=
iconv('gb2312','utf-8','幸福就在身边');//解决乱码问题
imagettftext($im,16,0,200,100,$green,'./simhei.ttf',$str);
header("content-type:
image/jpeg");
imagejpeg($im);
imagedestroy($im);
?>
❷ php函数随机文字
把你函数中的
string
函数换成
mbstring
的函数,就应该不会出乱码了。
比如
strlen
换成
mb_strlen。
具体用到什么函数不知道,所已不能作具体回答。
还有,可以用程序随机生成汉字字串:
<?php
function
getChineseChar()
{
$unidec
=
rand(hexdec('4e00'),
hexdec('9fa5'));
$unichr
=
''
.
$unidec
.
';';
$zhcnchr
=
mb_convert_encoding($unichr,
"UTF-8",
"HTML-ENTITIES");
return
$zhcnchr;
}
function
getRandStr($len)
{
$str
=
'';
for($i=0;$i<$len;$i++)
{
$str
=
$str
.
getChineseChar();
}
return
$str;
}
echo
getRandStr(4);
?>
不过,如果是用于验证,不推荐这种做法,因为随机生成的汉字大多比较生僻,很难输入。
❸ php如何分割中文字符串
php分割中文字符串,如果直接用PHP函数“str_split”来分割,会出现乱码,因为中文字符长度和英文字符长度是不一样的。
所以,可以建立新的函数先把字符转成ASCII值,接着通过判断不同字符的长度来正确分割中文字符串,把结果存入数组,最后再用PHP函数“join”在字符间插入百分号。
具体参考代码如下:
<?php
functionstr_split_utf8($str){
$split=1;
$array=array();
for($i=0;$i<strlen($str)){
$value=ord($str[$i]);
if($value>127){
if($value>=192&&$value<=223)$split=2;
elseif($value>=224&&$value<=239)$split=3;
elseif($value>=240&&$value<=247)$split=4;
}else{
$split=1;
}
$key=NULL;
for($j=0;$j<$split;$j++,$i++){
$key.=$str[$i];
}
array_push($array,$key);
}
return$array;
}
$string="网络知道www..cn";
$arr1=str_split_utf8($string);
echojoin("%",$arr1);
?>
❹ 什么是PHP的函数
PHP 用户定义函数
除了内建的 PHP 函数,我们可以创建我们自己的函数。
函数是可以在程序中重复使用的语句块。
页面加载时函数不会立即执行。
函数只有在被调用时才会执行。
在 PHP 创建用户定义函数
用户定义的函数声明以关单 "function" 开头:
语法
function functionName() {
被执行的代码;
}
注释:函数名能够以字母或下划线开头(而非数字)。
注释:函数名对大小写不敏感。
提示:函数名应该能够反映函数所执行的任务。
在下面的例子中,我们创建名为 "writeMsg()" 的函数。打开的花括号({)指示函数代码的开始,而关闭的花括号(})指示函数的结束。此函数输出 "Hello world!"。如需调用该函数,只要使用函数名即可:
<?php
function writeMsg() {
echo "Hello world!";
}
writeMsg(); // 调用函数
?>
PHP 函数参数
可以通过参数向函数传递信息。参数类似变量。
参数被定义在函数名之后,括号内部。您可以添加任意多参数,只要用逗号隔开即可。
下面的例子中的函数有一个参数($fname)。当调用 familyName() 函数时,我们同时要传递一个名字(例如 Bill),这样会输出不同的名字,但是姓氏相同:
<?php
function familyName($fname) {
echo "$fname Zhang.<br>";
}
familyName("Li");
familyName("Hong");
familyName("Tao");
familyName("Xiao Mei");
familyName("Jian");
?>
下面的例子中的函数有两个参数($fname 和 $year):
<?php
function familyName($fname,$year) {
echo "$fname Zhang. Born in $year <br>";
}
familyName("Li","1975");
familyName("Hong","1978");
familyName("Tao","1983");
?>
PHP 默认参数值
下面的例子展示了如何使用默认参数。如果我们调用没有参数的 setHeight() 函数,它的参数会取默认值:
<?php
function setHeight($minheight=50) {
echo "The height is : $minheight <br>";
}
setHeight(350);
setHeight(); // 将使用默认值 50
setHeight(135);
setHeight(80);
?>
PHP 函数 - 返回值
如需使函数返回值,请使用 return 语句:
<?php
function sum($x,$y) {
$z=$x+$y;
return $z;
}
echo "5 + 10 = " . sum(5,10) . "<br>";
echo "7 + 13 = " . sum(7,13) . "<br>";
echo "2 + 4 = " . sum(2,4);
?>
❺ PHP preg_match 函数怎么匹配中文
<?php
//示例代码:
$str='hello这里是phppreg_match正则匹配演示';
//UTF8编码:正则表达式匹配中文;
if(preg_match('/[x{4e00}-x{9fa5}]+/u',$str)){
echo'匹配成功,有中文字符串!';
}else{
echo'没有中文字符串。';
}
//GB2312,GBK编码:正则表达式匹配中文;
if(preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str)){
echo'匹配成功,有中文字符串!';
}else{
echo'没有中文字符串。';
}
?>
❻ php有木有 直接显示星期几(中文)的函数 我写的这两种都感觉好别扭
1.显示中文星期的函数:
<?php
date_default_timezone_set('asia/shanghai');
echo '今天是'. date('Y年m月d日 '). ' 星期' . cnWeek(date('Y-M-d'));
function cnWeek($date)
{
$arr = array('天','一','二','三','四','五','六');
return $arr[date('w',strtotime($date))];
}
?>
2.让时间一直走,一般使用javascript来完成,以下是代码:
<html>
<head>
<title>当前时间js脚本,sky整理收集,站长特效欢迎您。</title>
</head>
<script language='JavaScript'>
var timerID = null;
var timerRunning = false;
function stopclock ()
{
if(timerRunning)
clearTimeout(timerID);
timerRunning = false;
}
function startclock ()
{
stopclock();
showtime();
}
function showtime () {
var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds()
var timeValue = "" +((hours >= 12) ? "下午 " : "上午 " )
timeValue += ((hours >12) ? hours -12 :hours)
timeValue += ((minutes < 10) ? ":0" : ":") + minutes
timeValue += ((seconds < 10) ? ":0" : ":") + seconds
document.clock.thetime.value = timeValue;
timerID = setTimeout("showtime()",1000);
timerRunning = true;
}
</script>
<body onload=startclock()>
<form name="clock">
<input name="thetime" style="font-size: 9pt;color:#000000;border:0px none; " size="12" />
</form>
</body>
</html>
❼ php "str_split"函数分割中文字符串乱码问题……
一个解决方案.
测试发现,preg_split对中文(多字节)的分隔符处理可能真的存在问题.
原因可能是正则匹配时不能正常分隔一个多字节字符(猜测).
但我实验用半角(英文)的分隔符就工作得很好.
于是
我在处理待分隔的文本前先对文本进行替换,把中文的句点和逗号都替换成英文半角的.然后再使用preg_split,暂时发现工作得不错.
以下是我的测试代码.
<?php
$test = <<<EOF
记者从有关人士处获悉,嫦娥二号发射的各项准备工作全部就绪,昨日经专家组评审,卫星、火箭、发射场、测控等系统均情况正常,具备发射条件。今天起,西昌卫星发射中心的加注手将为火箭加注燃料。
据一位航天专家介绍,因为地球和月球都在转动的缘故,所以地月之间的最佳交汇点每年仅出现3次,而这3次便是发射探月卫星的最佳节点,经过观测,今年3次的出现时间分别为10月1日、10月2日和10月3日,而最佳发射窗口则是1日晚7时,2日晚8时和3日晚10时,其中国庆日晚7时为佳中之佳。
针对媒体称10月1日发射窗口时间为晚6时59分57秒,该专家告诉本报记者,早3秒并非提前3秒发射,而是将这3秒时间预留出来,作为现场指挥员在发送倒计时口令的缓冲时间。(记者万强)
EOF;
//$input = $_POST[$content]; //........................获取要分割的字符串
$test = str_replace(",",',',$test);
$test = str_replace("。",'.',$test);
$mode="/[,|.]/s"; //......................用“逗号” 和 “句号” 分割字符串
$output = preg_split($mode,$test,-1);
print_r($output);
?>
============
楼主不防试试,我的代码是gb2312的字串.
经测试在,字符串为UTF8时,也可以正常工作.
❽ PHP自定义函数获取汉字首字母的方法
本文实例讲述了PHP自定义函数获取汉字首字母的方法。分享给大家供大家参考,具体如下:
首字母很重要,可以进行排序使用。
城市列表等等。
<?php
/*
*
Created
on
2016-12-1
*/
function
getFirstCharter($str)
{
if
(empty($str))
{
return
'';
}
$fchar
=
ord($str{0});
if
($fchar
>=
ord('A')
&&
$fchar
<=
ord('z'))
return
strtoupper($str{0});
$s1
=
iconv('UTF-8',
'gb2312',
$str);
$s2
=
iconv('gb2312',
'UTF-8',
$s1);
$s
=
$s2
==
$str
?
$s1
:
$str;
$asc
=
ord($s{0})
*
256
+
ord($s{1})
-
65536;
if
($asc
>=
-20319
&&
$asc
<=
-20284)
return
'A';
if
($asc
>=
-20283
&&
$asc
<=
-19776)
return
'B';
if
($asc
>=
-19775
&&
$asc
<=
-19219)
return
'C';
if
($asc
>=
-19218
&&
$asc
<=
-18711)
return
'D';
if
($asc
>=
-18710
&&
$asc
<=
-18527)
return
'E';
if
($asc
>=
-18526
&&
$asc
<=
-18240)
return
'F';
if
($asc
>=
-18239
&&
$asc
<=
-17923)
return
'G';
if
($asc
>=
-17922
&&
$asc
<=
-17418)
return
'H';
if
($asc
>=
-17417
&&
$asc
<=
-16475)
return
'J';
if
($asc
>=
-16474
&&
$asc
<=
-16213)
return
'K';
if
($asc
>=
-16212
&&
$asc
<=
-15641)
return
'L';
if
($asc
>=
-15640
&&
$asc
<=
-15166)
return
'M';
if
($asc
>=
-15165
&&
$asc
<=
-14923)
return
'N';
if
($asc
>=
-14922
&&
$asc
<=
-14915)
return
'O';
if
($asc
>=
-14914
&&
$asc
<=
-14631)
return
'P';
if
($asc
>=
-14630
&&
$asc
<=
-14150)
return
'Q';
if
($asc
>=
-14149
&&
$asc
<=
-14091)
return
'R';
if
($asc
>=
-14090
&&
$asc
<=
-13319)
return
'S';
if
($asc
>=
-13318
&&
$asc
<=
-12839)
return
'T';
if
($asc
>=
-12838
&&
$asc
<=
-12557)
return
'W';
if
($asc
>=
-12556
&&
$asc
<=
-11848)
return
'X';
if
($asc
>=
-11847
&&
$asc
<=
-11056)
return
'Y';
if
($asc
>=
-11055
&&
$asc
<=
-10247)
return
'Z';
return
null;
}
$firstChar
=
getFirstCharter('脚本之家');
print_r($firstChar);//输出:J
?>
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php常用函数与技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP错误与异常处理方法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。