PHP中字体应用释疑_PHP
如何应用繁体中文转换为简体中文的PHP函数
我们定义一个big5togb的函数来实现这个转换:
{
//参数$code是big5码的字符串
include "data_big5.php"; //包含big5数据的文件
$output="";
$length=strlen($code); //取得字符串长度
$code=strtok($code,"");
$idx=0;
while ($idx < $length)
{
$tmpStr=$code[$idx].$code[$idx 1];
if (isbig5($tmpStr)) //判断是否big5码
{
……//如果是big5码则进行转换后输出
}
else
{
$output.= $code[$idx]; //如果不是big5码则直接输出
}
$idx ;
}
return ($output);
}
如何应用简体中文转换为繁体中文的PHP函数?
如何用PHP将简体中文转换为繁体中文?
我们定义一个big5togb的函数来实现这个转换:
{
include "data_gb.php"; //包含有gb码的数据文件
$output="";
$length=strlen($code);
$code=strtok($code,"");
$idx=0;
while ($idx < $length)
{
$tmpStr=$code[$idx].$code[$idx 1];
if (isgb($tmpStr)) //判断是否gb码
{
……//如果是gb码转换后输出
}
else
{
$output.= $code[$idx]; //不是gb码则直接输出
}
$idx ;
}
return ($output);
}
PHP输出控制功能是怎样一回事?
PHP的输出信息控制函数可以让你控制你的脚本输出的内容,可以用于许多不同的情况,特别是在你的脚本已经输出信息后需要发送文件头的情况以及需要对输出信息进行编辑处理的地方。输出控制函数不对使用header()或setcookie()发送的文件头信息产生影响,只对那些类似于echo()、print() 和 PHP 代码的数据块有作用。
例 1. 控制输出
<?
function test($str){
return str_replace("world","php",$str);
}
ob_start("test");
echo "hello world";
ob_end_flush();
?>
这个程序在没有输出信息控制的情况下应该输出为
hello world
但通过指定了输出控制函数后,输出变为
hello php
在上面的例子中,使用echo()的输出内容将会保存在输出缓冲区中,直到调用了ob_end_flush()或者脚本运行终止,然后输出信息由自定义的处理函数进行处理(替换里面的字符串)并返回结果。
相关函数说明:
void ob_start([string output_callback])- 打开输出缓冲区
所有的输出信息不在直接发送到浏览器,而是保存在输出缓冲区里面,可选得回调函数用于处理输出结果信息。
void ob_end_flush(void) - 结束(发送)输出缓冲区的内容,关闭输出缓冲区
简繁体转换如何实现?
简繁转换一般通过对照表的形式实现,我们这里只给出其实现代码其中:
function gb2big5($str) {
global $_gb_big5_;
$leng = strlen($str)-1;
for($i = 0; $i<$leng; $i ){
$h = ord($str[$i]);
if($h>=160){
$l = ord($str[$i 1]);
$gb=($h==161 && $l==64)?" " : substr($_gb_big5_, ($h-160)*510 ($l-1)*2, 2);
$str[$i] = $gb[0];
$str[$i 1] = $gb[1];
$i ;
}
}
return $str;
}
?>
$gb_big5_ 保存着big5 的字库对照表
$str 为要转化的字符串
输出控制函数在简繁体转化中如何应用?
目前的大多数网站的简繁体页面转换都是通过各自单独的页面实现的,这样导致在修改简体页面的时候还需要再次修改繁体的页面,不能做到自动同步。而我们提供的这个方法,可以实现同一个页面自动的变换简繁体显示。其实现方法是:
1 建立简繁体标志,用于指示当前显示的简繁体状态,同时对简繁体状态进行切换gb_big5.php
session_start(); // 打开session 功能,用于在各个页面之间自动传递标志
if(!session_is_registered("big5")){ // 检查简繁体标志的注册状态
session_register("big5"); // 注册简繁体标志,简体=0;繁体=1
$ big5=0; // 默认为简体
}
$big5 = ($big5 1)%2; // 切换简繁体状态
header("location:".getenv("HTTP_REFERER")); // 返回其调用页面
?>
2 对页面输出信息进行控制,每个页面都调用这段程序,用于简繁体转换require.php(应包括前面第二部分的转换代码,这里略)
Session_start();
function translate_gb2big5($str) {
$str = gb2big5($str); // 转化为 big5
$str = str_replace('charset=gb2312', 'charset=big5', $str); // 替换字符类型
header('Content-Type: text/html; charset=big5'); // 繁体文件头
return $str;
}
if(session_is_registered("56big5") && ($big5==1)){ // 判断标志
$fp = fopen('big5.table', 'r'); // big5的字库表
$_gb_big5_ = fread($fp, filesize('big5.table')); // 读出数据
fclose($fp);
ob_start('translate_gb2big5'); // 启动输出信息控制
}
?>
3 使用方法,这里给出一个最简单的例子,放在和 require.php 同一个目录里面test.php
require("require.php");
echo "你好,欢迎光临!";
?>
<a href=gb_big5.php>
<?
if($big5==1)echo "GB";
else echo "Big5";
?>
</a>
第一次运行结果为默认简体如下
你好,欢迎光临!
点击 Big5 连接显示繁体如下
你好,歡迎光臨! GB
点击 GB 将返回简体页面
由于使用了session 保存了简繁体标志,这样其他任何使用了 require.php 的页面都会自动按照当前的标志显示相应的页面。
4 big5 字库的保存的改进方法
可以使用 session 来保存 big5 字库,但使用后速度会明显减慢,主要因为 session 也是通过文件形式实现,所以不会对性能产生提高,而且因为session 不会根据简繁体标志自动判断装载与否,所以造成在简体下也装载了 big5 的字库,所以造成速度减慢。
如果服务器为 linux 可以考虑使用共享内存来保存 big5 字库信息。其更改的代码为require.php 的判断部分:
if(session_is_registered("big5") && ($big5==1))
{
// 修改成使用共享内存
// 判断是否已经创建,打开50000字节的 0xff3 段的共享内存
$shm_id = @shmop_open(0xff3, "a", 0644, 50000);
if($shm_id) {
$_gb_big5_ = shmop_read($shm_id, 0,shmop_size($shm_id)); // 读出big5 数据
}
else{
// 创建 50000 字节的系统标识为 0xff3 的共享内存块
$shm_id = @shmop_open(0xff3, "c", 0644, 50000);
// 读出数据
$fp = fopen('big5.table', 'r');
$_gb_big5_ = fread($fp, filesize('big5.table'));
fclose($fp);
if($shm_id){
$shm_bytes_written = shmop_write($shm_id, $_gb_big5_,0); // 写入 big5 数据
}
}
ob_start('translate_gb2big5');
}
?>
如何分别全角和半角以避免乱码?
我们可以写这样一个函数来实现:
{
$length = 46; //我们允许字符串显示的最大长度
if (strlen($title)>$length) {
$temp = 0;
for($i=0; $i<$length; $i )
if (ord($title[$i]) > 128) $temp ;
if ($temp%2 == 0)
$title = substr($title,0,$length)."...";
else
$title = substr($title,0,$length 1)."...";
}
return $title;
}
这个函数原理就是截断一个字符,看看其ascII码是不是大于128,如果是,说明截断的是一个全角汉字,那么就退后一个截断。用$length控制长度
备注:循环判断字符串里面的 >128 的字符个数,如果半角字符为偶数,则表示位置刚好为整个汉字,如果为奇数,则为半个汉字,需要取下一个字符

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











