日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php 将中文字符转英文字母_php 中英文语言转换类

發布時間:2023/12/16 php 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 将中文字符转英文字母_php 中英文语言转换类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

起初想到制成XML文檔形式,這樣操作也起來很容易。只是看到說XML效率不怎樣

再者就是不同的模板,可這樣也有個小問題,有些詞匯比如時間提示是不確定,與可能是minute ,day。也有可能復數加 s

那好吧,做成數組,可數組就得做成在php文件的變量,很難做些擴展(我所知道所認為的是這樣)

最后做成txt文本文件的形式,同樣也為這樣的效率擔心,打開文件,搜索字符串,截取字符串這些,所幸最后運行了一下,一般機子大概0.0004秒,這讓我很驚奇原以為會很慢,畢竟要調用多次。

好吧,上代碼

class language

{

static $lanObject;

public $type; // unit , dashboard , menu ,other

public $lan; // language

private $special; // The common in the file

private function __construct()

{

if( isset($_GET['hl']) || isset($_POST['hl']) )

{

switch( isset($_GET['hl'])?$_GET['hl']:$_POST['hl'] )

{

case 'en':

$this->lan = 'en';

case 'zh':

$this->lan = 'zh';

case 'all':

$this->lan = 'all';

default:

$this->error();

}

}

else

$this->lan = isset($_COOKIE['hl']) ? $_COOKIE['hl']:'zh';

}

public static function getObject()

{

if( !(self::$lanObject instanceof self) )

self::$lanObject = new language();

return self::$lanObject;

}

public function lto($key) //$key is English

{

if( $this->lan !== 'zh' )

return $key;

if( empty($this->special) ) // if the $special is null

{

if( isset($this->type) )

$this->special = file_get_contents($this->type.'.txt');

else

return $key;

}

echo $this->search($key);

}

private function search($searchTozh) // PHP String

{

$key_start = strpos($this->special,$searchTozh);

$key_end = strpos($this->special,' ',$key_start);

$len_str = strlen($searchTozh);

$for_sub = $key_start + $len_str + 1;

return substr($this->special, $for_sub, $key_end - $for_sub);

}

}

strpos(); 是找到字符串第一次出現的位置 比如 ‘wo' 在 ‘hello world' 中,返回值為 6

substr();是截取字符串的一部分

接下來是調試時加上的代碼

$la = language::getObject();

$la->type = 'unit';

$la->lto('min');

echo '
';

$la->lto('hello');

lto(這里面要翻譯的英文);

unit.txt 文件的內容格式是

hello-你好 min-小 minute-分鐘 minutes-分鐘

$special設計為全局也是想到不止一次會調用lto() ,如果反復加載文件太浪費性能了。

$type設計為公有是考慮到加載的文件的效率問題,有的時候并不需要顯示幾天前這些,所以不如把這些按使用類型分開,比如有專門負責菜單翻譯的menu.txt ,也有專門為操作,比如刪除,收藏 翻譯的txt文本。這樣可以自由設定要加載的文本

語言也可以自由設定。

好吧,程序還可以改進,我沒有按http請求中的客戶端語言來設置$lan,

總結

以上是生活随笔為你收集整理的php 将中文字符转英文字母_php 中英文语言转换类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。