当前位置:首页 » 编程语言 » php中英文

php中英文

发布时间: 2025-10-12 21:05:20

php截取字符串以及去掉html标记

$str="带html的字符串";
$str2=strip_tags($str);
echo $str2; //已经去掉html 标

Ⅱ php截取字符串之截取utf8或gbk编码的中英文字符串示例

php中自带strlen是返回的字节数,对于utf8编码的中文返回时3个,不满足需求,下面给大家提供一个方法来完成这样的功能
微博的发言有字数限制,其计数方式是,中文算2个,英文算1个,全角字符算2个,半角字符算1个。
php中自带strlen是返回的字节数,对于utf8编码的中文返回时3个,不满足需求。
mb_strlen
可以根据字符集计算长度,比如utf8的中文计数为1,但这不符合微博字数限制需求,中文必须计算为2才可以。
google了下,找到一个discuz中截取各种编码字符的类,改造了下,已经测试通过.其中参数$charset
只支持gbk与utf-8。

代码如下:
$a
=
"s@@你好";
var_mp(strlen_weibo($a,'utf-8'));

结果输出为8,其中字母s计数为1,全角@计数为2,半角@计数为1,两个中文计数为4。源码如下:

代码如下:
function
strlen_weibo($string,
$charset='utf-8')
{

$n
=
$count
=
0;

$length
=
strlen($string);

if
(strtolower($charset)
==
'utf-8')

{

while
($n
<
$length)

{

$currentByte
=
ord($string[$n]);

if
($currentByte
==
9
||

$currentByte
==
10
||

(32
<=
$currentByte
&&
$currentByte
<=
126))

{

$n++;

$count++;

}
elseif
(194
<=
$currentByte
&&
$currentByte
<=
223)

{

$n
+=
2;

$count
+=
2;

}
elseif
(224
<=
$currentByte
&&
$currentByte
<=
239)

{

$n
+=
3;

$count
+=
2;

}
elseif
(240
<=
$currentByte
&&
$currentByte
<=
247)

{

$n
+=
4;

$count
+=
2;

}
elseif
(248
<=
$currentByte
&&
$currentByte
<=
251)

{

$n
+=
5;

$count
+=
2;

}
elseif
($currentByte
==
252
||
$currentByte
==
253)

{

$n
+=
6;

$count
+=
2;

}
else

{

$n++;

$count++;

}

if
($count
>=
$length)

{

break;

}

}

return
$count;

}
else

{

for
($i
=
0;
$i
<
$length;
$i++)

{

if
(ord($string[$i])
>
127)

{

$i++;

$count++;

}

$count++;

}

return
$count;

}
}

Ⅲ 在Thinkphp 中怎么实现中英文切换啊

我用一维数组写个实例,看懂了再自己去改:
//数组
$info = array(
'id' => '1',
'content' => '你好',
'en_content' => 'welcome'
);
//循环对比
foreach($info as $key => $value){
if ( ereg('['.chr(0xa1).'-'.chr(0xff).']', $value) ){ //判断是不是纯中文,是为 true
//是纯中文时,去相应的语言包中做对比,查找当前的中文 $value 对应的英文是什么,并把找到的英文替换掉当前这个中文
$info[$key] = '匹配成功后的英文';
}elseif ( ereg('[a-zA-Z]', $value) ){ //判断是不是纯英文,是为true
//是纯英文时,去相应的语言包中做对比,查找当前的英文 $value 对应的中文是什么,并把找到的中文替换掉当前这个英文
$info[$key] = '匹配成功后的中文';
}else{
// echo '既不是纯中文,也不是纯英文,可能有数字混在其中,或者是id 值';
}
}
return $info; //最后直接返回$info 即为中英文互换后的数组

Ⅳ thinkphp实现多语言切换时,数据库数据如何也实现多语言