1. 휴대폰 설정을 열고 [디스플레이]를 클릭하세요. 2. [글꼴]을 클릭하세요. 3. 마음에 드는 글꼴을 선택하거나 [글꼴 더보기]를 클릭해 앱을 다운로드하세요.

PHP에서 화살표 기호의 역할과 실제 적용 PHP에서 화살표 기호(->)는 일반적으로 객체의 속성과 메서드에 액세스하는 데 사용됩니다. 객체는 PHP의 객체지향 프로그래밍(OOP)의 기본 개념 중 하나입니다. 실제 개발에서는 객체를 조작할 때 화살표 기호가 중요한 역할을 합니다. 이 기사에서는 화살표 기호의 역할과 실제 적용을 소개하고 독자의 이해를 돕기 위해 구체적인 코드 예제를 제공합니다. 1. 객체의 속성에 접근하기 위한 화살표 기호의 역할 화살표 기호를 사용하여 객체의 속성에 접근할 수 있습니다. 쌍을 인스턴스화할 때

홈 화면에서 중요한 항목을 삭제하고 다시 복구하려고 하시나요? 다양한 방법으로 앱 아이콘을 화면에 다시 표시할 수 있습니다. 우리는 당신이 따라갈 수 있는 모든 방법과 홈 화면에 앱 아이콘을 다시 넣을 수 있는 방법에 대해 논의했습니다. 방법 1 - 앱 라이브러리에서 앱 아이콘 바꾸기 앱 라이브러리에서 직접 홈 화면에 앱 아이콘을 배치할 수 있습니다. 1단계 – 옆으로 스와이프하여 앱 라이브러리의 모든 앱을 찾습니다. 2단계 – 이전에 삭제한 앱 아이콘을 찾습니다. 3단계 – 메인 라이브러리의 앱 아이콘을 홈 화면의 올바른 위치로 드래그하기만 하면 됩니다. 이것은 응용 다이어그램입니다

