當前位置:首頁 » 編程語言 » 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
)

熱點內容
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
批處理添加dns伺服器地址 發布:2025-10-12 22:14:36 瀏覽:773
phppopen 發布:2025-10-12 21:37:19 瀏覽:7