有两种情况,分析如下:
1、需要中英文切换内容较少
假设我们现在正在操作的是文章表,需要根据用户的语言环境输出中文或英文的文章内容。
在文章表中多添加一个字段用于存储英文的内容,发布文章的页面,同时上传中英文内容即可,然后服务端通过thinkphp的多语言标识来决定读取中文内容或者英文内容。也可以在前端模板中进行识别。
2、需要中英文切换内容较多
如果某个数据表的多个字段或者多个数据表都需要做中英文切换,显然在数据表里添加多个字段的方式就不太合适了,那将导致数据表字段太多,不方便管理,可以采用多数据表的方式,将内容完整的分为两份。就是把涉及到中英文切换的数据表多拷贝一份而已,里面的数据是英文的
。管理员后台,可以同时存储中英文内容,也可以分开存储,你自己决定就好,读取时同样使用thinkphp的多语言标识判断用户的语言环境,来决定查询中文表还是英文表。
另外,如果整站都需要中英文切换,也可以做分布式数据库!
一切根据实际需求决定!

Ⅳ 如何phpcms v9 多语言

因为phpcms v9的功能非常丰富,我们可以使用多种途径来实现多语言,这里以实现一个中英双语站为例来说下思路:

方法一、使用phpcms中的语言包动态切换中英文语言包实现多语言,想要什么语言就创建什么语言包即可,关键是要知道在做模板界面时里面的文字不能直接写死了而是使用L函数来调用对应的词汇,比如“用户中心”我们可以写成“{L('member_center')}”;
方法二、使用phpcms的多站点功能来在后台创建两个站点,并分别绑定对应的域名或目录。然后一个使用英文模板一个使用中文模板即可;
位置:后台-设置-站点管理-添加站点。
方法三、安装两个phpcms系统但是使用一个phpsso模块来实现用户互通(在安装系统时大概第三步有个选项是选择“安装全新的phpcms系统”还是“已有phpsso模块”,第二次安装时选择后者即可),两个系统分别是英文站点和中文站点。

PS:
1.语言包位置:/phpcms/languages/... 语言包以数组形式保存。
2.使用语言包来实现多语言与后两种办法相比只需要一套模板,但是限制是只能用于动态访问,如果是要生成静态页还是使用后两种办法吧。

Ⅵ PHP 如何实现按字数分割中英文混杂字符串成数组

以下是我编写的代码,实现对中英文混杂字符进行分割:

<?php
function mbStrSplit ($string, $len=1) {
$start = 0;
$strlen = mb_strlen($string);
while ($strlen) {
$array[] = mb_substr($string,$start,$len,"utf8");
$string = mb_substr($string, $len, $strlen,"utf8");
$strlen = mb_strlen($string);
}
return $array;
}

header('Content-type:text/html;charset=utf-8');
$str = '我爱北京3我爱上海-我爱xianggang';
$r = mbStrSplit($str, 4);
echo '<pre>';
print_r($r);
echo '</pre>';
?>

运行结果:

Array
(
[0] => 我爱北京
[1] => 3我爱上
[2] => 海-我爱
[3] => xian
[4] => ggan
[5] => g
)

热点内容
解压褪黑素 发布:2025-10-13 00:01:49 浏览:264
小米平板电脑如何查看配置好不好 发布:2025-10-13 00:01:46 浏览:857
php字符串字符数组 发布:2025-10-12 23:54:54 浏览:678
linux目的 发布:2025-10-12 23:41:07 浏览:418
5G技术存储 发布:2025-10-12 23:35:18 浏览:902
为什么服务器暂时没有反应 发布:2025-10-12 23:13:26 浏览:787
javawebroot 发布:2025-10-12 23:08:26 浏览:202
pcandroidsocket 发布:2025-10-12 23:04:29 浏览:675
丹甫压缩机怎么样 发布:2025-10-12 22:42:01 浏览:388
相互共识算法 发布:2025-10-12 22:36:05 浏览:783