紧急求助PHP语法问题!

crycoming 2005-04-11 01:20:28
function u2utf8($c)
{
for($i=0;$i<count($c);$i++)
$str="";
if ($c < 0x80) {
$str.=$c;
}
else if ($c < 0x800) {
$str.=(0xC0 | $c>>6);
$str.=(0x80 | $c & 0x3F);
}
else if ($c < 0x10000) {
$str.=(0xE0 | $c>>12);
$str.=(0x80 | $c>>6 & 0x3F);
$str.=(0x80 | $c & 0x3F);
}
else if ($c < 0x200000) {
$str.=(0xF0 | $c>>18);
$str.=(0x80 | $c>>12 & 0x3F);
$str.=(0x80 | $c>>6 & 0x3F);
$str.=(0x80 | $c & 0x3F);
}
return $str;
}
我想把上面的函数转化为VB代码,可惜我不懂PHP语法,手上也没有相关资料
时间比较急,恳请大家帮忙
...全文
127 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2005-04-11
  • 打赏
  • 举报
回复
$c = 0x1fffff;
echo 0x80 | $c>>12 & 0x3F ; //out 191(十进制)
xuzuning 2005-04-11
  • 打赏
  • 举报
回复
不需要括号
移位运算符的优先级高于位运算符

crycoming 2005-04-11
  • 打赏
  • 举报
回复
0x80 | $c>>12 & 0x3F 的次序是否从左到右?

是先进行位运算还是左到右执行或操作然后再进行位操作?
crycoming 2005-04-11
  • 打赏
  • 举报
回复
谢谢了,我很快就会结贴的
0x80 | $c>>12 & 0x3F 的次序是否从左到右?

$str.=(0xF0 | $c>>18); 中的括号是什么意思?有转化成什么的意思吗?a=(1=1)——>VB会把括号中的部分转化成True
xuzuning 2005-04-11
  • 打赏
  • 举报
回复
是这个意思
crycoming 2005-04-11
  • 打赏
  • 举报
回复
谢谢楼上的,下语句面都对str赋值 到底怎么对str做了什么呢
写成VB的赋值语句是不是str=str+(0xF0 | $c>>18); ?

$str.=(0xF0 | $c>>18);
$str.=(0x80 | $c>>12 & 0x3F);
$str.=(0x80 | $c>>6 & 0x3F);
$str.=(0x80 | $c & 0x3F);
xuzuning 2005-04-11
  • 打赏
  • 举报
回复
vb中好象有相应的函数

循环和条件语句应该没有问题吧?
$str和$c是变量
$c>>12 右移12位
| 或运算
& 与运算

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