真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

phpimagestring中文亂碼怎么辦

php imagestring中文亂碼是因?yàn)镚D2庫(kù)本身沒(méi)有中文字體導(dǎo)致的,其解決辦法就是要指定字體來(lái)顯示所輸出的字符串即可。

沙洋網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),沙洋網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為沙洋上千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的沙洋做網(wǎng)站的公司定做!

推薦:《PHP視頻教程》

imagestring函數(shù)顯示中文亂碼

1.問(wèn)題描述

在學(xué)到給圖片打水印時(shí),使用了PHP內(nèi)置的GD擴(kuò)展函數(shù)庫(kù),視頻教程用的imagestring ( resource $image , int $font , int $x , int $y , string $s , int $col )函數(shù),在實(shí)際應(yīng)用中發(fā)現(xiàn)該函數(shù)無(wú)法正常顯示中文水印,顯示中文亂碼。

2.解決過(guò)程

通過(guò)查詢官網(wǎng)PHP手冊(cè),imagestring:水平地畫一行字符串,imagestring() 用col 顏色將字符串s 畫到image 所代表的圖像的 x,y 坐標(biāo)處(這是字符串左上角坐標(biāo),整幅圖像的左上角為 0,0)。如果font 是 1,2,3,4 或 5,則使用內(nèi)置字體。

該函數(shù)的第二個(gè)參數(shù)$font是字體參數(shù),但官方只說(shuō)明了該值設(shè)置為1-5的話使用內(nèi)置字體,而通過(guò)測(cè)試發(fā)現(xiàn)所謂的1-5內(nèi)置字體都不能正常顯示中文。而且官方文檔并沒(méi)有說(shuō)明能否使用1-5之外的其他值和其他字體文件,測(cè)試發(fā)現(xiàn)當(dāng)把該參數(shù)設(shè)定為其他字體文件時(shí)無(wú)法正常使用。

網(wǎng)上查詢相關(guān)內(nèi)容,發(fā)現(xiàn)大多數(shù)情況,不能顯示中文都是因?yàn)镚D2庫(kù)本身沒(méi)有中文字體引起的,所以要指定字體來(lái)顯示所輸出的字符串。如果要在圖片上輸出中文,應(yīng)該使用imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )函數(shù)。該函數(shù)的官方說(shuō)明為:用 TrueType 字體向圖像寫入文本

該函數(shù)的第二個(gè)參數(shù)也為字體文件,應(yīng)該指向一個(gè)ttf格式的字體文件,通過(guò)測(cè)試發(fā)現(xiàn)可以正常顯示中文。$font 為該字體文件路徑,當(dāng)字體件放在該php文件同級(jí)目錄下時(shí)即為字體文件名。

另外在PHP手冊(cè)中發(fā)現(xiàn)還有一個(gè)imagefttext (resource$image , float$size ,float$angle ,int$x ,int$y ,int$color ,string$fontfile ,string$text [,array$extrainfo ] )t函數(shù),

該函數(shù)的官方說(shuō)明為:使用 FreeType 2 字體將文本寫入圖像,十分類似與上面的imagettftext函數(shù)。只是引用的字體文件類型不同,所以maybe用這個(gè)函數(shù)也可以顯示中文。不過(guò)懶得去試了。。。感興趣的可以試試。

偶然發(fā)現(xiàn)在Ubuntu系統(tǒng)下,將用到的字體文件放在該php同級(jí)目錄下,$font 為該文件名字時(shí)發(fā)現(xiàn)該函數(shù)無(wú)法正常生效,通過(guò)查詢錯(cuò)誤日志發(fā)現(xiàn)imagettftext(): Could not find/open font,通過(guò)百度查詢了解到,在Linux系統(tǒng)中,僅將$font設(shè)為文件名是不行的,還要明確路徑,如'./xxx.ttf'(相對(duì)路徑)或'/usr/share/fonts/xxx.ttf'(絕對(duì)路徑)。測(cè)試發(fā)現(xiàn)可以正常顯示。

3.總結(jié):

imagestring幾乎無(wú)法正常顯示中文,也許有其他方法吧。不過(guò)推薦使用imagettftext,簡(jiǎn)單方便,只需引入一個(gè)字體文件即可。

imagettftext函數(shù)的$font參數(shù)在window系統(tǒng)中只需設(shè)置為文件名即會(huì)在當(dāng)前目錄下去尋找該字體文件,但在linux系統(tǒng)中還要指明路徑即 ./ 。
網(wǎng)頁(yè)題目:phpimagestring中文亂碼怎么辦
瀏覽路徑:http://weahome.cn/article/cpcddi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部