모바일QQ 브라우저에서 글꼴을 변경하는 방법은 무엇입니까? 많은 사람들이 휴대폰에서 QQ 브라우저를 사용하는 것을 좋아합니다. 이 브라우저는 웹 페이지를 빠르게 검색할 수 있을 뿐만 아니라 다양한 유형의 파일 데이터를 처리할 수도 있습니다. 또한 이 브라우저는 사용자에 따라 브라우저의 글꼴을 설정할 수 있습니다. 많은 초보 사용자는 여전히 이 브라우저의 글꼴을 변경하는 방법을 모릅니다. 이 글에서는 모바일 QQ 브라우저에서 글꼴을 변경하는 단계에 대한 개요를 제공하여 문제 해결에 도움이 되기를 바랍니다. 모바일 QQ 브라우저에서 글꼴을 변경하는 단계 목록 1. 휴대폰을 켠 다음 "QQ 브라우저"를 클릭하여 엽니다(그림 참조). 2. QQ 브라우저의 "내" 페이지에서 오른쪽 상단에 있는 "설정" 로고를 클릭합니다(그림 참조). 3. 설정에서 클릭하여 "글꼴 설정"으로 들어갑니다(그림 참조).

Linuxtee 명령은 기존 출력에 영향을 주지 않고 출력을 파일에 쓰거나 출력을 다른 명령으로 보낼 수 있는 매우 유용한 명령줄 도구입니다. 이 기사에서는 초보자부터 숙련자까지 Linuxtee 명령의 다양한 애플리케이션 시나리오를 심층적으로 살펴보겠습니다. 1. 기본 사용법 먼저 tee 명령어의 기본 사용법을 살펴보겠습니다. tee 명령의 구문은 다음과 같습니다: tee[OPTION]...[FILE]...이 명령은 표준 입력에서 데이터를 읽고 데이터를 다음 위치에 저장합니다.

1. 설정을 통해 휴대폰 시스템의 글꼴 스타일을 입력하고 수정합니다. 2. 휴대폰 설정을 열고 [접근성]을 입력하세요. 3. [자막 및 비공개 자막]을 클릭하세요. 4. [스타일]을 클릭하여 수정하세요.

Go 언어는 Google이 개발하여 2007년에 처음 출시된 오픈 소스 프로그래밍 언어입니다. 간단하고 배우기 쉽고 효율적이며 동시성이 높은 언어로 설계되었으며 점점 더 많은 개발자가 선호합니다. 이 기사에서는 Go 언어의 장점을 살펴보고 Go 언어에 적합한 몇 가지 애플리케이션 시나리오를 소개하며 구체적인 코드 예제를 제공합니다. 장점: 강력한 동시성: Go 언어에는 동시 프로그래밍을 쉽게 구현할 수 있는 경량 스레드 고루틴에 대한 지원이 내장되어 있습니다. Goroutin은 go 키워드를 사용하여 시작할 수 있습니다.

Mechanic i9 Sugon 16의 Win10 시스템에서 글꼴이 흐릿해지는 문제를 해결하는 방법은 무엇입니까? Win10 시스템 글꼴이 흐릿한데 어떻게 해결하나요? (I9 Sugon 16을 예로 들어 보겠습니다.) 컴퓨터를 사용할 때 많은 사용자는 글꼴이 흐릿하고 읽기 어려운 것을 접할 수 있습니다. 이 문제를 해결하기 위해 다음 튜토리얼을 제공합니다. 이러한 방법은 Mechanic 팬 간의 일상적인 상호 작용에서 비롯되며 모든 브랜드와 컴퓨터 모델에 적용됩니다. 해결 방법 1: 디스플레이 해상도를 조정하십시오. 많은 컴퓨터 친구들이 새 컴퓨터를 가지고 있거나 시스템을 다시 설치한 후 그래픽 카드 드라이버로 인해 발생합니다. 그렇다면 그래픽 카드 드라이버에 문제가 있는지 어떻게 알 수 있을까요? 1단계: 바탕 화면을 마우스 오른쪽 버튼으로 클릭하고 팝업 옵션 표시줄에서 그래픽 카드 설정을 선택합니다. (죄송합니다. Youwei는 가상 머신을 사용하고 있습니다. 장애 현상을 시뮬레이션해 보았지만 작동하지 않았습니다.
