在PHP中用描点法“绘制”中文_PHP教程
作者:LuciferStar 来源:超越PHP 前言: 现在,越来越多的人喜欢上网了,越来越多的人拥有了自己的个人主页。随着各种自动化软件工具的出现,制作网页越来越简单。但,由于特效随处可得,创新的东西,越来越少。说不定,哪天,你会发现某个网站上的计数器和自己的一模一样。网页越做越老练。网页上的东西,也越来越多,越来越丰富。 设问: 在网页上,如果我要添加一个计数器: 以前,那就去空间提供商那里要个链接,或其他地方去复制个地址,但这一些,总归是别人做的,好不好,你是没有太多的发言权的,只能一个一个地找。 在网页上,我要将一些信息发布出去: 假如信息是文本,做一个新页面,加个链接; 是数据,做一个新页面,加个链接: 可要是这些数据经常更新,甚至,每小时、每分钟,都可能会改变,你是否愿意守在电脑前,不停修改、上传呢?(咱可不是商业网站,没有人愿意为你而烧钱。) 而留言板、聊天室、论坛,这些,决不是单靠HTML和JAVASCRIPT就能搞定的。 为了实现更多的自动控制,可以使用CGI(Common Gateway Interface)程序来实现这些功能。 软件需求: PHP:GD Library 配置支持PHP的服务器。我用OmniHTTPd Professional 对于计数器和实时数据统计、发布,我们可以用图片来完成。在图片中输出文字。 在PHP中,要创建一个图片,并在上面显示点内容,基本步骤如下: 上面示例,在400×300的图片上,自点(10,10)开始,绘制12磅的"1234567890"。你有没有注意到这张图片的大小是:251字节!你也可以试试其他的输出格式。 图片的大小,与图片中非背景象素点数有关,跟输出多少象素无关。 然而,有一个问题。 你可以用imagestring()输出如下的信息: imagestring($im,1,0,0,"abcdefghijklmnopqrstuvwxyz0123456789~!@#$%^&*()_+{}|:"?[];,./",$red); 可是,你无法正确输出中文!!! imagestring($im,1,0,0,"啊",$red); 你看到的,决不是中文!!而是乱码。 PHP默认的字符集是UTF-8,而简体中文是GB2312。 如何解决?! 为了解决这个问题,你可以让PHP加载扩展模块php_iconv.dll(UNIT下的后缀名是.SO),不过,有时候,可能不能正常工作。本来,我要把一段测试代码放上来,可这次,怎么弄都没有成功。为了避免错误,我还是不把它们放上来了。 但,最致命的,如果你的空间服务商关闭了该扩展模块,或者,甚至禁止了加载模块的DL()函数,那,你就只能跟中文BYE-BYE了。 还好,还有其他办法。 可以通过字符映射,将预先转换好的码表中字符输出来。但,你需要一张码表! 或者,手工绘制每一个中文的每一个点!感觉怎么样?! 好,来吧,我们一起来画字! 画字,首先要知道怎么画。 初中的简单函数,学过吧?要画出函数的图形,做过吧?算出某点的坐标,然后连接两相邻点。这种方法,叫描点法。 我们要做的,是尽量多地将点算出来,然后在相应坐标显示出来。 你是否听说过点阵打印机、点阵汉字? 在输出汉字时,它们是用一个个点来表示的。 在某个坐标上显示一个某种颜色的点的函数是: int imagesetpixel ( resource image, int x, int y, int color) 假定我要在坐标(100,100)处显示一个白色的点,那么,只需如下代码: 也就是说,我们只要获取某个汉字的所有点的信息,我们就能够通过这个函数,输出那个汉字。 在文件chs16.fon里,保存的,是国标区位码表(国家标准信息交换用汉字编码基本字符集GB-2312)。它是汉字的点阵字库。(WIN98系统中,此文件在c:windowscommand下。如果你要把它放在UNIX系统下使用,请注意大小写。如果没有,你可以在文末找到链接。) 它是MSDOS时代的,但,好东西,还是应该拿出来一用的。 从chs16.fon里,我们可以读取汉字的点阵数据。每个汉字,都是由16×16个点构成的。笔划走过的地方,点的值为1,否则为0;每个点占用一个位,每8个点构成一个字节。那么,一个汉字,就需要(16×16÷8=32)字节。 下面这个实例,是为了说明字符点阵的表示方法。 这里,定义了一个8×8的矩阵,显示了一个字母C,白色的方块用0表示,黑色方块用1表示,那么,这八行图形的代码分别是: 行 二进制表示 十六进制表示 0 00000000 0x00 1 00111110 0x3E 2 01110000 0xE0 3 01110000 0xE0 4 01110000 0xE0 5 01110000 0xE0 6 00111110 0x3E 7 00000000 0x00 要输出这些点的话,就需要先画第一行,然后第二行、第三行……到最后一行。 用一个循环: for($hang=0;$hang "区位码"进行索引、查找。 前面已经讲了一个汉字,在表中要占用32字节,所以,我们定义了一个含有32个元素的数组: $buffer=array(0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0); 用来保存从字库读出的32个字节数据。 接下来的问题,某一个字符,到底保存在文件的什么位置呢? 由于一个汉字用了32个字节,而GB-2312区位码表表有94行、94列,那么,只要知道该字符在表中是第几个,再乘以32就行了。 所以定义偏移量: $offset=(94*($qh-1)+($wh-1))*32; $qh表示区(qu)、$wh表示位(wei);减1,是因为PHP从0开始计数。 位置找到,就只需要用fseek()函数定到码表的这个位置,然后读32字节到$buffer就行了。 另外,由于中文是由两个字节组成,而前面给出的点阵示例是8位,一个字节,所以,画点的代码要修改一下: for($hang=0;$hang

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

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

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

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

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

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

뜨거운 주제











PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

숙련된 PHP 개발자라면 이미 그런 일을 해왔다는 느낌을 받을 것입니다. 귀하는 상당한 수의 애플리케이션을 개발하고, 수백만 줄의 코드를 디버깅하고, 여러 스크립트를 수정하여 작업을 수행했습니다.

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다

문자열은 문자, 숫자 및 기호를 포함하여 일련의 문자입니다. 이 튜토리얼은 다른 방법을 사용하여 PHP의 주어진 문자열의 모음 수를 계산하는 방법을 배웁니다. 영어의 모음은 A, E, I, O, U이며 대문자 또는 소문자 일 수 있습니다. 모음이란 무엇입니까? 모음은 특정 발음을 나타내는 알파벳 문자입니다. 대문자와 소문자를 포함하여 영어에는 5 개의 모음이 있습니다. a, e, i, o, u 예 1 입력 : String = "Tutorialspoint" 출력 : 6 설명하다 문자열의 "Tutorialspoint"의 모음은 u, o, i, a, o, i입니다. 총 6 개의 위안이 있습니다

정적 바인딩 (정적 : :)는 PHP에서 늦은 정적 바인딩 (LSB)을 구현하여 클래스를 정의하는 대신 정적 컨텍스트에서 호출 클래스를 참조 할 수 있습니다. 1) 구문 분석 프로세스는 런타임에 수행됩니다. 2) 상속 관계에서 통화 클래스를 찾아보십시오. 3) 성능 오버 헤드를 가져올 수 있습니다.

PHP의 마법 방법은 무엇입니까? PHP의 마법 방법은 다음과 같습니다. 1. \ _ \ _ Construct, 객체를 초기화하는 데 사용됩니다. 2. \ _ \ _ 파괴, 자원을 정리하는 데 사용됩니다. 3. \ _ \ _ 호출, 존재하지 않는 메소드 호출을 처리하십시오. 4. \ _ \ _ get, 동적 속성 액세스를 구현하십시오. 5. \ _ \ _ Set, 동적 속성 설정을 구현하십시오. 이러한 방법은 특정 상황에서 자동으로 호출되어 코드 유연성과 효율성을 향상시킵니다.
